diff --git a/README.md b/README.md
index 64f09ea2764523ba3d119487d426ca74b5e2af5d..3470a2750cf02d43f1be016204594f72a376d494 100644
--- a/README.md
+++ b/README.md
@@ -88,37 +88,27 @@ The configuration form is found on **/admin/config/fluidui/adminsettings**
   Use the module's **css/fluid.css** file to customize the appearance and placement
   of the "+ show display preferences" tab.
 
-- Multilingual support
-  The framework supports multilingual labels and text, but it must be created
-  manually and cannot be created from the Drupal admin UI. 
-
-  Follow these instructions and replace "fr" with the language code of your choice:
-
-  1. Copy /messages/en to /messages/fr and translate the contents of variables in the files to your language
-  2. Copy /toc/en to /toc/fr and translate TableOfContents.html
-  3. Edit /js/fluidui_load.js according to the following example code:
-
-  var langCode = drupalSettings.path.currentLanguage;
-
-  ```
-  if (langCode == "en") {
-    fluid.uiOptions.prefsEditor(".flc-prefsEditor-separatedPanel", {
-      tocTemplate: modulePath + "/infusion/src/components/tableOfContents/html/TableOfContents.html",
-      terms: {
-        templatePrefix: modulePath + "/infusion/src/framework/preferences/html",
-        messagePrefix: modulePath + "/messages/en"
-      }
-    });
-  } else if (langCode == "fr") {
-    fluid.uiOptions.prefsEditor(".flc-prefsEditor-separatedPanel", {
-      tocTemplate: modulePath + "/toc/fr/TableOfContents.html",
-      terms: {
-        templatePrefix: modulePath + "/infusion/src/framework/preferences/html",
-        messagePrefix: modulePath + "/messages/fr"
-      }
-    });
-  }
-  ```
+## Multilingual support
+  
+Given that the infusion [https://docs.fluidproject.org/infusion/development/LocalizationInThePreferencesFramework#specifying-a-localization](documentation) is somewhat crappy that lacks real examples, I couldn't figure it out how to read the correct json files for each language (For example, `prefsEditor_es.json`), you will need to follow these manual steps but the advantage is that you won't lose translations after module upgrades:
+
+1. In your `sites/default/files` create the directory `fluidui-translations`
+2. In the the module directory, go to messages, copy a language directory (`es` for example) to the newly created directory in the step above.
+3. You will find a few files with `es` in their filename, for example:
+
+`letterSpace_es.json captions_es.json`
+
+Change these files and replace `es` with the language code that Drupal assigns for each language (For example, `de` for german)
+
+4. Apply the desired translations in each of these new language files as needed.
+
+5. For each new language file, replace the `en` and the file without language extension with the new language example, for example:
+
+`$ cp contrast_es.json contrast_en.json`
+`$ cp contrast_es.json contrast.json`
+
+I am sorry for this annoying step, but the official docs are ultra crap and I couldn't figure it out any good out of it.
+
 ## Running PHPUnit Functional / FunctionalJavascript tests
 
 If you want to run the module tests (located at the directory `tests/src`), don't forget to set up PHPUnit to work in your local environment (DDEV / Lando), [https://www.drupal.org/docs/develop/automated-testing/phpunit-in-drupal/running-phpunit-tests](please follow these instructions) to configure PHPUnit in your local environment, I am using DDEV, so [https://www.drupal.org/docs/develop/automated-testing/phpunit-in-drupal/running-phpunit-tests#s-example-values-for-ddev](you might need to do) some additional configuration in the `phpunit.xml` file.
diff --git a/fluidui.install b/fluidui.install
index 1e886b9d6946f092ba774787c9930bc37c7cdf6f..d60b608fbb0b95c2328695357e316acfbdd238a6 100644
--- a/fluidui.install
+++ b/fluidui.install
@@ -2,12 +2,28 @@
 
 /**
  * @file
- * This module adds installation options to your site.
+ * This install file adds installation options for the module.
  */
 
+use Drupal\Core\File\FileSystemInterface;
+
 /**
  * Implements hook_install().
  */
 function fluidui_install() {
   module_set_weight('fluidui', 400);
+
+  $directory = 'public://fluidui-translations/';
+
+  /** @var \Drupal\Core\File\FileSystemInterface $file_system */
+
+  // Create directory if not exists.
+  if (!is_dir($directory)) {
+    try {
+      \Drupal::service('file_system')->prepareDirectory($directory, FileSystemInterface:: CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS);
+    }
+    catch (\exception $e) {
+      \Drupal::messenger()->addError($e->getMessage());
+    }
+  }
 }
diff --git a/fluidui.module b/fluidui.module
index 5e289cd7d8ebb8ef574ac6dd3a42c5fa6d664bd1..e160e4585ace00d82a100d0ad7dabf62c05004ae 100755
--- a/fluidui.module
+++ b/fluidui.module
@@ -56,6 +56,15 @@ function fluidui_preprocess_page(&$variables) {
   }
 
   $variables['#attached']['drupalSettings']['modulePath'] = $module_path;
+
+  $translations_directory = 'public://fluidui-translations/';
+
+  if (file_exists($translations_directory)) {
+    $variables['#attached']['drupalSettings']['translationsDirectory'] = "/sites/default/files/fluidui-translations/";
+  }
+  else {
+    $variables['#attached']['drupalSettings']['translationsDirectory'] = "";
+  }
 }
 
 /**
diff --git a/js/fluidui_load.js b/js/fluidui_load.js
index d979df3c08e2ecfbadc4383104f11aa751b1089c..f15f9a1fb7eafb0bad9164c05c6c0d1ce786779f 100644
--- a/js/fluidui_load.js
+++ b/js/fluidui_load.js
@@ -8,26 +8,51 @@ let renderCounter = 0;
 
         const langCode = drupalSettings.path.currentLanguage;
 
-        fluid.uiOptions(".flc-prefsEditor-separatedPanel", {
-          auxiliarySchema: {
-            terms: {
-              "templatePrefix": modulePath + "/infusion/src/framework/preferences/html",
-              "messagePrefix": modulePath + "/infusion/src/framework/preferences/messages"
+        const translationsDir = drupalSettings.translationsDirectory;
+
+        if (translationsDir !== "") {
+          fluid.uiOptions(".flc-prefsEditor-separatedPanel", {
+            auxiliarySchema: {
+              terms: {
+                "templatePrefix": modulePath + "/infusion/src/framework/preferences/html",
+                "messagePrefix": translationsDir + langCode,
+              },
+              "fluid.prefs.tableOfContents": {
+                enactor: {
+                  "tocTemplate": modulePath + "/infusion/src/components/tableOfContents/html/TableOfContents.html",
+                  "tocMessage": modulePath + "/infusion/src/framework/preferences/messages/tableOfContents-enactor.json",
+                  ignoreForToC: {
+                    "overviewPanel": ".flc-overviewPanel"
+                  }
+                }
+              }
             },
-            "fluid.prefs.tableOfContents": {
-              enactor: {
-                "tocTemplate": modulePath + "/infusion/src/components/tableOfContents/html/TableOfContents.html",
-                "tocMessage": modulePath + "/infusion/src/framework/preferences/messages/tableOfContents-enactor.json",
-                ignoreForToC: {
-                  "overviewPanel": ".flc-overviewPanel"
+            prefsEditorLoader: {
+              lazyLoad: true
+            }
+          });
+        } else {
+          fluid.uiOptions(".flc-prefsEditor-separatedPanel", {
+            auxiliarySchema: {
+              terms: {
+                "templatePrefix": modulePath + "/infusion/src/framework/preferences/html",
+                "messagePrefix": modulePath + "/infusion/src/framework/preferences/messages/" + langCode,
+              },
+              "fluid.prefs.tableOfContents": {
+                enactor: {
+                  "tocTemplate": modulePath + "/infusion/src/components/tableOfContents/html/TableOfContents.html",
+                  "tocMessage": modulePath + "/infusion/src/framework/preferences/messages/tableOfContents-enactor.json",
+                  ignoreForToC: {
+                    "overviewPanel": ".flc-overviewPanel"
+                  }
                 }
               }
+            },
+            prefsEditorLoader: {
+              lazyLoad: true
             }
-          },
-          prefsEditorLoader: {
-            lazyLoad: true
-          }
-        });
+          });
+        }
 
         renderCounter++;
       }
diff --git a/messages/en/captions.json b/messages/en/captions.json
new file mode 100644
index 0000000000000000000000000000000000000000..37b4586ccb95051af87aac5d4e5637829c6c1340
--- /dev/null
+++ b/messages/en/captions.json
@@ -0,0 +1,6 @@
+{
+    "label": "Captions",
+    "description": "Request embedded YouTube videos to display captions.",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/captions_en.json b/messages/en/captions_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..37b4586ccb95051af87aac5d4e5637829c6c1340
--- /dev/null
+++ b/messages/en/captions_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Captions",
+    "description": "Request embedded YouTube videos to display captions.",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/captions_en_CA.json b/messages/en/captions_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..37b4586ccb95051af87aac5d4e5637829c6c1340
--- /dev/null
+++ b/messages/en/captions_en_CA.json
@@ -0,0 +1,6 @@
+{
+    "label": "Captions",
+    "description": "Request embedded YouTube videos to display captions.",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/captions_en_US.json b/messages/en/captions_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..37b4586ccb95051af87aac5d4e5637829c6c1340
--- /dev/null
+++ b/messages/en/captions_en_US.json
@@ -0,0 +1,6 @@
+{
+    "label": "Captions",
+    "description": "Request embedded YouTube videos to display captions.",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/contrast.json b/messages/en/contrast.json
index 35415faa01fc47c2cc48685cba4bdfc172907e10..d10a67df188c600673939fc9e5c50d0df6d85bae 100644
--- a/messages/en/contrast.json
+++ b/messages/en/contrast.json
@@ -1,10 +1,13 @@
 {
-    "contrast-default": "Default",
+    "contrast-default": "No Preference",
     "contrast-bw": "Black on white",
     "contrast-wb": "White on black",
     "contrast-by": "Black on yellow",
     "contrast-yb": "Yellow on black",
-    "contrast-lgdg": "Low contrast",
+    "contrast-lgdg": "Light grey on dark grey",
+    "contrast-gd": "Grey on dark",
+    "contrast-gw": "Grey on white",
+    "contrast-bbr": "Black on brown",
     "label": "Contrast",
     "description": "Change text and background colours"
 }
diff --git a/messages/en/contrast_en.json b/messages/en/contrast_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..d10a67df188c600673939fc9e5c50d0df6d85bae
--- /dev/null
+++ b/messages/en/contrast_en.json
@@ -0,0 +1,13 @@
+{
+    "contrast-default": "No Preference",
+    "contrast-bw": "Black on white",
+    "contrast-wb": "White on black",
+    "contrast-by": "Black on yellow",
+    "contrast-yb": "Yellow on black",
+    "contrast-lgdg": "Light grey on dark grey",
+    "contrast-gd": "Grey on dark",
+    "contrast-gw": "Grey on white",
+    "contrast-bbr": "Black on brown",
+    "label": "Contrast",
+    "description": "Change text and background colours"
+}
diff --git a/messages/en/contrast_en_CA.json b/messages/en/contrast_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..d10a67df188c600673939fc9e5c50d0df6d85bae
--- /dev/null
+++ b/messages/en/contrast_en_CA.json
@@ -0,0 +1,13 @@
+{
+    "contrast-default": "No Preference",
+    "contrast-bw": "Black on white",
+    "contrast-wb": "White on black",
+    "contrast-by": "Black on yellow",
+    "contrast-yb": "Yellow on black",
+    "contrast-lgdg": "Light grey on dark grey",
+    "contrast-gd": "Grey on dark",
+    "contrast-gw": "Grey on white",
+    "contrast-bbr": "Black on brown",
+    "label": "Contrast",
+    "description": "Change text and background colours"
+}
diff --git a/messages/en/contrast_en_US.json b/messages/en/contrast_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..d24bc99d13a0ae0dc3a9e4d4b00d5887f843a567
--- /dev/null
+++ b/messages/en/contrast_en_US.json
@@ -0,0 +1,13 @@
+{
+    "contrast-default": "No Preference",
+    "contrast-bw": "Black on white",
+    "contrast-wb": "White on black",
+    "contrast-by": "Black on yellow",
+    "contrast-yb": "Yellow on black",
+    "contrast-lgdg": "Light gray on dark gray",
+    "contrast-gd": "Gray on dark",
+    "contrast-gw": "Gray on white",
+    "contrast-bbr": "Black on brown",
+    "label": "Contrast",
+    "description": "Change text and background colors"
+}
diff --git a/messages/en/enhanceInputs.json b/messages/en/enhanceInputs.json
index ca012e324b5a7ec63a8e812c42fb16d6abeb6f0a..bfcbb421fe6c0eef7d793bb2dbde8136be8d21d7 100644
--- a/messages/en/enhanceInputs.json
+++ b/messages/en/enhanceInputs.json
@@ -1,6 +1,6 @@
 {
     "label": "Enhance Inputs",
     "description": "Emphasize links, buttons, menus, textfields, and other inputs",
-    "switchOn": "on",
-    "switchOff": "off"
+    "switchOn": "ON",
+    "switchOff": "OFF"
 }
diff --git a/messages/en/enhanceInputs_en.json b/messages/en/enhanceInputs_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..bfcbb421fe6c0eef7d793bb2dbde8136be8d21d7
--- /dev/null
+++ b/messages/en/enhanceInputs_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Enhance Inputs",
+    "description": "Emphasize links, buttons, menus, textfields, and other inputs",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/enhanceInputs_en_CA.json b/messages/en/enhanceInputs_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..bfcbb421fe6c0eef7d793bb2dbde8136be8d21d7
--- /dev/null
+++ b/messages/en/enhanceInputs_en_CA.json
@@ -0,0 +1,6 @@
+{
+    "label": "Enhance Inputs",
+    "description": "Emphasize links, buttons, menus, textfields, and other inputs",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/enhanceInputs_en_US.json b/messages/en/enhanceInputs_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..bfcbb421fe6c0eef7d793bb2dbde8136be8d21d7
--- /dev/null
+++ b/messages/en/enhanceInputs_en_US.json
@@ -0,0 +1,6 @@
+{
+    "label": "Enhance Inputs",
+    "description": "Emphasize links, buttons, menus, textfields, and other inputs",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/letterSpace.json b/messages/en/letterSpace_en.json
similarity index 100%
rename from messages/en/letterSpace.json
rename to messages/en/letterSpace_en.json
diff --git a/messages/en/letterSpace_en_CA.json b/messages/en/letterSpace_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..762cbb15813db5106c574ec58767de94121a7c7a
--- /dev/null
+++ b/messages/en/letterSpace_en_CA.json
@@ -0,0 +1,6 @@
+{
+    "label": "Letter Spacing",
+    "description": "Adjust the spacing between letters",
+    "increaseLabel": "increase letter spacing",
+    "decreaseLabel": "decrease letter spacing"
+}
diff --git a/messages/en/letterSpace_en_US.json b/messages/en/letterSpace_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..762cbb15813db5106c574ec58767de94121a7c7a
--- /dev/null
+++ b/messages/en/letterSpace_en_US.json
@@ -0,0 +1,6 @@
+{
+    "label": "Letter Spacing",
+    "description": "Adjust the spacing between letters",
+    "increaseLabel": "increase letter spacing",
+    "decreaseLabel": "decrease letter spacing"
+}
diff --git a/messages/en/lineSpace_en.json b/messages/en/lineSpace_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..79311ba40c758e9e630b4039c790581990a6795c
--- /dev/null
+++ b/messages/en/lineSpace_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Line Spacing",
+    "description": "Adjust the spacing between lines of text",
+    "increaseLabel": "increase line spacing",
+    "decreaseLabel": "decrease line spacing"
+}
diff --git a/messages/en/lineSpace_en_CA.json b/messages/en/lineSpace_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..79311ba40c758e9e630b4039c790581990a6795c
--- /dev/null
+++ b/messages/en/lineSpace_en_CA.json
@@ -0,0 +1,6 @@
+{
+    "label": "Line Spacing",
+    "description": "Adjust the spacing between lines of text",
+    "increaseLabel": "increase line spacing",
+    "decreaseLabel": "decrease line spacing"
+}
diff --git a/messages/en/lineSpace_en_US.json b/messages/en/lineSpace_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..79311ba40c758e9e630b4039c790581990a6795c
--- /dev/null
+++ b/messages/en/lineSpace_en_US.json
@@ -0,0 +1,6 @@
+{
+    "label": "Line Spacing",
+    "description": "Adjust the spacing between lines of text",
+    "increaseLabel": "increase line spacing",
+    "decreaseLabel": "decrease line spacing"
+}
diff --git a/messages/en/localization_en.json b/messages/en/localization_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..4c14f95950471e0630f27198a9f5def246eea453
--- /dev/null
+++ b/messages/en/localization_en.json
@@ -0,0 +1,12 @@
+{
+    "localization-default": "No Preference",
+    "localization-en": "English",
+    "localization-en_CA": "English (Canada)",
+    "localization-en_US": "English (USA)",
+    "localization-es": "Español",
+    "localization-fa": "فارسی",
+    "localization-fr": "Français",
+    "localization-pt_BR": "Português (Brazil)",
+    "label": "Localization",
+    "description": "Change the locale and/or language"
+}
diff --git a/messages/en/localization_en_CA.json b/messages/en/localization_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..4c14f95950471e0630f27198a9f5def246eea453
--- /dev/null
+++ b/messages/en/localization_en_CA.json
@@ -0,0 +1,12 @@
+{
+    "localization-default": "No Preference",
+    "localization-en": "English",
+    "localization-en_CA": "English (Canada)",
+    "localization-en_US": "English (USA)",
+    "localization-es": "Español",
+    "localization-fa": "فارسی",
+    "localization-fr": "Français",
+    "localization-pt_BR": "Português (Brazil)",
+    "label": "Localization",
+    "description": "Change the locale and/or language"
+}
diff --git a/messages/en/localization_en_US.json b/messages/en/localization_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..4c14f95950471e0630f27198a9f5def246eea453
--- /dev/null
+++ b/messages/en/localization_en_US.json
@@ -0,0 +1,12 @@
+{
+    "localization-default": "No Preference",
+    "localization-en": "English",
+    "localization-en_CA": "English (Canada)",
+    "localization-en_US": "English (USA)",
+    "localization-es": "Español",
+    "localization-fa": "فارسی",
+    "localization-fr": "Français",
+    "localization-pt_BR": "Português (Brazil)",
+    "label": "Localization",
+    "description": "Change the locale and/or language"
+}
diff --git a/messages/en/prefsEditor_en.json b/messages/en/prefsEditor_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..87f57329e3944fb3e727af5c4618258ab1d3990f
--- /dev/null
+++ b/messages/en/prefsEditor_en.json
@@ -0,0 +1,7 @@
+{
+    "slidingPanelShowText": "+ Show Preferences",
+    "slidingPanelHideText": "- Hide Preferences",
+    "showTextAriaLabel": "Show Display Preferences",
+    "hideTextAriaLabel": "Hide Display Preferences",
+    "slidingPanelPanelLabel": "User Preferences"
+}
diff --git a/messages/en/prefsEditor_en_CA.json b/messages/en/prefsEditor_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..87f57329e3944fb3e727af5c4618258ab1d3990f
--- /dev/null
+++ b/messages/en/prefsEditor_en_CA.json
@@ -0,0 +1,7 @@
+{
+    "slidingPanelShowText": "+ Show Preferences",
+    "slidingPanelHideText": "- Hide Preferences",
+    "showTextAriaLabel": "Show Display Preferences",
+    "hideTextAriaLabel": "Hide Display Preferences",
+    "slidingPanelPanelLabel": "User Preferences"
+}
diff --git a/messages/en/prefsEditor_en_US.json b/messages/en/prefsEditor_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..87f57329e3944fb3e727af5c4618258ab1d3990f
--- /dev/null
+++ b/messages/en/prefsEditor_en_US.json
@@ -0,0 +1,7 @@
+{
+    "slidingPanelShowText": "+ Show Preferences",
+    "slidingPanelHideText": "- Hide Preferences",
+    "showTextAriaLabel": "Show Display Preferences",
+    "hideTextAriaLabel": "Hide Display Preferences",
+    "slidingPanelPanelLabel": "User Preferences"
+}
diff --git a/messages/en/speak.json b/messages/en/speak_en.json
similarity index 100%
rename from messages/en/speak.json
rename to messages/en/speak_en.json
diff --git a/messages/en/speak_en_CA.json b/messages/en/speak_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..89c12415a59eebbae35645f73fdaed69061721d3
--- /dev/null
+++ b/messages/en/speak_en_CA.json
@@ -0,0 +1,6 @@
+{
+    "label": "Text-to-Speech",
+    "description": "Let the computer read site content out loud",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/speak_en_US.json b/messages/en/speak_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..89c12415a59eebbae35645f73fdaed69061721d3
--- /dev/null
+++ b/messages/en/speak_en_US.json
@@ -0,0 +1,6 @@
+{
+    "label": "Text-to-Speech",
+    "description": "Let the computer read site content out loud",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/syllabification_en.json b/messages/en/syllabification_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..0fa6be7b6058ea987a22599df2384da4b9127b70
--- /dev/null
+++ b/messages/en/syllabification_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Syllables",
+    "description": "Display words separated into syllables.",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/syllabification_en_CA.json b/messages/en/syllabification_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..0fa6be7b6058ea987a22599df2384da4b9127b70
--- /dev/null
+++ b/messages/en/syllabification_en_CA.json
@@ -0,0 +1,6 @@
+{
+    "label": "Syllables",
+    "description": "Display words separated into syllables.",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/syllabification_en_US.json b/messages/en/syllabification_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..0fa6be7b6058ea987a22599df2384da4b9127b70
--- /dev/null
+++ b/messages/en/syllabification_en_US.json
@@ -0,0 +1,6 @@
+{
+    "label": "Syllables",
+    "description": "Display words separated into syllables.",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/tableOfContents-enactor_en.json b/messages/en/tableOfContents-enactor_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..87be9b973c0940ab8e0fd38e0c2097b6650c37a5
--- /dev/null
+++ b/messages/en/tableOfContents-enactor_en.json
@@ -0,0 +1,3 @@
+{
+    "tocHeader": "Table of Contents"
+}
diff --git a/messages/en/tableOfContents-enactor_en_CA.json b/messages/en/tableOfContents-enactor_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..87be9b973c0940ab8e0fd38e0c2097b6650c37a5
--- /dev/null
+++ b/messages/en/tableOfContents-enactor_en_CA.json
@@ -0,0 +1,3 @@
+{
+    "tocHeader": "Table of Contents"
+}
diff --git a/messages/en/tableOfContents-enactor_en_US.json b/messages/en/tableOfContents-enactor_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..87be9b973c0940ab8e0fd38e0c2097b6650c37a5
--- /dev/null
+++ b/messages/en/tableOfContents-enactor_en_US.json
@@ -0,0 +1,3 @@
+{
+    "tocHeader": "Table of Contents"
+}
diff --git a/messages/en/tableOfContents_en.json b/messages/en/tableOfContents_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..9fa543106f51eaa9861047da895b61f174f1e070
--- /dev/null
+++ b/messages/en/tableOfContents_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Table of Contents",
+    "description": "Create a table of contents",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/tableOfContents_en_CA.json b/messages/en/tableOfContents_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..9fa543106f51eaa9861047da895b61f174f1e070
--- /dev/null
+++ b/messages/en/tableOfContents_en_CA.json
@@ -0,0 +1,6 @@
+{
+    "label": "Table of Contents",
+    "description": "Create a table of contents",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/tableOfContents_en_US.json b/messages/en/tableOfContents_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..9fa543106f51eaa9861047da895b61f174f1e070
--- /dev/null
+++ b/messages/en/tableOfContents_en_US.json
@@ -0,0 +1,6 @@
+{
+    "label": "Table of Contents",
+    "description": "Create a table of contents",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/en/textFont.json b/messages/en/textFont.json
index 76f408ebc567f3527059dfb6fa053a7c1a81d032..bd370c74103651b23149cd583923c13e8dd5e40e 100644
--- a/messages/en/textFont.json
+++ b/messages/en/textFont.json
@@ -1,9 +1,12 @@
 {
-    "textFont-default": "Default",
+    "textFont-default": "No Preference",
+    "textFont-system": "Device Font",
     "textFont-times": "Times New Roman",
     "textFont-comic": "Comic Sans",
     "textFont-arial": "Arial",
     "textFont-verdana": "Verdana",
+    "textFont-open-dyslexic": "Open Dyslexic",
+    "textFont-atkinson-hyperlegible": "Atkinson Hyperlegible",
     "textFontLabel": "text style",
     "textFontDescr": "Change the font used"
 }
diff --git a/messages/en/textFont_en.json b/messages/en/textFont_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..bd370c74103651b23149cd583923c13e8dd5e40e
--- /dev/null
+++ b/messages/en/textFont_en.json
@@ -0,0 +1,12 @@
+{
+    "textFont-default": "No Preference",
+    "textFont-system": "Device Font",
+    "textFont-times": "Times New Roman",
+    "textFont-comic": "Comic Sans",
+    "textFont-arial": "Arial",
+    "textFont-verdana": "Verdana",
+    "textFont-open-dyslexic": "Open Dyslexic",
+    "textFont-atkinson-hyperlegible": "Atkinson Hyperlegible",
+    "textFontLabel": "text style",
+    "textFontDescr": "Change the font used"
+}
diff --git a/messages/en/textFont_en_CA.json b/messages/en/textFont_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..bd370c74103651b23149cd583923c13e8dd5e40e
--- /dev/null
+++ b/messages/en/textFont_en_CA.json
@@ -0,0 +1,12 @@
+{
+    "textFont-default": "No Preference",
+    "textFont-system": "Device Font",
+    "textFont-times": "Times New Roman",
+    "textFont-comic": "Comic Sans",
+    "textFont-arial": "Arial",
+    "textFont-verdana": "Verdana",
+    "textFont-open-dyslexic": "Open Dyslexic",
+    "textFont-atkinson-hyperlegible": "Atkinson Hyperlegible",
+    "textFontLabel": "text style",
+    "textFontDescr": "Change the font used"
+}
diff --git a/messages/en/textFont_en_US.json b/messages/en/textFont_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..bd370c74103651b23149cd583923c13e8dd5e40e
--- /dev/null
+++ b/messages/en/textFont_en_US.json
@@ -0,0 +1,12 @@
+{
+    "textFont-default": "No Preference",
+    "textFont-system": "Device Font",
+    "textFont-times": "Times New Roman",
+    "textFont-comic": "Comic Sans",
+    "textFont-arial": "Arial",
+    "textFont-verdana": "Verdana",
+    "textFont-open-dyslexic": "Open Dyslexic",
+    "textFont-atkinson-hyperlegible": "Atkinson Hyperlegible",
+    "textFontLabel": "text style",
+    "textFontDescr": "Change the font used"
+}
diff --git a/messages/en/textSize_en.json b/messages/en/textSize_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..8779402dd872145f2c36937c81d4d73cacbd811e
--- /dev/null
+++ b/messages/en/textSize_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Text Size",
+    "description": "Adjust text size",
+    "increaseLabel": "increase text size",
+    "decreaseLabel": "decrease text size"
+}
diff --git a/messages/en/textSize_en_CA.json b/messages/en/textSize_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..8779402dd872145f2c36937c81d4d73cacbd811e
--- /dev/null
+++ b/messages/en/textSize_en_CA.json
@@ -0,0 +1,6 @@
+{
+    "label": "Text Size",
+    "description": "Adjust text size",
+    "increaseLabel": "increase text size",
+    "decreaseLabel": "decrease text size"
+}
diff --git a/messages/en/textSize_en_US.json b/messages/en/textSize_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..8779402dd872145f2c36937c81d4d73cacbd811e
--- /dev/null
+++ b/messages/en/textSize_en_US.json
@@ -0,0 +1,6 @@
+{
+    "label": "Text Size",
+    "description": "Adjust text size",
+    "increaseLabel": "increase text size",
+    "decreaseLabel": "decrease text size"
+}
diff --git a/messages/en/wordSpace_en.json b/messages/en/wordSpace_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..236359371e508ef471cc5af5ad2b3e28445c417d
--- /dev/null
+++ b/messages/en/wordSpace_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Word Spacing",
+    "description": "Adjust the spacing between words",
+    "increaseLabel": "increase word spacing",
+    "decreaseLabel": "decrease word spacing"
+}
diff --git a/messages/en/wordSpace_en_CA.json b/messages/en/wordSpace_en_CA.json
new file mode 100644
index 0000000000000000000000000000000000000000..236359371e508ef471cc5af5ad2b3e28445c417d
--- /dev/null
+++ b/messages/en/wordSpace_en_CA.json
@@ -0,0 +1,6 @@
+{
+    "label": "Word Spacing",
+    "description": "Adjust the spacing between words",
+    "increaseLabel": "increase word spacing",
+    "decreaseLabel": "decrease word spacing"
+}
diff --git a/messages/en/wordSpace_en_US.json b/messages/en/wordSpace_en_US.json
new file mode 100644
index 0000000000000000000000000000000000000000..236359371e508ef471cc5af5ad2b3e28445c417d
--- /dev/null
+++ b/messages/en/wordSpace_en_US.json
@@ -0,0 +1,6 @@
+{
+    "label": "Word Spacing",
+    "description": "Adjust the spacing between words",
+    "increaseLabel": "increase word spacing",
+    "decreaseLabel": "decrease word spacing"
+}
diff --git a/messages/es/captions.json b/messages/es/captions.json
new file mode 100644
index 0000000000000000000000000000000000000000..37b4586ccb95051af87aac5d4e5637829c6c1340
--- /dev/null
+++ b/messages/es/captions.json
@@ -0,0 +1,6 @@
+{
+    "label": "Captions",
+    "description": "Request embedded YouTube videos to display captions.",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/es/captions_en.json b/messages/es/captions_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..37b4586ccb95051af87aac5d4e5637829c6c1340
--- /dev/null
+++ b/messages/es/captions_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Captions",
+    "description": "Request embedded YouTube videos to display captions.",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/es/captions_es.json b/messages/es/captions_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..d3815b05d6dd0d5f2d820eb69f7c9ede8d6f3d3a
--- /dev/null
+++ b/messages/es/captions_es.json
@@ -0,0 +1,6 @@
+{
+    "label": "Subtítulos",
+    "description": "Solicitar que los videos incrustados de YouTube muestren subtítulos.",
+    "switchOn": "en",
+    "switchOff": "apagado"
+}
diff --git a/messages/es/contrast.json b/messages/es/contrast.json
new file mode 100644
index 0000000000000000000000000000000000000000..245c9b0065a554768b32718867a787e47542e6c9
--- /dev/null
+++ b/messages/es/contrast.json
@@ -0,0 +1,13 @@
+{
+    "contrast-default": "Sin cambios",
+    "contrast-bw": "Negro sobre blanco",
+    "contrast-wb": "Blanco sobre negro",
+    "contrast-by": "Negro sobre amarillo",
+    "contrast-yb": "Amarillo sobre negro",
+    "contrast-lgdg": "Bajo contraste",
+    "contrast-gd": "Gris sobre oscuridado",
+    "contrast-gw": "Gris sobre blanco",
+    "contrast-bbr": "Negro sobre marrón",
+    "label": "color y contraste",
+    "description": "Cambiar texto y colores de fondo"
+}
diff --git a/messages/es/contrast_en.json b/messages/es/contrast_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..245c9b0065a554768b32718867a787e47542e6c9
--- /dev/null
+++ b/messages/es/contrast_en.json
@@ -0,0 +1,13 @@
+{
+    "contrast-default": "Sin cambios",
+    "contrast-bw": "Negro sobre blanco",
+    "contrast-wb": "Blanco sobre negro",
+    "contrast-by": "Negro sobre amarillo",
+    "contrast-yb": "Amarillo sobre negro",
+    "contrast-lgdg": "Bajo contraste",
+    "contrast-gd": "Gris sobre oscuridado",
+    "contrast-gw": "Gris sobre blanco",
+    "contrast-bbr": "Negro sobre marrón",
+    "label": "color y contraste",
+    "description": "Cambiar texto y colores de fondo"
+}
diff --git a/messages/es/contrast_es.json b/messages/es/contrast_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..245c9b0065a554768b32718867a787e47542e6c9
--- /dev/null
+++ b/messages/es/contrast_es.json
@@ -0,0 +1,13 @@
+{
+    "contrast-default": "Sin cambios",
+    "contrast-bw": "Negro sobre blanco",
+    "contrast-wb": "Blanco sobre negro",
+    "contrast-by": "Negro sobre amarillo",
+    "contrast-yb": "Amarillo sobre negro",
+    "contrast-lgdg": "Bajo contraste",
+    "contrast-gd": "Gris sobre oscuridado",
+    "contrast-gw": "Gris sobre blanco",
+    "contrast-bbr": "Negro sobre marrón",
+    "label": "color y contraste",
+    "description": "Cambiar texto y colores de fondo"
+}
diff --git a/messages/es/enhanceInputs.json b/messages/es/enhanceInputs.json
new file mode 100644
index 0000000000000000000000000000000000000000..0d996980fbae5a21bb44f14667916d6706a0c69f
--- /dev/null
+++ b/messages/es/enhanceInputs.json
@@ -0,0 +1,6 @@
+{
+    "label": "Mejorar las entradas",
+    "description": "Haga énfasis en enlaces, botones, menús, campos de texto y otras entradas",
+    "switchOn": "ENCENDIDO",
+    "switchOff": "APAGADO"
+}
diff --git a/messages/es/enhanceInputs_en.json b/messages/es/enhanceInputs_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..0d996980fbae5a21bb44f14667916d6706a0c69f
--- /dev/null
+++ b/messages/es/enhanceInputs_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Mejorar las entradas",
+    "description": "Haga énfasis en enlaces, botones, menús, campos de texto y otras entradas",
+    "switchOn": "ENCENDIDO",
+    "switchOff": "APAGADO"
+}
diff --git a/messages/es/enhanceInputs_es.json b/messages/es/enhanceInputs_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..0d996980fbae5a21bb44f14667916d6706a0c69f
--- /dev/null
+++ b/messages/es/enhanceInputs_es.json
@@ -0,0 +1,6 @@
+{
+    "label": "Mejorar las entradas",
+    "description": "Haga énfasis en enlaces, botones, menús, campos de texto y otras entradas",
+    "switchOn": "ENCENDIDO",
+    "switchOff": "APAGADO"
+}
diff --git a/messages/es/letterSpace.json b/messages/es/letterSpace.json
new file mode 100644
index 0000000000000000000000000000000000000000..762cbb15813db5106c574ec58767de94121a7c7a
--- /dev/null
+++ b/messages/es/letterSpace.json
@@ -0,0 +1,6 @@
+{
+    "label": "Letter Spacing",
+    "description": "Adjust the spacing between letters",
+    "increaseLabel": "increase letter spacing",
+    "decreaseLabel": "decrease letter spacing"
+}
diff --git a/messages/es/letterSpace_en.json b/messages/es/letterSpace_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..762cbb15813db5106c574ec58767de94121a7c7a
--- /dev/null
+++ b/messages/es/letterSpace_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Letter Spacing",
+    "description": "Adjust the spacing between letters",
+    "increaseLabel": "increase letter spacing",
+    "decreaseLabel": "decrease letter spacing"
+}
diff --git a/messages/es/letterSpace_es.json b/messages/es/letterSpace_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..29eee2a7c334a761ee82f74cb1f9ce1afd26d93c
--- /dev/null
+++ b/messages/es/letterSpace_es.json
@@ -0,0 +1,6 @@
+{
+    "label": "Espaciado de letras",
+    "description": "Ajuste el espacio entre las letras",
+    "increaseLabel": "aumentar el espacio entre letras",
+    "decreaseLabel": "disminuir el espacio entre letras"
+}
diff --git a/messages/es/lineSpace.json b/messages/es/lineSpace.json
new file mode 100644
index 0000000000000000000000000000000000000000..4f38606b34336a68425b501269df89ceef714a8c
--- /dev/null
+++ b/messages/es/lineSpace.json
@@ -0,0 +1,6 @@
+{
+    "label": "Espaciado entre líneas",
+    "description": "Ajustar el espacio entre líneas de texto",
+    "increaseLabel": "aumentar el espaciado entre líneas",
+    "decreaseLabel": "disminuir el espaciado entre líneas"
+}
diff --git a/messages/es/lineSpace_en.json b/messages/es/lineSpace_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..4f38606b34336a68425b501269df89ceef714a8c
--- /dev/null
+++ b/messages/es/lineSpace_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Espaciado entre líneas",
+    "description": "Ajustar el espacio entre líneas de texto",
+    "increaseLabel": "aumentar el espaciado entre líneas",
+    "decreaseLabel": "disminuir el espaciado entre líneas"
+}
diff --git a/messages/es/lineSpace_es.json b/messages/es/lineSpace_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..4f38606b34336a68425b501269df89ceef714a8c
--- /dev/null
+++ b/messages/es/lineSpace_es.json
@@ -0,0 +1,6 @@
+{
+    "label": "Espaciado entre líneas",
+    "description": "Ajustar el espacio entre líneas de texto",
+    "increaseLabel": "aumentar el espaciado entre líneas",
+    "decreaseLabel": "disminuir el espaciado entre líneas"
+}
diff --git a/messages/es/localization.json b/messages/es/localization.json
new file mode 100644
index 0000000000000000000000000000000000000000..408cd76003fb2c2982bcd1bec4d8dcde6deef78b
--- /dev/null
+++ b/messages/es/localization.json
@@ -0,0 +1,12 @@
+{
+    "localization-default": "Sin preferencias",
+    "localization-en": "English",
+    "localization-en_CA": "English (Canada)",
+    "localization-en_US": "English (USA)",
+    "localization-es": "Español",
+    "localization-fa": "فارسی",
+    "localization-fr": "Français",
+    "localization-pt_BR": "Português (Brazil)",
+    "label": "Localisation",
+    "description": "Ajustar la localización o el idioma"
+}
diff --git a/messages/es/localization_en.json b/messages/es/localization_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..4c14f95950471e0630f27198a9f5def246eea453
--- /dev/null
+++ b/messages/es/localization_en.json
@@ -0,0 +1,12 @@
+{
+    "localization-default": "No Preference",
+    "localization-en": "English",
+    "localization-en_CA": "English (Canada)",
+    "localization-en_US": "English (USA)",
+    "localization-es": "Español",
+    "localization-fa": "فارسی",
+    "localization-fr": "Français",
+    "localization-pt_BR": "Português (Brazil)",
+    "label": "Localization",
+    "description": "Change the locale and/or language"
+}
diff --git a/messages/es/localization_es.json b/messages/es/localization_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..408cd76003fb2c2982bcd1bec4d8dcde6deef78b
--- /dev/null
+++ b/messages/es/localization_es.json
@@ -0,0 +1,12 @@
+{
+    "localization-default": "Sin preferencias",
+    "localization-en": "English",
+    "localization-en_CA": "English (Canada)",
+    "localization-en_US": "English (USA)",
+    "localization-es": "Español",
+    "localization-fa": "فارسی",
+    "localization-fr": "Français",
+    "localization-pt_BR": "Português (Brazil)",
+    "label": "Localisation",
+    "description": "Ajustar la localización o el idioma"
+}
diff --git a/messages/es/prefsEditor.json b/messages/es/prefsEditor.json
new file mode 100644
index 0000000000000000000000000000000000000000..b1003e45a21a46100010f0efac79d1840d88c34b
--- /dev/null
+++ b/messages/es/prefsEditor.json
@@ -0,0 +1,7 @@
+{
+    "slidingPanelShowText": "+ Mostrar preferencias",
+    "slidingPanelHideText": "- Esconder",
+    "showTextAriaLabel": "Mostrar preferencias",
+    "hideTextAriaLabel": "Esconder preferencias",
+    "slidingPanelPanelLabel": "Preferencias de usuario"
+}
diff --git a/messages/es/prefsEditor_en.json b/messages/es/prefsEditor_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..b1003e45a21a46100010f0efac79d1840d88c34b
--- /dev/null
+++ b/messages/es/prefsEditor_en.json
@@ -0,0 +1,7 @@
+{
+    "slidingPanelShowText": "+ Mostrar preferencias",
+    "slidingPanelHideText": "- Esconder",
+    "showTextAriaLabel": "Mostrar preferencias",
+    "hideTextAriaLabel": "Esconder preferencias",
+    "slidingPanelPanelLabel": "Preferencias de usuario"
+}
diff --git a/messages/es/prefsEditor_es.json b/messages/es/prefsEditor_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..b1003e45a21a46100010f0efac79d1840d88c34b
--- /dev/null
+++ b/messages/es/prefsEditor_es.json
@@ -0,0 +1,7 @@
+{
+    "slidingPanelShowText": "+ Mostrar preferencias",
+    "slidingPanelHideText": "- Esconder",
+    "showTextAriaLabel": "Mostrar preferencias",
+    "hideTextAriaLabel": "Esconder preferencias",
+    "slidingPanelPanelLabel": "Preferencias de usuario"
+}
diff --git a/messages/es/speak.json b/messages/es/speak.json
new file mode 100644
index 0000000000000000000000000000000000000000..89c12415a59eebbae35645f73fdaed69061721d3
--- /dev/null
+++ b/messages/es/speak.json
@@ -0,0 +1,6 @@
+{
+    "label": "Text-to-Speech",
+    "description": "Let the computer read site content out loud",
+    "switchOn": "ON",
+    "switchOff": "OFF"
+}
diff --git a/messages/es/speak_es.json b/messages/es/speak_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..643a9867cb80611e82ee6342628dfbc452a9ed95
--- /dev/null
+++ b/messages/es/speak_es.json
@@ -0,0 +1,6 @@
+{
+    "label": "Texto a voz",
+    "description": "Deje que la computadora lea el contenido del sitio en voz alta",
+    "switchOn": "ENCENDIDO",
+    "switchOff": "APAGADO"
+}
diff --git a/messages/es/tableOfContents-enactor.json b/messages/es/tableOfContents-enactor.json
new file mode 100644
index 0000000000000000000000000000000000000000..51be81a4d211f322035beb30f871c51424d2f9a0
--- /dev/null
+++ b/messages/es/tableOfContents-enactor.json
@@ -0,0 +1,3 @@
+{
+    "tocHeader": "Tabla de contenido"
+}
diff --git a/messages/es/tableOfContents-enactor_en.json b/messages/es/tableOfContents-enactor_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..51be81a4d211f322035beb30f871c51424d2f9a0
--- /dev/null
+++ b/messages/es/tableOfContents-enactor_en.json
@@ -0,0 +1,3 @@
+{
+    "tocHeader": "Tabla de contenido"
+}
diff --git a/messages/es/tableOfContents-enactor_es.json b/messages/es/tableOfContents-enactor_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..51be81a4d211f322035beb30f871c51424d2f9a0
--- /dev/null
+++ b/messages/es/tableOfContents-enactor_es.json
@@ -0,0 +1,3 @@
+{
+    "tocHeader": "Tabla de contenido"
+}
diff --git a/messages/es/tableOfContents.json b/messages/es/tableOfContents.json
new file mode 100644
index 0000000000000000000000000000000000000000..7c321c99402c0904b453da543bf1daf01d677692
--- /dev/null
+++ b/messages/es/tableOfContents.json
@@ -0,0 +1,6 @@
+{
+    "label": "Tabla de contenido",
+    "description": "Crear una tabla de contenido",
+    "switchOn": "ENCENDIDO",
+    "switchOff": "APAGADO"
+}
diff --git a/messages/es/tableOfContents_en.json b/messages/es/tableOfContents_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..7c321c99402c0904b453da543bf1daf01d677692
--- /dev/null
+++ b/messages/es/tableOfContents_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Tabla de contenido",
+    "description": "Crear una tabla de contenido",
+    "switchOn": "ENCENDIDO",
+    "switchOff": "APAGADO"
+}
diff --git a/messages/es/tableOfContents_es.json b/messages/es/tableOfContents_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..7c321c99402c0904b453da543bf1daf01d677692
--- /dev/null
+++ b/messages/es/tableOfContents_es.json
@@ -0,0 +1,6 @@
+{
+    "label": "Tabla de contenido",
+    "description": "Crear una tabla de contenido",
+    "switchOn": "ENCENDIDO",
+    "switchOff": "APAGADO"
+}
diff --git a/messages/es/textFont.json b/messages/es/textFont.json
new file mode 100644
index 0000000000000000000000000000000000000000..bd370c74103651b23149cd583923c13e8dd5e40e
--- /dev/null
+++ b/messages/es/textFont.json
@@ -0,0 +1,12 @@
+{
+    "textFont-default": "No Preference",
+    "textFont-system": "Device Font",
+    "textFont-times": "Times New Roman",
+    "textFont-comic": "Comic Sans",
+    "textFont-arial": "Arial",
+    "textFont-verdana": "Verdana",
+    "textFont-open-dyslexic": "Open Dyslexic",
+    "textFont-atkinson-hyperlegible": "Atkinson Hyperlegible",
+    "textFontLabel": "text style",
+    "textFontDescr": "Change the font used"
+}
diff --git a/messages/es/textFont_en.json b/messages/es/textFont_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..619b264a57fd7d963b71d76a6e3d0fcaf1aec042
--- /dev/null
+++ b/messages/es/textFont_en.json
@@ -0,0 +1,12 @@
+{
+    "textFont-default": "Sin cambios",
+    "textFont-system": "Letras del dispositivo",
+    "textFont-times": "Times New Roman",
+    "textFont-comic": "Comic Sans",
+    "textFont-arial": "Arial",
+    "textFont-verdana": "Verdana",
+    "textFont-open-dyslexic": "Open Dyslexic",
+    "textFont-atkinson-hyperlegible": "Atkinson Hyperlegible",
+    "textFontLabel": "estilo de texto",
+    "textFontDescr": "Cambiar la fuente utilizada"
+}
diff --git a/messages/es/textFont_es.json b/messages/es/textFont_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..619b264a57fd7d963b71d76a6e3d0fcaf1aec042
--- /dev/null
+++ b/messages/es/textFont_es.json
@@ -0,0 +1,12 @@
+{
+    "textFont-default": "Sin cambios",
+    "textFont-system": "Letras del dispositivo",
+    "textFont-times": "Times New Roman",
+    "textFont-comic": "Comic Sans",
+    "textFont-arial": "Arial",
+    "textFont-verdana": "Verdana",
+    "textFont-open-dyslexic": "Open Dyslexic",
+    "textFont-atkinson-hyperlegible": "Atkinson Hyperlegible",
+    "textFontLabel": "estilo de texto",
+    "textFontDescr": "Cambiar la fuente utilizada"
+}
diff --git a/messages/es/textSize.json b/messages/es/textSize.json
new file mode 100644
index 0000000000000000000000000000000000000000..8779402dd872145f2c36937c81d4d73cacbd811e
--- /dev/null
+++ b/messages/es/textSize.json
@@ -0,0 +1,6 @@
+{
+    "label": "Text Size",
+    "description": "Adjust text size",
+    "increaseLabel": "increase text size",
+    "decreaseLabel": "decrease text size"
+}
diff --git a/messages/es/textSize_en.json b/messages/es/textSize_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..e0179d1ac692568bf7a8128954c635a69a1928a4
--- /dev/null
+++ b/messages/es/textSize_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Tamano del texto",
+    "description": "Ajustar el tamaño del texto",
+    "increaseLabel": "aumentar el tamaño del texto",
+    "decreaseLabel": "disminuir el tamaño del texto"
+}
diff --git a/messages/es/textSize_es.json b/messages/es/textSize_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..e0179d1ac692568bf7a8128954c635a69a1928a4
--- /dev/null
+++ b/messages/es/textSize_es.json
@@ -0,0 +1,6 @@
+{
+    "label": "Tamano del texto",
+    "description": "Ajustar el tamaño del texto",
+    "increaseLabel": "aumentar el tamaño del texto",
+    "decreaseLabel": "disminuir el tamaño del texto"
+}
diff --git a/messages/es/wordSpace.json b/messages/es/wordSpace.json
new file mode 100644
index 0000000000000000000000000000000000000000..236359371e508ef471cc5af5ad2b3e28445c417d
--- /dev/null
+++ b/messages/es/wordSpace.json
@@ -0,0 +1,6 @@
+{
+    "label": "Word Spacing",
+    "description": "Adjust the spacing between words",
+    "increaseLabel": "increase word spacing",
+    "decreaseLabel": "decrease word spacing"
+}
diff --git a/messages/es/wordSpace_en.json b/messages/es/wordSpace_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..236359371e508ef471cc5af5ad2b3e28445c417d
--- /dev/null
+++ b/messages/es/wordSpace_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Word Spacing",
+    "description": "Adjust the spacing between words",
+    "increaseLabel": "increase word spacing",
+    "decreaseLabel": "decrease word spacing"
+}
diff --git a/messages/es/wordSpace_es.json b/messages/es/wordSpace_es.json
new file mode 100644
index 0000000000000000000000000000000000000000..ec0bed91c211b7c521a6cb4e719959ad3702174e
--- /dev/null
+++ b/messages/es/wordSpace_es.json
@@ -0,0 +1,6 @@
+{
+    "label": "Espaciado de letras",
+    "description": "Ajuste el espacio entre las palabras",
+    "increaseLabel": "aumentar el espacio entre palabras",
+    "decreaseLabel": "disminuir el espacio entre palabras"
+}
diff --git a/messages/fr/captions.json b/messages/fr/captions.json
new file mode 100644
index 0000000000000000000000000000000000000000..f70b9e8c766cf82d25e35e60c1a83de643a6037b
--- /dev/null
+++ b/messages/fr/captions.json
@@ -0,0 +1,6 @@
+{
+    "label": "Sous-titres",
+    "description": "Demander que les vidéos YouTube intégrées affichent les sous-titres.",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
+}
diff --git a/messages/fr/captions_en.json b/messages/fr/captions_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..f70b9e8c766cf82d25e35e60c1a83de643a6037b
--- /dev/null
+++ b/messages/fr/captions_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Sous-titres",
+    "description": "Demander que les vidéos YouTube intégrées affichent les sous-titres.",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
+}
diff --git a/messages/fr/captions_fr.json b/messages/fr/captions_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..f70b9e8c766cf82d25e35e60c1a83de643a6037b
--- /dev/null
+++ b/messages/fr/captions_fr.json
@@ -0,0 +1,6 @@
+{
+    "label": "Sous-titres",
+    "description": "Demander que les vidéos YouTube intégrées affichent les sous-titres.",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
+}
diff --git a/messages/fr/contrast.json b/messages/fr/contrast.json
index c0e34db6c1ddc77dd92fab792f443f6aa43a4f81..7123a1c3847a692bca2c168093a230111ce66ee8 100644
--- a/messages/fr/contrast.json
+++ b/messages/fr/contrast.json
@@ -1,10 +1,13 @@
 {
-    "contrast-default": "Défaut",
+    "contrast-default": "Pas de préférence",
     "contrast-bw": "Noir sur blanc",
     "contrast-wb": "Blanc sur noir",
     "contrast-by": "Noir sur jaune",
     "contrast-yb": "Jaune sur noir",
     "contrast-lgdg": "Faible contraste",
-    "label": "Contraste",
-    "description": "Changer les couleurs du texte et de l'arrière-plan"
+    "contrast-gd": "Gris sur foncé",
+    "contrast-gw": "Gris sur blanc",
+    "contrast-bbr": "Noir sur brun",
+    "label": "Couleur et contraste",
+    "description": "Ajuster les coleurs du texte et de l'arrière-plan"
 }
diff --git a/messages/fr/contrast_en.json b/messages/fr/contrast_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..7123a1c3847a692bca2c168093a230111ce66ee8
--- /dev/null
+++ b/messages/fr/contrast_en.json
@@ -0,0 +1,13 @@
+{
+    "contrast-default": "Pas de préférence",
+    "contrast-bw": "Noir sur blanc",
+    "contrast-wb": "Blanc sur noir",
+    "contrast-by": "Noir sur jaune",
+    "contrast-yb": "Jaune sur noir",
+    "contrast-lgdg": "Faible contraste",
+    "contrast-gd": "Gris sur foncé",
+    "contrast-gw": "Gris sur blanc",
+    "contrast-bbr": "Noir sur brun",
+    "label": "Couleur et contraste",
+    "description": "Ajuster les coleurs du texte et de l'arrière-plan"
+}
diff --git a/messages/fr/contrast_fr.json b/messages/fr/contrast_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..7123a1c3847a692bca2c168093a230111ce66ee8
--- /dev/null
+++ b/messages/fr/contrast_fr.json
@@ -0,0 +1,13 @@
+{
+    "contrast-default": "Pas de préférence",
+    "contrast-bw": "Noir sur blanc",
+    "contrast-wb": "Blanc sur noir",
+    "contrast-by": "Noir sur jaune",
+    "contrast-yb": "Jaune sur noir",
+    "contrast-lgdg": "Faible contraste",
+    "contrast-gd": "Gris sur foncé",
+    "contrast-gw": "Gris sur blanc",
+    "contrast-bbr": "Noir sur brun",
+    "label": "Couleur et contraste",
+    "description": "Ajuster les coleurs du texte et de l'arrière-plan"
+}
diff --git a/messages/fr/enhanceInputs.json b/messages/fr/enhanceInputs.json
index 0dad012a23a92a4f13d8294d72cae039a2b59f30..6fe775555b0018e5f53c989c81e185e6294dce54 100644
--- a/messages/fr/enhanceInputs.json
+++ b/messages/fr/enhanceInputs.json
@@ -1,6 +1,6 @@
 {
-    "label": "Améliorer les entrées",
-    "description": " Accentuer les liens, les boutons, les menus, les champs de texte et autres entrées.",
-    "switchOn": "démarrer",
-    "switchOff": "éteindre"
+    "label": "Accentuer les contrôles",
+    "description": "Accentuer les liens, les boutons, les menus, les champs de saisie, et d'autres contrôles",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
 }
diff --git a/messages/fr/enhanceInputs_en.json b/messages/fr/enhanceInputs_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..6fe775555b0018e5f53c989c81e185e6294dce54
--- /dev/null
+++ b/messages/fr/enhanceInputs_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Accentuer les contrôles",
+    "description": "Accentuer les liens, les boutons, les menus, les champs de saisie, et d'autres contrôles",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
+}
diff --git a/messages/fr/enhanceInputs_fr.json b/messages/fr/enhanceInputs_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..6fe775555b0018e5f53c989c81e185e6294dce54
--- /dev/null
+++ b/messages/fr/enhanceInputs_fr.json
@@ -0,0 +1,6 @@
+{
+    "label": "Accentuer les contrôles",
+    "description": "Accentuer les liens, les boutons, les menus, les champs de saisie, et d'autres contrôles",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
+}
diff --git a/messages/fr/letterSpace.json b/messages/fr/letterSpace.json
index 0860e9ae9e5537578debf97a051f876068b4d184..a5266cb8ad1e733b95c639756d98c6ab4993b14b 100644
--- a/messages/fr/letterSpace.json
+++ b/messages/fr/letterSpace.json
@@ -1,6 +1,6 @@
 {
-    "label": "Espacement entre les lettres",
+    "label": "Espacement des lettres",
     "description": "Ajuster l'espacement entre les lettres",
-    "increaseLabel": "accroître l'espacement entre les lettres",
-    "decreaseLabel": "réduire l'espacement entre les lettres "
+    "increaseLabel": "Séparer les lettres",
+    "decreaseLabel": "Rapprocher les lettres"
 }
diff --git a/messages/fr/letterSpace_en.json b/messages/fr/letterSpace_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..a5266cb8ad1e733b95c639756d98c6ab4993b14b
--- /dev/null
+++ b/messages/fr/letterSpace_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Espacement des lettres",
+    "description": "Ajuster l'espacement entre les lettres",
+    "increaseLabel": "Séparer les lettres",
+    "decreaseLabel": "Rapprocher les lettres"
+}
diff --git a/messages/fr/letterSpace_fr.json b/messages/fr/letterSpace_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..a5266cb8ad1e733b95c639756d98c6ab4993b14b
--- /dev/null
+++ b/messages/fr/letterSpace_fr.json
@@ -0,0 +1,6 @@
+{
+    "label": "Espacement des lettres",
+    "description": "Ajuster l'espacement entre les lettres",
+    "increaseLabel": "Séparer les lettres",
+    "decreaseLabel": "Rapprocher les lettres"
+}
diff --git a/messages/fr/lineSpace.json b/messages/fr/lineSpace.json
index 22b4d21136258d90c4f14fe01471f1710e2b5169..6e8cb42d0dc92e94aab31ef5db8b1ab34c9d521e 100644
--- a/messages/fr/lineSpace.json
+++ b/messages/fr/lineSpace.json
@@ -1,6 +1,6 @@
 {
     "label": "Interligne",
     "description": "Ajuster l'espacement entre les lignes de texte",
-    "increaseLabel": "accroître l'interligne",
-    "decreaseLabel": "réduire l'interligne"
+    "increaseLabel": "Séparer les lignes",
+    "decreaseLabel": "Rapprocher les lignes"
 }
diff --git a/messages/fr/lineSpace_en.json b/messages/fr/lineSpace_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..6e8cb42d0dc92e94aab31ef5db8b1ab34c9d521e
--- /dev/null
+++ b/messages/fr/lineSpace_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Interligne",
+    "description": "Ajuster l'espacement entre les lignes de texte",
+    "increaseLabel": "Séparer les lignes",
+    "decreaseLabel": "Rapprocher les lignes"
+}
diff --git a/messages/fr/lineSpace_fr.json b/messages/fr/lineSpace_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..6e8cb42d0dc92e94aab31ef5db8b1ab34c9d521e
--- /dev/null
+++ b/messages/fr/lineSpace_fr.json
@@ -0,0 +1,6 @@
+{
+    "label": "Interligne",
+    "description": "Ajuster l'espacement entre les lignes de texte",
+    "increaseLabel": "Séparer les lignes",
+    "decreaseLabel": "Rapprocher les lignes"
+}
diff --git a/messages/fr/localization.json b/messages/fr/localization.json
new file mode 100644
index 0000000000000000000000000000000000000000..9eaece47d4e8f1bd2be4b16d0771d87f5d7d27a3
--- /dev/null
+++ b/messages/fr/localization.json
@@ -0,0 +1,12 @@
+{
+    "localization-default": "Pas de préférence",
+    "localization-en": "English",
+    "localization-en_CA": "English (Canada)",
+    "localization-en_US": "English (USA)",
+    "localization-es": "Español",
+    "localization-fa": "فارسی",
+    "localization-fr": "Français",
+    "localization-pt_BR": "Português (Brazil)",
+    "label": "Localisation",
+    "description": "Ajuster la localisation ou la langue"
+}
diff --git a/messages/fr/localization_en.json b/messages/fr/localization_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..9eaece47d4e8f1bd2be4b16d0771d87f5d7d27a3
--- /dev/null
+++ b/messages/fr/localization_en.json
@@ -0,0 +1,12 @@
+{
+    "localization-default": "Pas de préférence",
+    "localization-en": "English",
+    "localization-en_CA": "English (Canada)",
+    "localization-en_US": "English (USA)",
+    "localization-es": "Español",
+    "localization-fa": "فارسی",
+    "localization-fr": "Français",
+    "localization-pt_BR": "Português (Brazil)",
+    "label": "Localisation",
+    "description": "Ajuster la localisation ou la langue"
+}
diff --git a/messages/fr/localization_fr.json b/messages/fr/localization_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..9eaece47d4e8f1bd2be4b16d0771d87f5d7d27a3
--- /dev/null
+++ b/messages/fr/localization_fr.json
@@ -0,0 +1,12 @@
+{
+    "localization-default": "Pas de préférence",
+    "localization-en": "English",
+    "localization-en_CA": "English (Canada)",
+    "localization-en_US": "English (USA)",
+    "localization-es": "Español",
+    "localization-fa": "فارسی",
+    "localization-fr": "Français",
+    "localization-pt_BR": "Português (Brazil)",
+    "label": "Localisation",
+    "description": "Ajuster la localisation ou la langue"
+}
diff --git a/messages/fr/prefsEditor.json b/messages/fr/prefsEditor.json
index b4efb5cca646fb2aa4acbcedd098b9133e9287e3..6095adc28369f6357122a9009010e70a39ff7882 100644
--- a/messages/fr/prefsEditor.json
+++ b/messages/fr/prefsEditor.json
@@ -1,8 +1,7 @@
 {
-    "slidingPanelShowText": "+ afficher les préférences",
-    "slidingPanelHideText": "- masquer les préférences",
+    "slidingPanelShowText": "+ Montrer les préférences",
+    "slidingPanelHideText": "- Cacher les préférences",
     "showTextAriaLabel": "Montrer les préférences d'affichage",
-    "hideTextAriaLabel": "Masquer les préférences d'affichage",
-    "slidingPanelPanelLabel": "Préférences de l'utilisateur",
-    "reset": "resssesertt"
+    "hideTextAriaLabel": "Cacher les préférences d'affichage",
+    "slidingPanelPanelLabel": "Préférences de l'utilisateur"
 }
diff --git a/messages/fr/prefsEditor_en.json b/messages/fr/prefsEditor_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..6095adc28369f6357122a9009010e70a39ff7882
--- /dev/null
+++ b/messages/fr/prefsEditor_en.json
@@ -0,0 +1,7 @@
+{
+    "slidingPanelShowText": "+ Montrer les préférences",
+    "slidingPanelHideText": "- Cacher les préférences",
+    "showTextAriaLabel": "Montrer les préférences d'affichage",
+    "hideTextAriaLabel": "Cacher les préférences d'affichage",
+    "slidingPanelPanelLabel": "Préférences de l'utilisateur"
+}
diff --git a/messages/fr/prefsEditor_fr.json b/messages/fr/prefsEditor_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..6095adc28369f6357122a9009010e70a39ff7882
--- /dev/null
+++ b/messages/fr/prefsEditor_fr.json
@@ -0,0 +1,7 @@
+{
+    "slidingPanelShowText": "+ Montrer les préférences",
+    "slidingPanelHideText": "- Cacher les préférences",
+    "showTextAriaLabel": "Montrer les préférences d'affichage",
+    "hideTextAriaLabel": "Cacher les préférences d'affichage",
+    "slidingPanelPanelLabel": "Préférences de l'utilisateur"
+}
diff --git a/messages/fr/speak.json b/messages/fr/speak.json
index d10d3741ec12c26c7bc87331908c24693bf08c4c..89c12415a59eebbae35645f73fdaed69061721d3 100644
--- a/messages/fr/speak.json
+++ b/messages/fr/speak.json
@@ -1,6 +1,6 @@
 {
-    "label": "Synthèse vocale",
-    "description": "Laissez l'ordinateur lire le contenu du site Web à haute voix",
+    "label": "Text-to-Speech",
+    "description": "Let the computer read site content out loud",
     "switchOn": "ON",
     "switchOff": "OFF"
 }
diff --git a/messages/fr/speak_fr.json b/messages/fr/speak_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..cf80093ff91fdcf616fe9505affc46a95d677274
--- /dev/null
+++ b/messages/fr/speak_fr.json
@@ -0,0 +1,6 @@
+{
+    "label": "Synthèse vocale",
+    "description": "Faire l'ordinateur lire le contenu du site à haute voix",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
+}
diff --git a/messages/fr/syllabification_fr.json b/messages/fr/syllabification_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..a58997891b574791ba73ade9eeb701c74f8ab342
--- /dev/null
+++ b/messages/fr/syllabification_fr.json
@@ -0,0 +1,6 @@
+{
+    "label": "Les Syllabes",
+    "description": "Affiche les mots séparés en syllabes.",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
+}
diff --git a/messages/fr/tableOfContents-enactor.json b/messages/fr/tableOfContents-enactor.json
new file mode 100644
index 0000000000000000000000000000000000000000..87be9b973c0940ab8e0fd38e0c2097b6650c37a5
--- /dev/null
+++ b/messages/fr/tableOfContents-enactor.json
@@ -0,0 +1,3 @@
+{
+    "tocHeader": "Table of Contents"
+}
diff --git a/messages/fr/tableOfContents-enactor_en.json b/messages/fr/tableOfContents-enactor_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..87be9b973c0940ab8e0fd38e0c2097b6650c37a5
--- /dev/null
+++ b/messages/fr/tableOfContents-enactor_en.json
@@ -0,0 +1,3 @@
+{
+    "tocHeader": "Table of Contents"
+}
diff --git a/messages/fr/tableOfContents-enactor_fr.json b/messages/fr/tableOfContents-enactor_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..e69ac8be8cf6daadf1504aba62da29c4ad4016ee
--- /dev/null
+++ b/messages/fr/tableOfContents-enactor_fr.json
@@ -0,0 +1,3 @@
+{
+    "tocHeader": "Table des matières"
+}
diff --git a/messages/fr/tableOfContents.json b/messages/fr/tableOfContents.json
index a39b7df46131efbe0055ccaab8e3942687c3f7fb..28554a654d288b90c824464311f46107c88769f6 100644
--- a/messages/fr/tableOfContents.json
+++ b/messages/fr/tableOfContents.json
@@ -1,6 +1,6 @@
 {
-    "label": "Table of Contents",
-    "description": "Create a table of contents",
-    "switchOn": "DÉMARRER",
-    "switchOff": "ÉTEINDRE"
+    "label": "Table des matières",
+    "description": "Créer une table des matières",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
 }
diff --git a/messages/fr/tableOfContents_en.json b/messages/fr/tableOfContents_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..28554a654d288b90c824464311f46107c88769f6
--- /dev/null
+++ b/messages/fr/tableOfContents_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Table des matières",
+    "description": "Créer une table des matières",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
+}
diff --git a/messages/fr/tableOfContents_fr.json b/messages/fr/tableOfContents_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..28554a654d288b90c824464311f46107c88769f6
--- /dev/null
+++ b/messages/fr/tableOfContents_fr.json
@@ -0,0 +1,6 @@
+{
+    "label": "Table des matières",
+    "description": "Créer une table des matières",
+    "switchOn": "ACTIF",
+    "switchOff": "ÉTEINT"
+}
diff --git a/messages/fr/textFont.json b/messages/fr/textFont.json
index 7ba9f94b1709f2f354fc3f688ed741c856751698..5b9915451af1c2c6cdfdaa0213bd7ae6074e7e91 100644
--- a/messages/fr/textFont.json
+++ b/messages/fr/textFont.json
@@ -1,9 +1,12 @@
 {
-    "textFont-default": "Défaut",
+    "textFont-default": "Pas de préférence",
+    "textFont-system": "Police de l’appareil",
     "textFont-times": "Times New Roman",
     "textFont-comic": "Comic Sans",
     "textFont-arial": "Arial",
     "textFont-verdana": "Verdana",
+    "textFont-open-dyslexic": "Open Dyslexic",
+    "textFont-atkinson-hyperlegible": "Atkinson Hyperlegible",
     "textFontLabel": "style du texte",
-    "textFontDescr": "Changer la police du texte"
+    "textFontDescr": "Ajuster la police de caracteres utilisée"
 }
diff --git a/messages/fr/textFont_en.json b/messages/fr/textFont_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..5b9915451af1c2c6cdfdaa0213bd7ae6074e7e91
--- /dev/null
+++ b/messages/fr/textFont_en.json
@@ -0,0 +1,12 @@
+{
+    "textFont-default": "Pas de préférence",
+    "textFont-system": "Police de l’appareil",
+    "textFont-times": "Times New Roman",
+    "textFont-comic": "Comic Sans",
+    "textFont-arial": "Arial",
+    "textFont-verdana": "Verdana",
+    "textFont-open-dyslexic": "Open Dyslexic",
+    "textFont-atkinson-hyperlegible": "Atkinson Hyperlegible",
+    "textFontLabel": "style du texte",
+    "textFontDescr": "Ajuster la police de caracteres utilisée"
+}
diff --git a/messages/fr/textFont_fr.json b/messages/fr/textFont_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..5b9915451af1c2c6cdfdaa0213bd7ae6074e7e91
--- /dev/null
+++ b/messages/fr/textFont_fr.json
@@ -0,0 +1,12 @@
+{
+    "textFont-default": "Pas de préférence",
+    "textFont-system": "Police de l’appareil",
+    "textFont-times": "Times New Roman",
+    "textFont-comic": "Comic Sans",
+    "textFont-arial": "Arial",
+    "textFont-verdana": "Verdana",
+    "textFont-open-dyslexic": "Open Dyslexic",
+    "textFont-atkinson-hyperlegible": "Atkinson Hyperlegible",
+    "textFontLabel": "style du texte",
+    "textFontDescr": "Ajuster la police de caracteres utilisée"
+}
diff --git a/messages/fr/textSize.json b/messages/fr/textSize.json
index 146eec881637bd2c8965870a0d5389f6fe9a0483..7a718a6cdbbf73e1040d5cd9be818fe4a554d7af 100644
--- a/messages/fr/textSize.json
+++ b/messages/fr/textSize.json
@@ -1,6 +1,6 @@
 {
     "label": "Taille du texte",
     "description": "Ajuster la taille du texte",
-    "increaseLabel": "Accroître la taille du texte",
-    "decreaseLabel": "Réduire la taille du texte"
+    "increaseLabel": "agrandir le texte",
+    "decreaseLabel": "diminuer le texte"
 }
diff --git a/messages/fr/textSize_en.json b/messages/fr/textSize_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..7a718a6cdbbf73e1040d5cd9be818fe4a554d7af
--- /dev/null
+++ b/messages/fr/textSize_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Taille du texte",
+    "description": "Ajuster la taille du texte",
+    "increaseLabel": "agrandir le texte",
+    "decreaseLabel": "diminuer le texte"
+}
diff --git a/messages/fr/textSize_fr.json b/messages/fr/textSize_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..7a718a6cdbbf73e1040d5cd9be818fe4a554d7af
--- /dev/null
+++ b/messages/fr/textSize_fr.json
@@ -0,0 +1,6 @@
+{
+    "label": "Taille du texte",
+    "description": "Ajuster la taille du texte",
+    "increaseLabel": "agrandir le texte",
+    "decreaseLabel": "diminuer le texte"
+}
diff --git a/messages/fr/wordSpace.json b/messages/fr/wordSpace.json
new file mode 100644
index 0000000000000000000000000000000000000000..897a34d87c3f705acf84bb2edf72f16675c7828e
--- /dev/null
+++ b/messages/fr/wordSpace.json
@@ -0,0 +1,6 @@
+{
+    "label": "Espacement des mots",
+    "description": "Ajuster l'espacement entre les mots",
+    "increaseLabel": "Séparer les mots",
+    "decreaseLabel": "Rapprocher les mots"
+}
diff --git a/messages/fr/wordSpace_en.json b/messages/fr/wordSpace_en.json
new file mode 100644
index 0000000000000000000000000000000000000000..897a34d87c3f705acf84bb2edf72f16675c7828e
--- /dev/null
+++ b/messages/fr/wordSpace_en.json
@@ -0,0 +1,6 @@
+{
+    "label": "Espacement des mots",
+    "description": "Ajuster l'espacement entre les mots",
+    "increaseLabel": "Séparer les mots",
+    "decreaseLabel": "Rapprocher les mots"
+}
diff --git a/messages/fr/wordSpace_fr.json b/messages/fr/wordSpace_fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..897a34d87c3f705acf84bb2edf72f16675c7828e
--- /dev/null
+++ b/messages/fr/wordSpace_fr.json
@@ -0,0 +1,6 @@
+{
+    "label": "Espacement des mots",
+    "description": "Ajuster l'espacement entre les mots",
+    "increaseLabel": "Séparer les mots",
+    "decreaseLabel": "Rapprocher les mots"
+}
diff --git a/toc/en/TableOfContents.html b/toc/en/TableOfContents.html
deleted file mode 100644
index b1ff7497f18eef956aa0625a1246e28f3bd63be5..0000000000000000000000000000000000000000
--- a/toc/en/TableOfContents.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- Table of contents template -->
-<h2 class="flc-toc-header">Table of Contents Header</h2>
-<ul class="flc-toc-levels-level1">
-    <li class="flc-toc-levels-items1">
-        <a class="flc-toc-levels-link1" href="">1</a>
-        <ul class="flc-toc-levels-level2">
-            <li class="flc-toc-levels-items2">
-                <a class="flc-toc-levels-link2" href="">2</a>
-                <ul class="flc-toc-levels-level3">
-                    <li class="flc-toc-levels-items3">
-                        <a class="flc-toc-levels-link3" href="">3</a>
-                        <ul class="flc-toc-levels-level4">
-                            <li class="flc-toc-levels-items4">
-                                <a class="flc-toc-levels-link4" href="">4</a>
-                                <ul class="flc-toc-levels-level5">
-                                    <li class="flc-toc-levels-items5">
-                                        <a class="flc-toc-levels-link5" href="">5</a>
-                                        <ul class="flc-toc-levels-level6">
-                                            <li class="flc-toc-levels-items6">
-                                                <a class="flc-toc-levels-link6" href="">6</a>
-                                            </li>
-                                        </ul>
-                                    </li>
-                                </ul>
-                            </li>
-                        </ul>
-                    </li>
-                </ul>
-            </li>
-        </ul>
-    </li>
-</ul>
diff --git a/toc/fr/TableOfContents.html b/toc/fr/TableOfContents.html
deleted file mode 100644
index b1ff7497f18eef956aa0625a1246e28f3bd63be5..0000000000000000000000000000000000000000
--- a/toc/fr/TableOfContents.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- Table of contents template -->
-<h2 class="flc-toc-header">Table of Contents Header</h2>
-<ul class="flc-toc-levels-level1">
-    <li class="flc-toc-levels-items1">
-        <a class="flc-toc-levels-link1" href="">1</a>
-        <ul class="flc-toc-levels-level2">
-            <li class="flc-toc-levels-items2">
-                <a class="flc-toc-levels-link2" href="">2</a>
-                <ul class="flc-toc-levels-level3">
-                    <li class="flc-toc-levels-items3">
-                        <a class="flc-toc-levels-link3" href="">3</a>
-                        <ul class="flc-toc-levels-level4">
-                            <li class="flc-toc-levels-items4">
-                                <a class="flc-toc-levels-link4" href="">4</a>
-                                <ul class="flc-toc-levels-level5">
-                                    <li class="flc-toc-levels-items5">
-                                        <a class="flc-toc-levels-link5" href="">5</a>
-                                        <ul class="flc-toc-levels-level6">
-                                            <li class="flc-toc-levels-items6">
-                                                <a class="flc-toc-levels-link6" href="">6</a>
-                                            </li>
-                                        </ul>
-                                    </li>
-                                </ul>
-                            </li>
-                        </ul>
-                    </li>
-                </ul>
-            </li>
-        </ul>
-    </li>
-</ul>