diff --git a/jams-react-client/.tx/config b/jams-react-client/.tx/config
new file mode 100644
index 0000000000000000000000000000000000000000..685113d60ef712dbb0f816b130d382fc28f640ee
--- /dev/null
+++ b/jams-react-client/.tx/config
@@ -0,0 +1,10 @@
+[main]
+host = https://www.transifex.com
+
+[jams-jami-account-management-server.translation-json]
+file_filter = src/locales/<lang>/translation.json
+minimum_perc = 0
+source_file = src/locales/en/translation.json
+source_lang = en
+type = KEYVALUEJSON
+
diff --git a/jams-react-client/i18next-scanner.config.js b/jams-react-client/i18next-scanner.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..30a3ab07f350cf584e050906e2783fab7f2c3f6a
--- /dev/null
+++ b/jams-react-client/i18next-scanner.config.js
@@ -0,0 +1,97 @@
+const fs = require("fs");
+
+const path = require("path");
+
+const typescript = require("typescript");
+
+module.exports = {
+  input: ["src/**/*.{ts}", "src/**/*/*.{js,ts,html}", "src/*.{js,ts,html}"],
+
+  output: "./",
+
+  options: {
+    debug: true,
+
+    func: {
+      list: ["i18next.t", "i18n.t", "this.i18n.tr"],
+
+      extensions: [".js"],
+    },
+
+    lngs: ["en", "fr"],
+
+    ns: ["translation"],
+
+    defaultLng: "en",
+
+    defaultNs: "translation",
+
+    defaultValue: "__STRING_NOT_TRANSLATED__",
+
+    resource: {
+      loadPath: "src/locales/{{lng}}/{{ns}}.json",
+
+      savePath: "src/locales/{{lng}}/{{ns}}.json",
+
+      jsonIndent: 4,
+
+      lineEnding: "\n",
+    },
+
+    nsSeparator: false, // namespace separator
+
+    keySeparator: false, // key separator
+
+    interpolation: {
+      prefix: "{{",
+
+      suffix: "}}",
+    },
+
+    removeUnusedKeys: true,
+  },
+
+  transform: function customTransform(file, enc, done) {
+    const { ext } = path.parse(file.path);
+
+    const content = fs.readFileSync(file.path, enc);
+
+    if (ext === ".ts") {
+      const { outputText } = typescript.transpileModule(content.toString(), {
+        compilerOptions: {
+          target: "es2018",
+        },
+
+        fileName: path.basename(file.path),
+      });
+
+      this.parser.parseFuncFromString(outputText, {
+        list: ["i18next.t", "i18next.tr", "this.i18n.tr"],
+      });
+    } else if (ext === ".html") {
+      this.parser.parseAttrFromString(content, {
+        list: ["data-i18n", "data-t", "t", "i18n"],
+      });
+
+      // We extra behaviours `${ 'myKey' | t }` and `${ 'myKey' & t }` from the file.
+
+      const extractBehaviours = /\${ *'([a-zA-Z0-9]+)' *[&|] *t *}/g;
+
+      const strContent = content.toString();
+
+      let group;
+
+      while (true) {
+        group = extractBehaviours.exec(strContent);
+
+        if (group === null) {
+          break;
+        }
+
+        this.parser.set(group[1]);
+      }
+    }
+
+    done();
+  },
+};
diff --git a/jams-react-client/package-lock.json b/jams-react-client/package-lock.json
index 16af7abe46e47ccac1dc977aa27dc45b5cf0679b..3171c3597a80f7ee5045f8660b7e28120ce8eb37 100644
--- a/jams-react-client/package-lock.json
+++ b/jams-react-client/package-lock.json
@@ -30,28 +30,69 @@
       }
     },
     "@babel/core": {
-      "version": "7.9.0",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
-      "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
-      "requires": {
-        "@babel/code-frame": "^7.8.3",
-        "@babel/generator": "^7.9.0",
-        "@babel/helper-module-transforms": "^7.9.0",
-        "@babel/helpers": "^7.9.0",
-        "@babel/parser": "^7.9.0",
-        "@babel/template": "^7.8.6",
-        "@babel/traverse": "^7.9.0",
-        "@babel/types": "^7.9.0",
+      "version": "7.11.6",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz",
+      "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==",
+      "requires": {
+        "@babel/code-frame": "^7.10.4",
+        "@babel/generator": "^7.11.6",
+        "@babel/helper-module-transforms": "^7.11.0",
+        "@babel/helpers": "^7.10.4",
+        "@babel/parser": "^7.11.5",
+        "@babel/template": "^7.10.4",
+        "@babel/traverse": "^7.11.5",
+        "@babel/types": "^7.11.5",
         "convert-source-map": "^1.7.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.1",
         "json5": "^2.1.2",
-        "lodash": "^4.17.13",
+        "lodash": "^4.17.19",
         "resolve": "^1.3.2",
         "semver": "^5.4.1",
         "source-map": "^0.5.0"
       },
       "dependencies": {
+        "@babel/generator": {
+          "version": "7.11.6",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz",
+          "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==",
+          "requires": {
+            "@babel/types": "^7.11.5",
+            "jsesc": "^2.5.1",
+            "source-map": "^0.5.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.11.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz",
+          "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q=="
+        },
+        "@babel/traverse": {
+          "version": "7.11.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz",
+          "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==",
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/generator": "^7.11.5",
+            "@babel/helper-function-name": "^7.10.4",
+            "@babel/helper-split-export-declaration": "^7.11.0",
+            "@babel/parser": "^7.11.5",
+            "@babel/types": "^7.11.5",
+            "debug": "^4.1.0",
+            "globals": "^11.1.0",
+            "lodash": "^4.17.19"
+          }
+        },
+        "@babel/types": {
+          "version": "7.11.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
+          "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==",
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
         "semver": {
           "version": "5.7.1",
           "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@@ -1448,6 +1489,231 @@
         "@types/yargs": "^13.0.0"
       }
     },
+    "@lingui/babel-plugin-extract-messages": {
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-extract-messages/-/babel-plugin-extract-messages-2.9.2.tgz",
+      "integrity": "sha512-nkRufTupyWjRpzX5ZXB1qMKWT9B+gAuMXYD4blZ/HHCJlEOXeds9W5bugVd3N8Ts5m4o9iRoqeaCuVcH7sJ8Wg==",
+      "dev": true,
+      "requires": {
+        "@lingui/conf": "2.9.2",
+        "babel-generator": "^6.26.1"
+      }
+    },
+    "@lingui/babel-plugin-transform-js": {
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-transform-js/-/babel-plugin-transform-js-2.9.2.tgz",
+      "integrity": "sha512-yWoyhOfjRa9744TbVb/WN1OWxZYFLuXcWH5aVCu/sZ2b1YpsGCtfhplc5lRVWN8QcsfpjYmFiPqzU6swE5OFdQ==",
+      "dev": true
+    },
+    "@lingui/babel-plugin-transform-react": {
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-transform-react/-/babel-plugin-transform-react-2.9.2.tgz",
+      "integrity": "sha512-bxvrepiS6J9vZqRtpRiAgBIASQscjvu7aFmPqH4Y6001TDXrYuyhhNRt1BI3k2E6C2SckHh5vRtSpsqpjEiY3A==",
+      "dev": true
+    },
+    "@lingui/cli": {
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/@lingui/cli/-/cli-2.9.2.tgz",
+      "integrity": "sha512-j46vUe8hSgvsm3j2V4sPLxOdd2HacacGC5E+bWx4wHEhd/yxV4nwPfWpuC7wLoBwM/y2bcF8Q2V7ahEznKSO6A==",
+      "dev": true,
+      "requires": {
+        "@lingui/babel-plugin-extract-messages": "2.9.2",
+        "@lingui/babel-plugin-transform-js": "2.9.2",
+        "@lingui/babel-plugin-transform-react": "2.9.2",
+        "@lingui/conf": "2.9.2",
+        "babel-generator": "^6.26.1",
+        "babel-plugin-syntax-jsx": "^6.18.0",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "babylon": "^6.18.0",
+        "bcp-47": "^1.0.5",
+        "chalk": "^2.3.0",
+        "cli-table": "^0.3.1",
+        "commander": "^2.20.0",
+        "date-fns": "^1.29.0",
+        "fuzzaldrin": "^2.1.0",
+        "glob": "^7.1.4",
+        "inquirer": "^6.3.1",
+        "make-plural": "^4.1.1",
+        "messageformat-parser": "^2.0.0",
+        "mkdirp": "^0.5.1",
+        "ora": "^3.4.0",
+        "pofile": "^1.0.11",
+        "pseudolocale": "^1.1.0",
+        "ramda": "^0.26.1"
+      },
+      "dependencies": {
+        "ansi-escapes": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+          "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+          "dev": true
+        },
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "cli-cursor": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+          "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+          "dev": true,
+          "requires": {
+            "restore-cursor": "^2.0.0"
+          }
+        },
+        "cli-width": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+          "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
+          "dev": true
+        },
+        "figures": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+          "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+          "dev": true,
+          "requires": {
+            "escape-string-regexp": "^1.0.5"
+          }
+        },
+        "inquirer": {
+          "version": "6.5.2",
+          "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+          "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+          "dev": true,
+          "requires": {
+            "ansi-escapes": "^3.2.0",
+            "chalk": "^2.4.2",
+            "cli-cursor": "^2.1.0",
+            "cli-width": "^2.0.0",
+            "external-editor": "^3.0.3",
+            "figures": "^2.0.0",
+            "lodash": "^4.17.12",
+            "mute-stream": "0.0.7",
+            "run-async": "^2.2.0",
+            "rxjs": "^6.4.0",
+            "string-width": "^2.1.0",
+            "strip-ansi": "^5.1.0",
+            "through": "^2.3.6"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "mimic-fn": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+          "dev": true
+        },
+        "mute-stream": {
+          "version": "0.0.7",
+          "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+          "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+          "dev": true
+        },
+        "onetime": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+          "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^1.0.0"
+          }
+        },
+        "restore-cursor": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+          "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+          "dev": true,
+          "requires": {
+            "onetime": "^2.0.0",
+            "signal-exit": "^3.0.2"
+          }
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          },
+          "dependencies": {
+            "strip-ansi": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        }
+      }
+    },
+    "@lingui/conf": {
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/@lingui/conf/-/conf-2.9.2.tgz",
+      "integrity": "sha512-xHfH+zLhM7PaMawqeK1G+Pq+reVPYR8eU7XixH4VRHWK8n/itTb4fRl24xc5IUgeXJx+NX1qCzBYVz0i13xlVg==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.3.0",
+        "cosmiconfig": "^5.2.1",
+        "jest-regex-util": "^24.3.0",
+        "jest-validate": "^24.8.0",
+        "pkg-conf": "^3.1.0"
+      }
+    },
+    "@lingui/core": {
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/@lingui/core/-/core-2.9.2.tgz",
+      "integrity": "sha512-prrEGlhbvqbyvHMfgKXaaGDM4cGCofca1lOfIOEEX1rZreRjG7Y+cga0oEEQJ9xS59uMht9GGFOwQJsGHYIU0g==",
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "make-plural": "^4.1.1",
+        "messageformat-parser": "^2.0.0"
+      }
+    },
+    "@lingui/macro": {
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/@lingui/macro/-/macro-2.9.2.tgz",
+      "integrity": "sha512-IFv9h3LL/vjMz98JiDpckIsAlIcnCNuCD4+/C8KK33qGsU9MbCF+zjIztdEWlm3JlnFNm1/qIw7CkrtdoH0RpA==",
+      "dev": true,
+      "requires": {
+        "@lingui/babel-plugin-transform-react": "2.9.2"
+      }
+    },
+    "@lingui/react": {
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/@lingui/react/-/react-2.9.2.tgz",
+      "integrity": "sha512-grlarLgJt6vu9wkvGetLunbrImRlL5bsnc4CdtXCNwm0r+8srI+mow5PimtK+MrtOSjXSqLdt/giMYFBE3MOSw==",
+      "requires": {
+        "@lingui/core": "2.9.2",
+        "babel-runtime": "^6.26.0",
+        "hash-sum": "^1.0.2",
+        "hoist-non-react-statics": "3.3.0",
+        "prop-types": "^15.7.2"
+      },
+      "dependencies": {
+        "hoist-non-react-statics": {
+          "version": "3.3.0",
+          "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz",
+          "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==",
+          "requires": {
+            "react-is": "^16.7.0"
+          }
+        }
+      }
+    },
     "@material-ui/core": {
       "version": "4.10.0",
       "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.10.0.tgz",
@@ -2099,6 +2365,33 @@
       "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
       "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w=="
     },
+    "acorn-bigint": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/acorn-bigint/-/acorn-bigint-0.4.0.tgz",
+      "integrity": "sha512-W9iaqWzqFo7ZBLmI9dMjHYGrN0Nm/ZgToqhvd3RELJux7RsX6k1/80h+bD9TtTpeKky/kYNbr3+vHWqI3hdyfA==",
+      "dev": true
+    },
+    "acorn-class-fields": {
+      "version": "0.3.7",
+      "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-0.3.7.tgz",
+      "integrity": "sha512-jdUWSFce0fuADUljmExz4TWpPkxmRW/ZCPRqeeUzbGf0vFUcpQYbyq52l75qGd0oSwwtAepeL6hgb/naRgvcKQ==",
+      "dev": true,
+      "requires": {
+        "acorn-private-class-elements": "^0.2.7"
+      }
+    },
+    "acorn-dynamic-import": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz",
+      "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==",
+      "dev": true
+    },
+    "acorn-export-ns-from": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/acorn-export-ns-from/-/acorn-export-ns-from-0.1.0.tgz",
+      "integrity": "sha512-QDQJBe2DfxNBIMxs+19XY2i/XXilJn+kPgX30HWNYK4IXoNj3ACNSWPU7szL0SzqjFyOG4zoZxG9P7JfNw5g7A==",
+      "dev": true
+    },
     "acorn-globals": {
       "version": "4.3.4",
       "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
@@ -2115,11 +2408,70 @@
         }
       }
     },
+    "acorn-import-meta": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/acorn-import-meta/-/acorn-import-meta-1.1.0.tgz",
+      "integrity": "sha512-pshgiVR5mhpjFVdizKTN+kAGRqjJFUOEB3TvpQ6kiAutb1lvHrIVVcGoe5xzMpJkVNifCeymMG7/tsDkWn8CdQ==",
+      "dev": true
+    },
     "acorn-jsx": {
       "version": "5.2.0",
       "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
       "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ=="
     },
+    "acorn-logical-assignment": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/acorn-logical-assignment/-/acorn-logical-assignment-0.1.4.tgz",
+      "integrity": "sha512-SeqO1iRtc/NeXo4bTkyK0hN0CIoKi/FQMN1NqhTr5UxqEn4p2wKNTZl+xzvU7i2u/k0f66YR7pNPi2ckPwYubg==",
+      "dev": true
+    },
+    "acorn-numeric-separator": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npmjs.org/acorn-numeric-separator/-/acorn-numeric-separator-0.3.6.tgz",
+      "integrity": "sha512-jUr5esgChu4k7VzesH/Nww3EysuyGJJcTEEiXqILUFKpO96PNyEXmK21M6nE0TSqGA1PeEg1MzgqJaoFsn9JMw==",
+      "dev": true
+    },
+    "acorn-private-class-elements": {
+      "version": "0.2.7",
+      "resolved": "https://registry.npmjs.org/acorn-private-class-elements/-/acorn-private-class-elements-0.2.7.tgz",
+      "integrity": "sha512-+GZH2wOKNZOBI4OOPmzpo4cs6mW297sn6fgIk1dUI08jGjhAaEwvC39mN2gJAg2lmAQJ1rBkFqKWonL3Zz6PVA==",
+      "dev": true
+    },
+    "acorn-private-methods": {
+      "version": "0.3.3",
+      "resolved": "https://registry.npmjs.org/acorn-private-methods/-/acorn-private-methods-0.3.3.tgz",
+      "integrity": "sha512-46oeEol3YFvLSah5m9hGMlNpxDBCEkdceJgf01AjqKYTK9r6HexKs2rgSbLK81pYjZZMonhftuUReGMlbbv05w==",
+      "dev": true,
+      "requires": {
+        "acorn-private-class-elements": "^0.2.7"
+      }
+    },
+    "acorn-stage3": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/acorn-stage3/-/acorn-stage3-2.1.0.tgz",
+      "integrity": "sha512-6R3IWwmMl1MBYf6JtaquuE8OqtCArA1zaDlY7QUeUNDcUzNJoZJm1nFQrv0SzdjkRv1khADbMfucFsF661LGow==",
+      "dev": true,
+      "requires": {
+        "acorn-bigint": "^0.4.0",
+        "acorn-class-fields": "^0.3.1",
+        "acorn-dynamic-import": "^4.0.0",
+        "acorn-export-ns-from": "^0.1.0",
+        "acorn-import-meta": "^1.0.0",
+        "acorn-logical-assignment": "^0.1.0",
+        "acorn-numeric-separator": "^0.3.0",
+        "acorn-private-methods": "^0.3.0",
+        "acorn-static-class-features": "^0.2.0"
+      }
+    },
+    "acorn-static-class-features": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npmjs.org/acorn-static-class-features/-/acorn-static-class-features-0.2.4.tgz",
+      "integrity": "sha512-5X4mpYq5J3pdndLmIB0+WtFd/mKWnNYpuTlTzj32wUu/PMmEGOiayQ5UrqgwdBNiaZBtDDh5kddpP7Yg2QaQYA==",
+      "dev": true,
+      "requires": {
+        "acorn-private-class-elements": "^0.2.7"
+      }
+    },
     "acorn-walk": {
       "version": "6.2.0",
       "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
@@ -2682,6 +3034,12 @@
         }
       }
     },
+    "babel-core": {
+      "version": "7.0.0-bridge.0",
+      "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
+      "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
+      "dev": true
+    },
     "babel-eslint": {
       "version": "10.1.0",
       "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
@@ -2703,6 +3061,30 @@
         "babylon": "^6.18.0"
       }
     },
+    "babel-generator": {
+      "version": "6.26.1",
+      "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+      "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+      "dev": true,
+      "requires": {
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "detect-indent": "^4.0.0",
+        "jsesc": "^1.3.0",
+        "lodash": "^4.17.4",
+        "source-map": "^0.5.7",
+        "trim-right": "^1.0.1"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+          "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+          "dev": true
+        }
+      }
+    },
     "babel-jest": {
       "version": "24.9.0",
       "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz",
@@ -2736,6 +3118,15 @@
         }
       }
     },
+    "babel-messages": {
+      "version": "6.23.0",
+      "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+      "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
     "babel-plugin-dynamic-import-node": {
       "version": "2.3.3",
       "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
@@ -2744,6 +3135,31 @@
         "object.assign": "^4.1.0"
       }
     },
+    "babel-plugin-i18next-extract": {
+      "version": "0.8.0",
+      "resolved": "https://registry.npmjs.org/babel-plugin-i18next-extract/-/babel-plugin-i18next-extract-0.8.0.tgz",
+      "integrity": "sha512-Aw/I0tbS3xaAjq65ElpZpXEPUw5cjMkAPlkHF+uyh/dep/7ukTWU7pkZggxnNSBWQQkBlal+uhgI8dznFPYskg==",
+      "dev": true,
+      "requires": {
+        "@babel/core": "^7.11.6",
+        "@babel/types": "7.9.6",
+        "i18next": "^19.7.0",
+        "json-stable-stringify": "^1.0.1"
+      },
+      "dependencies": {
+        "@babel/types": {
+          "version": "7.9.6",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+          "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.9.5",
+            "lodash": "^4.17.13",
+            "to-fast-properties": "^2.0.0"
+          }
+        }
+      }
+    },
     "babel-plugin-istanbul": {
       "version": "5.2.0",
       "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz",
@@ -2822,6 +3238,12 @@
       "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz",
       "integrity": "sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA=="
     },
+    "babel-plugin-syntax-jsx": {
+      "version": "6.18.0",
+      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+      "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
+      "dev": true
+    },
     "babel-plugin-syntax-object-rest-spread": {
       "version": "6.13.0",
       "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
@@ -2872,6 +3294,29 @@
         "babel-plugin-transform-react-remove-prop-types": "0.4.24"
       },
       "dependencies": {
+        "@babel/core": {
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
+          "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
+          "requires": {
+            "@babel/code-frame": "^7.8.3",
+            "@babel/generator": "^7.9.0",
+            "@babel/helper-module-transforms": "^7.9.0",
+            "@babel/helpers": "^7.9.0",
+            "@babel/parser": "^7.9.0",
+            "@babel/template": "^7.8.6",
+            "@babel/traverse": "^7.9.0",
+            "@babel/types": "^7.9.0",
+            "convert-source-map": "^1.7.0",
+            "debug": "^4.1.0",
+            "gensync": "^1.0.0-beta.1",
+            "json5": "^2.1.2",
+            "lodash": "^4.17.13",
+            "resolve": "^1.3.2",
+            "semver": "^5.4.1",
+            "source-map": "^0.5.0"
+          }
+        },
         "@babel/plugin-proposal-class-properties": {
           "version": "7.8.3",
           "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz",
@@ -3027,6 +3472,26 @@
         }
       }
     },
+    "babel-types": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "esutils": "^2.0.2",
+        "lodash": "^4.17.4",
+        "to-fast-properties": "^1.0.3"
+      },
+      "dependencies": {
+        "to-fast-properties": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+          "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+          "dev": true
+        }
+      }
+    },
     "babylon": {
       "version": "6.18.0",
       "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
@@ -3119,6 +3584,17 @@
       "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
       "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
     },
+    "bcp-47": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-1.0.7.tgz",
+      "integrity": "sha512-XywQRckEigetKCTuxsaecL/68psvr7ayWsPq6LLwoz5k+qwpwnpcTMyU/Gs+JO3u8J+BxofouYCS+s9ACiNyrw==",
+      "dev": true,
+      "requires": {
+        "is-alphabetical": "^1.0.0",
+        "is-alphanumerical": "^1.0.0",
+        "is-decimal": "^1.0.0"
+      }
+    },
     "bcrypt-pbkdf": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
@@ -3252,6 +3728,18 @@
         }
       }
     },
+    "broccoli-plugin": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/broccoli-plugin/-/broccoli-plugin-1.3.1.tgz",
+      "integrity": "sha512-DW8XASZkmorp+q7J4EeDEZz+LoyKLAd2XZULXyD9l4m9/hAKV3vjHmB1kiUshcWAYMgTP1m2i4NnqCE/23h6AQ==",
+      "dev": true,
+      "requires": {
+        "promise-map-series": "^0.2.1",
+        "quick-temp": "^0.1.3",
+        "rimraf": "^2.3.4",
+        "symlink-or-copy": "^1.1.8"
+      }
+    },
     "brorand": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
@@ -3585,6 +4073,75 @@
       "resolved": "https://registry.npmjs.org/chartist/-/chartist-0.10.1.tgz",
       "integrity": "sha1-PdUT1THfymt453f+BQDZx+ZAaTE="
     },
+    "cheerio": {
+      "version": "1.0.0-rc.3",
+      "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
+      "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==",
+      "dev": true,
+      "requires": {
+        "css-select": "~1.2.0",
+        "dom-serializer": "~0.1.1",
+        "entities": "~1.1.1",
+        "htmlparser2": "^3.9.1",
+        "lodash": "^4.15.0",
+        "parse5": "^3.0.1"
+      },
+      "dependencies": {
+        "css-select": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+          "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+          "dev": true,
+          "requires": {
+            "boolbase": "~1.0.0",
+            "css-what": "2.1",
+            "domutils": "1.5.1",
+            "nth-check": "~1.0.1"
+          }
+        },
+        "css-what": {
+          "version": "2.1.3",
+          "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+          "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+          "dev": true
+        },
+        "dom-serializer": {
+          "version": "0.1.1",
+          "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+          "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+          "dev": true,
+          "requires": {
+            "domelementtype": "^1.3.0",
+            "entities": "^1.1.1"
+          }
+        },
+        "domutils": {
+          "version": "1.5.1",
+          "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+          "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+          "dev": true,
+          "requires": {
+            "dom-serializer": "0",
+            "domelementtype": "1"
+          }
+        },
+        "entities": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+          "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+          "dev": true
+        },
+        "parse5": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
+          "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
+          "dev": true,
+          "requires": {
+            "@types/node": "*"
+          }
+        }
+      }
+    },
     "chokidar": {
       "version": "3.4.2",
       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz",
@@ -3731,6 +4288,29 @@
         "restore-cursor": "^3.1.0"
       }
     },
+    "cli-spinners": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz",
+      "integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==",
+      "dev": true
+    },
+    "cli-table": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz",
+      "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=",
+      "dev": true,
+      "requires": {
+        "colors": "1.0.3"
+      },
+      "dependencies": {
+        "colors": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+          "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
+          "dev": true
+        }
+      }
+    },
     "cli-width": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
@@ -3940,6 +4520,12 @@
       "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
       "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw=="
     },
+    "colors": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz",
+      "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==",
+      "dev": true
+    },
     "combined-stream": {
       "version": "1.0.8",
       "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -4647,6 +5233,18 @@
         }
       }
     },
+    "date-fns": {
+      "version": "1.30.1",
+      "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
+      "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==",
+      "dev": true
+    },
+    "de-indent": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+      "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+      "dev": true
+    },
     "debug": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@@ -4725,6 +5323,23 @@
       "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=",
       "dev": true
     },
+    "defaults": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+      "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+      "dev": true,
+      "requires": {
+        "clone": "^1.0.2"
+      },
+      "dependencies": {
+        "clone": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+          "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+          "dev": true
+        }
+      }
+    },
     "deffy": {
       "version": "2.2.4",
       "resolved": "https://registry.npmjs.org/deffy/-/deffy-2.2.4.tgz",
@@ -4858,6 +5473,15 @@
       "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
       "dev": true
     },
+    "detect-indent": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+      "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+      "dev": true,
+      "requires": {
+        "repeating": "^2.0.0"
+      }
+    },
     "detect-newline": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
@@ -5156,6 +5780,16 @@
         "safer-buffer": "^2.1.0"
       }
     },
+    "editions": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz",
+      "integrity": "sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==",
+      "dev": true,
+      "requires": {
+        "errlop": "^2.0.0",
+        "semver": "^6.3.0"
+      }
+    },
     "ee-first": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -5266,11 +5900,23 @@
         }
       }
     },
+    "ensure-array": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/ensure-array/-/ensure-array-1.0.0.tgz",
+      "integrity": "sha512-A+3Ntl5WS+GjDnHtC67dKIjw+IoGoeFdNvjn3ZfKEmZgWUz0nxBPE4W52QMCbGZsat0VwWskD5T6AEpe3T2d1g==",
+      "dev": true
+    },
     "entities": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz",
       "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ=="
     },
+    "eol": {
+      "version": "0.9.1",
+      "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz",
+      "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==",
+      "dev": true
+    },
     "err": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/err/-/err-1.1.1.tgz",
@@ -5279,6 +5925,12 @@
         "typpy": "^2.2.0"
       }
     },
+    "errlop": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.2.0.tgz",
+      "integrity": "sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==",
+      "dev": true
+    },
     "errno": {
       "version": "0.1.7",
       "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
@@ -6755,6 +7407,12 @@
       "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
       "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
     },
+    "fuzzaldrin": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz",
+      "integrity": "sha1-kCBMPi/appQbso0WZF1BgGOpDps=",
+      "dev": true
+    },
     "generate-password": {
       "version": "1.5.1",
       "resolved": "https://registry.npmjs.org/generate-password/-/generate-password-1.5.1.tgz",
@@ -6949,9 +7607,9 @@
       "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs="
     },
     "glob-watcher": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz",
-      "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==",
+      "version": "5.0.5",
+      "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz",
+      "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==",
       "dev": true,
       "requires": {
         "anymatch": "^2.0.0",
@@ -6959,6 +7617,7 @@
         "chokidar": "^2.0.0",
         "is-negated-glob": "^1.0.0",
         "just-debounce": "^1.0.0",
+        "normalize-path": "^3.0.0",
         "object.defaults": "^1.1.0"
       },
       "dependencies": {
@@ -7217,6 +7876,12 @@
       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
       "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
     },
+    "graceful-readlink": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+      "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+      "dev": true
+    },
     "growly": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
@@ -7319,12 +7984,6 @@
             "yargs": "^7.1.0"
           }
         },
-        "invert-kv": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
-          "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
-          "dev": true
-        },
         "is-fullwidth-code-point": {
           "version": "1.0.0",
           "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
@@ -7334,15 +7993,6 @@
             "number-is-nan": "^1.0.0"
           }
         },
-        "lcid": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
-          "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
-          "dev": true,
-          "requires": {
-            "invert-kv": "^1.0.0"
-          }
-        },
         "load-json-file": {
           "version": "1.1.0",
           "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@@ -7356,15 +8006,6 @@
             "strip-bom": "^2.0.0"
           }
         },
-        "os-locale": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
-          "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
-          "dev": true,
-          "requires": {
-            "lcid": "^1.0.0"
-          }
-        },
         "parse-json": {
           "version": "2.2.0",
           "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
@@ -7522,6 +8163,15 @@
         "through2": "^2.0.1"
       }
     },
+    "gulp-sort": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/gulp-sort/-/gulp-sort-2.0.0.tgz",
+      "integrity": "sha1-xnYqLx8N4KP8WVohWZ0/rI26Gso=",
+      "dev": true,
+      "requires": {
+        "through2": "^2.0.1"
+      }
+    },
     "gulplog": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
@@ -7663,6 +8313,11 @@
         }
       }
     },
+    "hash-sum": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+      "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ="
+    },
     "hash.js": {
       "version": "1.1.7",
       "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
@@ -7821,6 +8476,14 @@
         }
       }
     },
+    "html-parse-stringify2": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/html-parse-stringify2/-/html-parse-stringify2-2.0.1.tgz",
+      "integrity": "sha1-3FZwtyksoVi3vJFsmmc1rIhyg0o=",
+      "requires": {
+        "void-elements": "^2.0.1"
+      }
+    },
     "html-webpack-plugin": {
       "version": "4.0.0-beta.11",
       "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz",
@@ -7910,26 +8573,214 @@
         "micromatch": "^3.1.10"
       }
     },
-    "http-signature": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
-      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+    "http-signature": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "jsprim": "^1.2.2",
+        "sshpk": "^1.7.0"
+      }
+    },
+    "https-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
+    },
+    "hyphenate-style-name": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz",
+      "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ=="
+    },
+    "i18next": {
+      "version": "19.8.2",
+      "resolved": "https://registry.npmjs.org/i18next/-/i18next-19.8.2.tgz",
+      "integrity": "sha512-YWqkUpwnmeZxbNxhQ4BENC27BlXnq4kD6NlqMUwX7T6ZN3alNnBXsWrh/8mJ37BL5cKMZaqA0k/YUo4o6rLfpA==",
+      "requires": {
+        "@babel/runtime": "^7.10.1"
+      }
+    },
+    "i18next-browser-languagedetector": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.0.1.tgz",
+      "integrity": "sha512-3H+OsNQn3FciomUU0d4zPFHsvJv4X66lBelXk9hnIDYDsveIgT7dWZ3/VvcSlpKk9lvCK770blRZ/CwHMXZqWw==",
+      "requires": {
+        "@babel/runtime": "^7.5.5"
+      }
+    },
+    "i18next-http-backend": {
+      "version": "1.0.21",
+      "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-1.0.21.tgz",
+      "integrity": "sha512-UDeHoV2B+31Gr++0KFAVjM5l+SEwePpF6sfDyaDq5ennM9QNJ78PBEMPStwkreEm4h5C8sT7M1JdNQrLcU1Wdg==",
+      "requires": {
+        "node-fetch": "2.6.1"
+      },
+      "dependencies": {
+        "node-fetch": {
+          "version": "2.6.1",
+          "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+          "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
+        }
+      }
+    },
+    "i18next-parser": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/i18next-parser/-/i18next-parser-3.3.0.tgz",
+      "integrity": "sha512-o8hh9PW5Gqs3fVV5ULxPfBV957n97TT7LTSj/M84ZOKFM6c5Ab6d1gMREr+GEKO3T+niOzF5biG1MRkzojjscA==",
+      "dev": true,
+      "requires": {
+        "broccoli-plugin": "^1.3.0",
+        "cheerio": "^1.0.0-rc.2",
+        "colors": "~1.2.0-rc0",
+        "commander": "~2.9.0",
+        "concat-stream": "~1.6.0",
+        "eol": "^0.9.1",
+        "fs-extra": "^6.0.1",
+        "gulp-sort": "^2.0.0",
+        "i18next": "^19.0.1",
+        "rsvp": "^4.8.2",
+        "through2": "~2.0.3",
+        "typescript": "^3.6.4",
+        "vinyl": "~2.0.1",
+        "vinyl-fs": "^3.0.2",
+        "vue-template-compiler": "^2.6.11",
+        "yamljs": "^0.3.0"
+      },
+      "dependencies": {
+        "clone": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+          "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+          "dev": true
+        },
+        "commander": {
+          "version": "2.9.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+          "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+          "dev": true,
+          "requires": {
+            "graceful-readlink": ">= 1.0.0"
+          }
+        },
+        "fs-extra": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
+          "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "jsonfile": "^4.0.0",
+            "universalify": "^0.1.0"
+          }
+        },
+        "vinyl": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.0.2.tgz",
+          "integrity": "sha1-CjcT2NTpIhxY8QyhbAEWyeJe2nw=",
+          "dev": true,
+          "requires": {
+            "clone": "^1.0.0",
+            "clone-buffer": "^1.0.0",
+            "clone-stats": "^1.0.0",
+            "cloneable-readable": "^1.0.0",
+            "is-stream": "^1.1.0",
+            "remove-trailing-separator": "^1.0.1",
+            "replace-ext": "^1.0.0"
+          }
+        }
+      }
+    },
+    "i18next-scanner": {
+      "version": "2.11.0",
+      "resolved": "https://registry.npmjs.org/i18next-scanner/-/i18next-scanner-2.11.0.tgz",
+      "integrity": "sha512-/QqbSnUj9v6EwndaWeHp8NkHqLKAIHSlI1HXSyLdIPKWYM+Fnpk2tjnyjP8qn7L0rLT7HLH4bvyiw61wOIxf0A==",
+      "dev": true,
       "requires": {
-        "assert-plus": "^1.0.0",
-        "jsprim": "^1.2.2",
-        "sshpk": "^1.7.0"
+        "acorn": "^6.0.0",
+        "acorn-dynamic-import": "^4.0.0",
+        "acorn-jsx": "^5.2.0",
+        "acorn-stage3": "^2.0.0",
+        "acorn-walk": "^6.0.0",
+        "chalk": "^2.4.1",
+        "clone-deep": "^4.0.0",
+        "commander": "^3.0.1",
+        "deepmerge": "^4.0.0",
+        "ensure-array": "^1.0.0",
+        "eol": "^0.9.1",
+        "esprima": "^4.0.0",
+        "gulp-sort": "^2.0.0",
+        "i18next": "*",
+        "lodash": "^4.0.0",
+        "parse5": "^5.0.0",
+        "sortobject": "^1.1.1",
+        "through2": "^3.0.1",
+        "vinyl": "^2.2.0",
+        "vinyl-fs": "^3.0.1"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "6.4.2",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+          "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
+          "dev": true
+        },
+        "clone-deep": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+          "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4",
+            "kind-of": "^6.0.2",
+            "shallow-clone": "^3.0.0"
+          }
+        },
+        "commander": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
+          "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==",
+          "dev": true
+        },
+        "deepmerge": {
+          "version": "4.2.2",
+          "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+          "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+          "dev": true
+        },
+        "kind-of": {
+          "version": "6.0.3",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+          "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+          "dev": true
+        },
+        "parse5": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
+          "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
+          "dev": true
+        },
+        "shallow-clone": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+          "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.2"
+          }
+        },
+        "through2": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz",
+          "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.4",
+            "readable-stream": "2 || 3"
+          }
+        }
       }
     },
-    "https-browserify": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
-      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
-    },
-    "hyphenate-style-name": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz",
-      "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ=="
-    },
     "iconv-lite": {
       "version": "0.4.24",
       "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -7978,9 +8829,9 @@
       },
       "dependencies": {
         "node-fetch": {
-          "version": "2.6.0",
-          "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
-          "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+          "version": "2.6.1",
+          "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+          "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
         }
       }
     },
@@ -8191,6 +9042,12 @@
         "loose-envify": "^1.0.0"
       }
     },
+    "invert-kv": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+      "dev": true
+    },
     "ip": {
       "version": "1.1.5",
       "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
@@ -8229,6 +9086,22 @@
         "kind-of": "^3.0.2"
       }
     },
+    "is-alphabetical": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
+      "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==",
+      "dev": true
+    },
+    "is-alphanumerical": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
+      "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
+      "dev": true,
+      "requires": {
+        "is-alphabetical": "^1.0.0",
+        "is-decimal": "^1.0.0"
+      }
+    },
     "is-arguments": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
@@ -8291,6 +9164,12 @@
       "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
       "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="
     },
+    "is-decimal": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
+      "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==",
+      "dev": true
+    },
     "is-descriptor": {
       "version": "0.1.6",
       "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
@@ -8328,6 +9207,12 @@
       "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
       "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
     },
+    "is-finite": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+      "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+      "dev": true
+    },
     "is-fullwidth-code-point": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -9467,6 +10352,15 @@
         }
       }
     },
+    "lcid": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+      "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+      "dev": true,
+      "requires": {
+        "invert-kv": "^1.0.0"
+      }
+    },
     "lead": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz",
@@ -9670,6 +10564,15 @@
       "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
       "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
     },
+    "log-symbols": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+      "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.0.1"
+      }
+    },
     "loglevel": {
       "version": "1.6.8",
       "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz",
@@ -9749,6 +10652,14 @@
         }
       }
     },
+    "make-plural": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz",
+      "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==",
+      "requires": {
+        "minimist": "^1.2.0"
+      }
+    },
     "makeerror": {
       "version": "1.0.11",
       "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
@@ -9929,6 +10840,11 @@
       "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
       "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
     },
+    "messageformat-parser": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-2.0.0.tgz",
+      "integrity": "sha512-C2ZjB5GlLeikkeoMCTcwEeb68LrFl9osxQzXHIPh0Wcj+43wNsoKpRRKq9rm204sAIdknrdcoeQMUnzvDuMf6g=="
+    },
     "methods": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@@ -10152,6 +11068,12 @@
         "minimist": "^1.2.5"
       }
     },
+    "mktemp": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/mktemp/-/mktemp-0.4.0.tgz",
+      "integrity": "sha1-bQUVYRyKjITkhKogABKbmOmB/ws=",
+      "dev": true
+    },
     "move-concurrently": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
@@ -10270,9 +11192,9 @@
       }
     },
     "node-forge": {
-      "version": "0.9.0",
-      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz",
-      "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ=="
+      "version": "0.10.0",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
+      "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA=="
     },
     "node-int64": {
       "version": "0.4.0",
@@ -10808,6 +11730,56 @@
         "word-wrap": "~1.2.3"
       }
     },
+    "ora": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
+      "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.2",
+        "cli-cursor": "^2.1.0",
+        "cli-spinners": "^2.0.0",
+        "log-symbols": "^2.2.0",
+        "strip-ansi": "^5.2.0",
+        "wcwidth": "^1.0.1"
+      },
+      "dependencies": {
+        "cli-cursor": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+          "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+          "dev": true,
+          "requires": {
+            "restore-cursor": "^2.0.0"
+          }
+        },
+        "mimic-fn": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+          "dev": true
+        },
+        "onetime": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+          "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^1.0.0"
+          }
+        },
+        "restore-cursor": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+          "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+          "dev": true,
+          "requires": {
+            "onetime": "^2.0.0",
+            "signal-exit": "^3.0.2"
+          }
+        }
+      }
+    },
     "ordered-read-streams": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
@@ -10862,6 +11834,15 @@
       "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
       "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
     },
+    "os-locale": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+      "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+      "dev": true,
+      "requires": {
+        "lcid": "^1.0.0"
+      }
+    },
     "os-tmpdir": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
@@ -11227,6 +12208,43 @@
         "node-modules-regexp": "^1.0.0"
       }
     },
+    "pkg-conf": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz",
+      "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==",
+      "dev": true,
+      "requires": {
+        "find-up": "^3.0.0",
+        "load-json-file": "^5.2.0"
+      },
+      "dependencies": {
+        "load-json-file": {
+          "version": "5.3.0",
+          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
+          "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.15",
+            "parse-json": "^4.0.0",
+            "pify": "^4.0.1",
+            "strip-bom": "^3.0.0",
+            "type-fest": "^0.3.0"
+          }
+        },
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "dev": true
+        },
+        "type-fest": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+          "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+          "dev": true
+        }
+      }
+    },
     "pkg-dir": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
@@ -11279,6 +12297,12 @@
         "ts-pnp": "^1.1.6"
       }
     },
+    "pofile": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/pofile/-/pofile-1.1.0.tgz",
+      "integrity": "sha512-6XYcNkXWGiJ2CVXogTP7uJ6ZXQCldYLZc16wgRp8tqRaBTTyIfF+TUT3EQJPXTLAT7OTPpTAoaFdoXKfaTRU1w==",
+      "dev": true
+    },
     "popper.js": {
       "version": "1.16.1",
       "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
@@ -12325,6 +13349,23 @@
       "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
       "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM="
     },
+    "promise-map-series": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/promise-map-series/-/promise-map-series-0.2.3.tgz",
+      "integrity": "sha1-wtN3r8kyU/a9A9u3d1XriKsgqEc=",
+      "dev": true,
+      "requires": {
+        "rsvp": "^3.0.14"
+      },
+      "dependencies": {
+        "rsvp": {
+          "version": "3.6.2",
+          "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
+          "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==",
+          "dev": true
+        }
+      }
+    },
     "prompts": {
       "version": "2.3.2",
       "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz",
@@ -12368,6 +13409,15 @@
       "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
       "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
     },
+    "pseudolocale": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/pseudolocale/-/pseudolocale-1.1.0.tgz",
+      "integrity": "sha512-OZ8I/hwYEJ3beN3IEcNnt8EpcqblH0/x23hulKBXjs+WhTTEle+ijCHCkh2bd+cIIeCuCwSCbBe93IthGG6hLw==",
+      "dev": true,
+      "requires": {
+        "commander": "*"
+      }
+    },
     "psl": {
       "version": "1.8.0",
       "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
@@ -12462,6 +13512,17 @@
       "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
     },
+    "quick-temp": {
+      "version": "0.1.8",
+      "resolved": "https://registry.npmjs.org/quick-temp/-/quick-temp-0.1.8.tgz",
+      "integrity": "sha1-urAqJCq4+w3XWKPJd2sy+aXZRAg=",
+      "dev": true,
+      "requires": {
+        "mktemp": "~0.4.0",
+        "rimraf": "^2.5.4",
+        "underscore.string": "~3.3.4"
+      }
+    },
     "r-json": {
       "version": "1.2.10",
       "resolved": "https://registry.npmjs.org/r-json/-/r-json-1.2.10.tgz",
@@ -12484,6 +13545,12 @@
         "performance-now": "^2.1.0"
       }
     },
+    "ramda": {
+      "version": "0.26.1",
+      "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz",
+      "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==",
+      "dev": true
+    },
     "randombytes": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -12872,6 +13939,15 @@
         "warning": "^3.0.0"
       }
     },
+    "react-i18next": {
+      "version": "11.7.3",
+      "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.7.3.tgz",
+      "integrity": "sha512-7sYZqVZgdaS9Z0ZH6nuJFErCD0zz5wK3jR4/xCrWjZcxHHF3GRu7BXdicbSPprZV4ZYz7LJzxxMHO7dg5Qb70A==",
+      "requires": {
+        "@babel/runtime": "^7.3.1",
+        "html-parse-stringify2": "2.0.1"
+      }
+    },
     "react-image-file-resizer": {
       "version": "0.3.8",
       "resolved": "https://registry.npmjs.org/react-image-file-resizer/-/react-image-file-resizer-0.3.8.tgz",
@@ -12991,6 +14067,38 @@
         "webpack-dev-server": "3.11.0",
         "webpack-manifest-plugin": "2.2.0",
         "workbox-webpack-plugin": "4.3.1"
+      },
+      "dependencies": {
+        "@babel/core": {
+          "version": "7.9.0",
+          "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
+          "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
+          "requires": {
+            "@babel/code-frame": "^7.8.3",
+            "@babel/generator": "^7.9.0",
+            "@babel/helper-module-transforms": "^7.9.0",
+            "@babel/helpers": "^7.9.0",
+            "@babel/parser": "^7.9.0",
+            "@babel/template": "^7.8.6",
+            "@babel/traverse": "^7.9.0",
+            "@babel/types": "^7.9.0",
+            "convert-source-map": "^1.7.0",
+            "debug": "^4.1.0",
+            "gensync": "^1.0.0-beta.1",
+            "json5": "^2.1.2",
+            "lodash": "^4.17.13",
+            "resolve": "^1.3.2",
+            "semver": "^5.4.1",
+            "source-map": "^0.5.0"
+          },
+          "dependencies": {
+            "semver": {
+              "version": "5.7.1",
+              "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+              "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+            }
+          }
+        }
       }
     },
     "react-swipeable-views": {
@@ -13420,6 +14528,15 @@
       "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
       "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
     },
+    "repeating": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+      "dev": true,
+      "requires": {
+        "is-finite": "^1.0.0"
+      }
+    },
     "replace-ext": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz",
@@ -13850,11 +14967,11 @@
       "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo="
     },
     "selfsigned": {
-      "version": "1.10.7",
-      "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz",
-      "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==",
+      "version": "1.10.8",
+      "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz",
+      "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==",
       "requires": {
-        "node-forge": "0.9.0"
+        "node-forge": "^0.10.0"
       }
     },
     "semver": {
@@ -14322,6 +15439,15 @@
         "is-plain-obj": "^1.0.0"
       }
     },
+    "sortobject": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/sortobject/-/sortobject-1.3.0.tgz",
+      "integrity": "sha512-rr0RrgE3ZoWaREnHiidnywzXLaeqmxDKfB4Htdbzu4WBzsVeZEJrhz7AR4ZF+gzHgbog/lQoNXxCWHaXeLc1Dg==",
+      "dev": true,
+      "requires": {
+        "editions": "^2.2.0"
+      }
+    },
     "source-list-map": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
@@ -14862,6 +15988,12 @@
       "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
       "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
     },
+    "symlink-or-copy": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/symlink-or-copy/-/symlink-or-copy-1.3.1.tgz",
+      "integrity": "sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==",
+      "dev": true
+    },
     "synchronous-promise": {
       "version": "2.0.13",
       "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.13.tgz",
@@ -15238,6 +16370,12 @@
         "punycode": "^2.1.0"
       }
     },
+    "trim-right": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+      "dev": true
+    },
     "ts-pnp": {
       "version": "1.1.6",
       "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz",
@@ -15309,8 +16447,7 @@
     "typescript": {
       "version": "3.9.3",
       "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz",
-      "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==",
-      "optional": true
+      "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ=="
     },
     "typpy": {
       "version": "2.3.12",
@@ -15340,10 +16477,20 @@
       "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
       "dev": true
     },
+    "underscore.string": {
+      "version": "3.3.5",
+      "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz",
+      "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==",
+      "dev": true,
+      "requires": {
+        "sprintf-js": "^1.0.3",
+        "util-deprecate": "^1.0.2"
+      }
+    },
     "undertaker": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz",
-      "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==",
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz",
+      "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==",
       "dev": true,
       "requires": {
         "arr-flatten": "^1.0.1",
@@ -15351,10 +16498,19 @@
         "bach": "^1.0.0",
         "collection-map": "^1.0.0",
         "es6-weak-map": "^2.0.1",
+        "fast-levenshtein": "^1.0.0",
         "last-run": "^1.1.0",
         "object.defaults": "^1.0.0",
         "object.reduce": "^1.0.0",
         "undertaker-registry": "^1.0.0"
+      },
+      "dependencies": {
+        "fast-levenshtein": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz",
+          "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=",
+          "dev": true
+        }
       }
     },
     "undertaker-registry": {
@@ -15752,6 +16908,21 @@
       "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
       "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
     },
+    "void-elements": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+      "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
+    },
+    "vue-template-compiler": {
+      "version": "2.6.12",
+      "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz",
+      "integrity": "sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg==",
+      "dev": true,
+      "requires": {
+        "de-indent": "^1.0.2",
+        "he": "^1.1.0"
+      }
+    },
     "w3c-hr-time": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
@@ -15929,6 +17100,15 @@
         "minimalistic-assert": "^1.0.0"
       }
     },
+    "wcwidth": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+      "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+      "dev": true,
+      "requires": {
+        "defaults": "^1.0.3"
+      }
+    },
     "webidl-conversions": {
       "version": "4.0.2",
       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
@@ -16657,6 +17837,16 @@
       "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
       "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg=="
     },
+    "yamljs": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz",
+      "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==",
+      "dev": true,
+      "requires": {
+        "argparse": "^1.0.7",
+        "glob": "^7.0.5"
+      }
+    },
     "yargs": {
       "version": "13.3.2",
       "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
diff --git a/jams-react-client/package.json b/jams-react-client/package.json
index c1e72f944c6d5c6bbd73c3ab99337edb80eb20b5..6dc68de4f3416614588fa181e4532c2a8ecb1f8a 100644
--- a/jams-react-client/package.json
+++ b/jams-react-client/package.json
@@ -5,6 +5,7 @@
   "private": false,
   "main": "dist/index.js",
   "dependencies": {
+    "@lingui/react": "^2.9.2",
     "@material-ui/core": "4.10.0",
     "@material-ui/icons": "4.9.1",
     "@material-ui/lab": "^4.0.0-alpha.56",
@@ -15,6 +16,9 @@
     "fuctbase64": "^1.4.0",
     "generate-password": "^1.5.1",
     "history": "4.10.1",
+    "i18next": "^19.8.2",
+    "i18next-browser-languagedetector": "^6.0.1",
+    "i18next-http-backend": "^1.0.21",
     "image-to-base64": "^2.1.1",
     "lodash": "^4.17.19",
     "material-ui-popup-state": "^1.6.1",
@@ -28,6 +32,7 @@
     "react-dom": "16.13.1",
     "react-easy-crop": "^3.1.1",
     "react-google-maps": "9.4.5",
+    "react-i18next": "^11.7.3",
     "react-image-file-resizer": "^0.3.8",
     "react-intl": "5.0.2",
     "react-router-dom": "5.2.0",
@@ -39,7 +44,7 @@
   },
   "scripts": {
     "start": "NODE_PATH=./src react-scripts start",
-    "build": "react-scripts build",
+    "build": "react-scripts build && ./node_modules/.bin/i18next-scanner",
     "test": "react-scripts test --env=jsdom",
     "eject": "react-scripts eject",
     "install:clean": "rm -rf node_modules/ && rm -rf package-lock.json && npm install && npm start",
@@ -66,10 +71,17 @@
     "typescript": "3.9.3"
   },
   "devDependencies": {
+    "@babel/core": "^7.11.6",
+    "@lingui/cli": "^2.9.2",
+    "@lingui/macro": "^2.9.2",
+    "babel-core": "^7.0.0-bridge.0",
+    "babel-plugin-i18next-extract": "^0.8.0",
     "eslint-config-prettier": "6.11.0",
     "eslint-plugin-prettier": "3.1.3",
-    "gulp": "4.0.2",
+    "gulp": "^4.0.2",
     "gulp-append-prepend": "1.0.8",
+    "i18next-parser": "^3.3.0",
+    "i18next-scanner": "^2.11.0",
     "prettier": "2.0.5",
     "webpack-cli": "^3.3.12"
   },
diff --git a/jams-react-client/public/blueprints.json b/jams-react-client/public/blueprints.json
deleted file mode 100644
index fe51488c7066f6687ef680d6bfaa4f7768ef205c..0000000000000000000000000000000000000000
--- a/jams-react-client/public/blueprints.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/jams-react-client/public/groups.json b/jams-react-client/public/groups.json
deleted file mode 100644
index ac5ed22969b7cc3ddf2c7dead42b20ce1f01c327..0000000000000000000000000000000000000000
--- a/jams-react-client/public/groups.json
+++ /dev/null
@@ -1,8 +0,0 @@
-[
-    {
-        "name": "Group 1",
-	"blueprint": "Patients",
-        "groupMembers": ["lgharib", "aberaud", "cberaud"]
-        
-    }
-]
diff --git a/jams-react-client/public/manifest.json b/jams-react-client/public/manifest.json
index ef19ec243e739479802a5553d0b38a18ed845307..e6632f3d99a0fd4f44437cdd745b169ddd639e48 100644
--- a/jams-react-client/public/manifest.json
+++ b/jams-react-client/public/manifest.json
@@ -1,6 +1,6 @@
 {
-  "short_name": "React App",
-  "name": "Create React App Sample",
+  "short_name": "JAMS",
+  "name": "Jami Account Management Server",
   "icons": [
     {
       "src": "favicon.ico",
diff --git a/jams-react-client/public/users.json b/jams-react-client/public/users.json
deleted file mode 100644
index 22b2aa05af9a5703262113943a8cfcfc21ce8fc5..0000000000000000000000000000000000000000
--- a/jams-react-client/public/users.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"username":"lsof","firstName":"user","lastName":"lsof","email":null,"profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"ababi","firstName":"Albert ","lastName":"Bab\u00ed Oller","email":"albert.babi@savoirfairelinux.com","profilePicture":null,"phoneNumber":"603","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"aviau","firstName":"Alexandre","lastName":"Viau","email":"alexandre.viau@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"ebail","firstName":"\u00c9loi","lastName":"Bail","email":"eloi.bail@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"mraza","firstName":"Mohammed","lastName":"Raza","email":"mohammed.raza@savoirfairelinux.com","profilePicture":null,"phoneNumber":"360","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"mriou","firstName":"Melissa","lastName":"Riou","email":"melissa.riou@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"sblin","firstName":"S\u00e9bastien","lastName":"Blin","email":"sebastien.blin@savoirfairelinux.com","profilePicture":"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","phoneNumber":"176","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"tjams","firstName":"Jams","lastName":"Testeur","email":"habdallah","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"ywang","firstName":"Yang","lastName":"Wang","email":"yang.wang@savoirfairelinux.com","profilePicture":"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","phoneNumber":"152","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"btovar","firstName":"Brando","lastName":"Tovar","email":"brando.tovar@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"cperry","firstName":"Charles","lastName":"Perry","email":"charles.perry@savoirfairelinux.com","profilePicture":null,"phoneNumber":"413","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"gdoffe","firstName":"Gilles","lastName":"Doffe","email":"gilles.doffe@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"lgomis","firstName":"Laetitia","lastName":"Gomis","email":"laetitia.gomis@savoirfairelinux.com","profilePicture":null,"phoneNumber":"120","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"mdupre","firstName":"Mathieu","lastName":"Dupr\u00e9","email":"mathieu.dupre@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"mzhang","firstName":"Ming Rui","lastName":"Zhang","email":"mingrui.zhang@savoirfairelinux.com","profilePicture":"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","phoneNumber":"395","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"nrevva","firstName":"Natalia","lastName":"Revva","email":"natalia.revva@savoirfairelinux.com","profilePicture":null,"phoneNumber":"385","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"pgault","firstName":"Pierre","lastName":"Gault","email":"pierre.gault@savoirfairelinux.com","profilePicture":null,"phoneNumber":"350","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"psingh","firstName":"Prabhsimran","lastName":"Singh","email":"prabhsimran.singh@savoirfairelinux.com","profilePicture":null,"phoneNumber":"405","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"rbrule","firstName":"Rapha\u00ebl","lastName":"Brul\u00e9","email":"raphael.brule@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"vlenin","firstName":"vladimir","lastName":"Lenin","email":"vladimir.lenin@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"aberaud","firstName":"Adrien","lastName":"B\u00e9raud","email":"adrien.beraud@savoirfairelinux.com","profilePicture":"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","phoneNumber":"176","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"bfrison","firstName":"Blaise","lastName":"Frison","email":"blaise.frison@savoirfairelinux.com","profilePicture":null,"phoneNumber":"308","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"cflamme","firstName":"C\u00e9line","lastName":"Flamme","email":"celine.flamme@savoirfairelinux.com","profilePicture":null,"phoneNumber":"319","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"cimbaud","firstName":"Christophe","lastName":"Imbaud","email":"christophe.imbaud@savoirfairelinux.com","profilePicture":"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","phoneNumber":"128","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"cyrille","firstName":"Cyrille","lastName":"B\u00e9raud","email":"cyrille.beraud@savoirfairelinux.com","profilePicture":"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","phoneNumber":"514 276-5468  123","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"fashkar","firstName":"Firas","lastName":"Ashkar","email":"firas.ashkar@savoirfairelinux.com","profilePicture":null,"phoneNumber":"118","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"gheller","firstName":"Guillaume","lastName":"Heller","email":"guillaume.heller@savoirfairelinux.com","profilePicture":"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","phoneNumber":"124","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"jflores","firstName":"Johnny","lastName":"Flores","email":"johnny.flores@savoirfairelinux.com","profilePicture":null,"phoneNumber":"302","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"lgharib","firstName":"Larbi","lastName":"Gharib","email":"larbi.gharib@savoirfairelinux.com","profilePicture":null,"phoneNumber":"189","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"mhallab","firstName":"Mounir","lastName":"Hallab","email":"mounir.hallab@savoirfairelinux.com","profilePicture":null,"phoneNumber":"334","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"nndiaye","firstName":"Nd\u00e8ye Anna","lastName":"Ndiaye","email":"anna.ndiaye@savoirfairelinux.com","profilePicture":null,"phoneNumber":"375","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"slestum","firstName":"S\u00e9bastien","lastName":"Le Stum","email":"sebastien.le-stum@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"agsantos","firstName":"Aline","lastName":"Gondim Santos","email":"aline.gondimsantos@savoirfairelinux.com","profilePicture":null,"phoneNumber":"138","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"atraczyk","firstName":"Andreas","lastName":"Traczyk","email":"andreas.traczyk@savoirfairelinux.com","profilePicture":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCACWAJYDASIAAhEBAxEB/8QAHQAAAQQDAQEAAAAAAAAAAAAAAwAEBgcCBQgJAf/EAD8QAAEDAwMCBAQDBwIDCQAAAAECAwQABREGEiEHMRMiQVEIFGFxMoGRFSMzQlKhscHRCRZiFyQlQ3KCorLw/8QAGgEAAQUBAAAAAAAAAAAAAAAABAABAgMFBv/EACYRAAICAgICAgICAwAAAAAAAAABAgMEESExEkETIgUjFFEyQoH/2gAMAwEAAhEDEQA/AOv0poyGqzQ2PajoR24rQKjBDVGDVZpTzRUIzSEYIbINHQisgjj2ppd73DsEdx+U8htCSOSf9PSlvXY2t9D3wqyQmqevnxX9PtMF5qTe2p8lIK0oiDOUjufuPaoNf/j00ayWk2GDOuTp5cDzfhjH0Jqt2wXRYq7GdOhPNZ+HmuaIPx86CWhoTrVdoDjnpsS4n8iFZ/tU7038WfTDUcxMT/mNNqkq5Si5NLaSR7BWCP70yug+xnXYlvRbnhkUgihWq7W7UERMq13GLdI57OxHkuJ/VJNOcDjnk+g5xVikn0VPa7BBHesdho+w0tn0qwokN1IrAtZFOVoT71jt8vHakMNC1Qi3inhSaGU1YuhDNSKVHUilTiGKUc8UdCKxaGacJHNDhZ8SjmjIQMcnApJTmihISM+vpkU/ZFvTPqGioDaCSexxXFfxm/EBHs1wnaTtxDUlpO1+alfmUvHISBnt2roT4guo6OmGkF3Pe4u4Oq+XiMIc2/vCPxfYZrys1mLhqK8ypt1kKnXN95TjhQPKFKOeT789qzsjIUeEH0UN8mrKI0lp6Z4i3HtpUCVck042XCf8illDil9zj2+tWp0q+GnUWoIDcxUJRZcH4VjHHvV3s/DLerVGLaY8fkYLqDymsx2J86NmNDkjkvLrSpLb/wDDTztV3B+hrUKmreKA5KKkg+VKvMU/nXWk34Y7wt5LLkVsxtuS4fxfnURvXwnPw0qcZ3MlXOAeBSVi9iljPXZWPTbrBq/ozek3PTt2XFZxueYUSplwDnCk/wC1emPR/wCJTSnVqLDaZltQ74/HbdXDWrAKyBlKVcZOeK85Lr0Wu1oZebcy8ACQrH+lRi1aknaQmR5Tb/yU6EsKSVeUgg54Iomm/T7AL8P2eznqRjtxn6+1LBqh/hO+Ir/tssbtsuSC3qOA2HVkDCJLfbcP+oEir9GCTjtwUk+vvWxVNWGDZBwlpgCM+lYkemKMRya+FPrVpWNlpwKHtzTpSdw9qHtxVi6ENVI5pUZQ5pU4jXtJxzR0AGsUJ4ozaeBQ4TszQmigHIAGc8c9hXxCRRSkkDYkLVkYST3qXUWLvk8/vi16kL1J1XlWRh4KiWptMcAnKfEPKyf1x+Vbb4e/hwGovC1Be0odgKVlqPswVY9ftVba00qdRfELdokoqaZkX5TS0pHKvN/t/mvQrS9lYsluiwYo2xYzYQgYx2HeuZu+0uTqsdJQSMrLo5qAw2ywyGm0p2oCRjaK2a7AEA7m0FKe2Byr71vIqwnaB/mjSshC1YznsKsjBeJNze9Ff3K1bFFCyAnvioRqO3NeC4VAE1Y99US6cjI9xUAvwUsOJAyruDQ0+C+L9lM3+3pk70lAxn2rl3rzpqPbn3HkMghwecAV2bfLel5pSinCgnnbXLHXp1qO+Ek7j3wfaqqZLy0Pevo2VN0j6k3zpa9+07VPdiT4r6VNLSrhQJ5QoeoI9K9eej/UJnqv04s2qGUBr51rc6z/AEujhWPbvmvGwxWnGZSAPMlQdSR6jFek/wDw7LsLh0HmRTI8RyFc1JKO5SlScjj8q3cef20cvkwUY+R03sx9axUBRcfpWJTnmtXRj7A4wKwKKcFIrBQx2qaJDUo5pVmRzSpxDBKaOhFYoTR0DGKo0ECSjmnDCcOo9tw5/OsB3o7YCnGx7KB+mBS/1aYt+K5POjWM1uD8UV4dKgI7N5LgJ/q3YP8Aiu8IKgW21I8wUAQR9s156fE/bJVh+KGVboqwHLhdWFtISvP8VKVcj8zXcqNTLtqFRYUdyY/ESG1bSByOMZJ/vXO2x+20dRj2VuC59FiRozyilQUKUgSEPttgEZ96pJjqvriPdAm4WqLFt5yEbJAW6as+26iXerEqW0SX2052cg/pipfJGHDLONeWx7dIhbBLpTmoLeIiHkuhONw5yPaob1e6uSoSkQ4CXEy3U/xFJ2pQfqo4xVU2PUMttbky96zuMxZJPy0CIooT/wBO9WEn9aHclZwi1WRUd7LC1NDXGbfU2SrvwPqK5B6/wn/BTMbQVttna4fYVauq+stqlSnBZ5l33nKQVttbFfmHDUTtGroesr25YbgFN3VxlTpZnRy2l1I/EQRkHHvVKi4S3ohkZFcats5ZYmqkRFIQrCinGfpniu6v+GXqpDF61vphwje5FYmsoz3KFFK//uK5a6pdD4/Te0G/IvTTzMmUGkQWfMUJIJJ3fQirM+A96TbviIsk11SoqJjb0ZKD2dCkZ2//ABBrUrarkm32Ytkf5EZKvnSPU5SaEoYo6k7FFJ9DihrreXRhaAjsaGe9FPagqOKmODPelXwr5pUhDdHejIAzQ0J5oqO9V6CAgAzRcAjB4BHOOD+tDHeipAPcA5GORmoa2mmM1uLTOE+vWjtcaj63a5uEK129EqxRYdxamFGxzwdu0L3EkEgpI4HpW3vVxkKnWG3w7Wpu4TClxT8lxZTuPJK8EeUVfnVWGxaeodhussqFqv8AAe07OdxlKVlRVHKvYFS1DJ9q+3TSKLkzb5HhITIShKFlCQQSkc4PtmsO+Drejd/HqMl4SX/TmVVi1lcbsg3htEWC0nYXWCdoXn+Ubs4PpT5/TXVGT1Kb0no/VyrVbpVjVMmGd+8+UVuSnykDuSoV0mrQ0NGx+bJQEN+bc84lKE47cfSoZ04ko1JrjW+qIzZbtaWmbNbn1jHjBrcpxzHspQQKH3FNvQZDGipOMXs470XD1HYL/qKyalvTt7v1suAQ5JdUVILRGUqSPY8/pXQKtNRdQ6aXFfcc8dwpdamM+XwgAcjA49fWqn6ooc0n1iXq6DGVNhyP+73KKgeZSRyFpHuCSKtvSPVnQ7tsbBu4hunlTDzKwpIz2PB5p4WJS3oKVMa+JopDUXRyHYo5aiOPZKzhwDnBUTz+tNIGmFr1nYJDqit1EKSjeSc7fMBV+3vWVhveEQYVzueeE/KQshX/ALiRUUfsy4ryrnJg/s1SY/y7EVTgW4hJVklfAwT9KGnZLT2XSrqtioqJVfVmxMSdGtkNJywoEE84PvWfQlhbPUTp7LiFKlN3ZtJCO4SpJz/ipRquD89YVxEpC3FrSvzdsZ5p/wDCZoedM6+255ltJskYuyklXOdqcce2CR+tWKLnKEX7Giq4KyaWlo9FH/4qz7qP+abLPNOXCF+b3OabuCusS0tHBS7YEqwKbrXzRVcg01cODUyJ8KuaVBUvmlSEGR3oie9CQRmio71AIDJGTRk8A+xGKEiijtTMRqNZaZjau05KtMttLsV9IC0EZz/t9MVC4PRjTzkNMZtE1lSBtUpq4yEjI+m/3q0Eq24JGQO/2rRTXhaLqWs4Q7hYI+1ZuVXv7Gvg27fxEQZ6J6dYClyWVu54HzD7j+fuFqIp3aNMx4saREYDTENgKATwkEe1bxx5UuYv97uaSMn2qs+qurWdJvx2486RGkT1bVNtYLafc4Pasdy2dJCKTOfuqtiai6vmpLg8CSjGzAO1We4+tSHoVeYsmdcbFObRJfibSh5Y820jgGqb632KU8lvUCLm7dgt0hPJSEY79vWpt0Uk26FbC+ha2pruPGcePnJwMc0O210aadVi02dMS7VDZBUUFPGMBRwaqfqEuOy2ttpsJH9I7VK0ayanNfLLcSJKE4HP4qrHV9wMt17eSnaDmopqXDApQ8N6I1f2ZUu3rYtsZyVMXhllthG9a1ngACurvho6SSenGl3Z14QhF9uIH7hIGY7IGdv0JPf7VS3w8jd1Y0+HVZUfFWAntw0uuzCc4B5AJ/F71v4tSmlN+jls/Jkv0LjYNRyOKbuKo6uBTZytk5/obOLxmmbqs04fzTFas5xSEDU5zSoLmc0qQjYo70dB5FAR3oqe9QCBwg0Ydqboo6O1IQZJAwSMj2rVakhhxpuRtyWuCR7VtU9vesnG0ymltLG1Chgn6VRdDzhospt+KxSOZut3UqXo24wIkcraiPJLqlNjKl4/lHuarDUtt1Dri2PTfl5a3HMONtPNqQpse4zVx9ZINvttwtCbw0jwWZaQ24v+jP8A+NWEoRZsFpbAQ5sSNuBgFOK5j45Rk0zt6765RUjjhOh3n9IrtgRcHrh45eXmOspbSQAUjjnOO9RV1tzTKGmGrdOUsJUApJwQr6g/auv7i7d0Si2mLEZacyN474qtNV6SagLflTCjccqSE+p9TTTWkaMZVSjx2UhEu1/bnRZykuojrO7a8rkEAA/4qXTbiLhHckKG7xRt59Ki+vdTKtbEZ5aU+Cs5QU9sdqZv6jT+z0FvzDaFBP19KrjDckwediluJcHQa6oY6zabG5KW0OLZyT3y2of613AtOFuD2PFeWcO+yLSWJLDxamfMBTLyFYIUOdw+ldjdO/jN0VexBs+ppjtgvq2UJW7Kb/cSFZx5FjPY4zkDvXT4Uf1s478nH9iL9V5sgckU3dojUpmdGTJjvNzYyhlLzDgcSR9xQXVfT++a0UYo1erXL4Jp+6vg1r3V96cYauL5pUF1fmpUhG4QeaMjuKatrB7GnKT9ear8QgcIoo7UFtQ7E4Pue1FDiUgqWQEDursBSSbekRYdBoyckYBwfcjNVvqzr3orRsgxpN0EyYO0aH+8UT7fSoPrH4mXY2mXn4NrVbXZJ8GG5IVucWsnuE+mKJrx7JtcDOSSaH/xX6Ama90ZFasym1XqCtUhuMV4K0gElJ+pGcVsenEpqXpe1FYIeVHQlzd3SsfiBqDdPpsuIIFzuMh+TKd8khyQoqBUr15qd3K3LhvOSbYoMOLUSphQy2on1GO1Y2diui3b9m5g3eVev6HeoVxSpKQNq92U/Sqz14P2i242Wy5xg49BTnUmob/A3qesbriU8BxhWQf7VVOteoV12OssW96O4ofic74rHnDZswk/RSnXlx+5ajgWqANkRoALA7CsIEVTrbSCra20kDJ9a2S7HOu035h5KiVnzE84rC5QFojllvytDylXYqq6rHle1Cvp9jSlGhOUnyaZUzx5/jtp2sMgobT7p7VqtawW7haGinC5MV5LrR+nqKkC7ethpJKfwjhPtTBEXx2XSUqA4bbHuo9x+gJrvMfCVMYwRydlytcpMszpzrzUum4kWTabxJhKwMoSdyTx2KTxirusfxZ3mElDV8tUW6AfidiqLDp+uDkH+1UhY4JgWKMpSAvCTzjitharGZRFynHw2U8IC+M/rR88OEgL5Edg6O6s6d6gtD9myyxMV+KHJIQ4P9DW/ku7cj29cYrkIW2BGbROCCwlBz4wUUE/+k962jfV7VMeM0IVwkNMIHkEltLpUPrkZoSf42S+0WN57ejpd11RVxgfelXPlu+IO7sMbbxDjTnfRbQLf6jNKgv4lyJaOi2JgB707TNQhIWpwJRzuUTgD2qMMzif03H7D1qJ6s1RHlLS0JqGm21ltRUrCc4OP71TTU7nwTlLxJtI6lQS26mAy7MdRkJURhvI9zVR9TdW6m1i1JtttmJQsM+IptC9oA9QB/NWguz5t94kJTKdfhNxfGI3kNpPPYfWhx7fIGk4N1b3oluJWoOJVg7SrhJ/KtyrCjDlop89jTpnoq027Rz9wDBk3xZV4j76cqQoHkDPao8fC1p1ohwmUKdtNoJwjcTkgY7+vmre3vUX/KWlJ1zUp5hSEcILm5DjhHHFZ/Dzp9y3wDd5KCubJWVfvBgkKOSefvR6SriVttsm06W4zcmrasrUwklRQANvNTfS97XMQbXJV/4i035FejzZ/mA7ZHr96jmo2lwpzy0RwUpTuCj3zQYrCr1EHgrXDlMkOMylceG4O2T7HsfvWP8AksZZVflH/JBmJd8Utf2WVGcb8FxhaU4IwAfX7VQ3UttqfqlUBDaBtA34q2LFdRq23mPeGVWu8NgoWAcBwj+Zsjg59hzUPvGnLHpae5Lc8SZNc5LagVKUfY+1cZDEsumqorTOoWRCqHybILcdPw7ZbQteIrQHCiOVH2qu5Vq/aEt2StIDZ4SkDCQase/vPXdzxJg2NE4QyP5R6DHtUdltYUiKhO5Z+ldx+PwIYkOuTmsjKnfLbfBXWoYLjTWxKSlauAT2NP8AQulWr9fEw1lLbDTZHiqOEl8+g+oGf1qb3jSTpEBPhqLjytrYIz5hyT9gMnP0qU6W0JEhpt7Kmd5S4O/GVZyVGtVeKewDy9Ecuztn0814E5JU6zlDbPYKwO/3oFltsi4xk3y9MqWySfloZHlCR2JFazqM1+1+rTdsab3JYVlQH8oxU3kxnrvBbh7lFLRA8FBISv2zTqP22Rkl6NAfmNRSguQCYzP8JrbhIH0FN7hMkJb+W8Pwx/Wng4+tSeMPm7f8sy2YZZcLTq++B71rpGj5MiQpiOdwUlSvFWrjYnlSvtgUUvHb30MuOSCTWQ6oOKytHYHJV/mlWTc6Nd7hJKF+FbmT4bSx2WodyKVCuC2WebOjtS3N+NY5IZVscWlLYX7BRCT/AJqA/smHcLai5vpW8+tvICz5Uq7Zx60qVY+Al4lt4PWEX5Sx3bYE+I8lqOVew71KA61G03b4iWhvLSSFeg4ApUq2bOkCx6Kg6wEXG86bsCctRnpPiPEfzdq6A05bWItsjMI3LLSEqSVegHpSpUPZ0SN3cYyJSVqWMgpximDcVLWxpIDYUQnaOQR9aVKh4N+SQ67Itom9yNadQbrFivLhRrK0UFtQ3B5SzgfYDH960kjVM1epZtolbPHZWUl9r1H50qVPTCKcmlyTcpN6bNRPZSVkpUo7VHzKPJreaa0sxLaRNcUVEZJB9qVKipPojPo3tgtfzzq7g+4VOvAojoH4Wmhzt+5xS04tL99kLcGUtcISPSlSpinZUWlI7d66rannvZIbWUpT6jFWjpoYvifKnaEg4xSpUT6LZGgtqSm9XZvccPyFAJ9BWk6iaje00q7oipwGrW80jJ/8xzKN32Gc0qVR9EV0aTSWlbfadPRw4hT7xABz+EDHpSpUqmOf/9k=","phoneNumber":"181","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"joufella","firstName":"J\u00e9r\u00f4me","lastName":"Oufella","email":"jerome.oufella@savoirfairelinux.com","profilePicture":null,"phoneNumber":"514 276-5468 125","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"kkostiuk","firstName":"Kateryna","lastName":"Kostiuk","email":"kateryna.kostiuk@savoirfairelinux.com","profilePicture":"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","phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"mchibani","firstName":"Mohamed","lastName":"Chibani","email":"mohamed.chibani@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"mpelland","firstName":"Marie","lastName":"Pelland","email":"marie.pelland@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"stobajas","firstName":"Sandra","lastName":"Tobajas","email":"sandra.tobajas@savoirfairelinux.com","profilePicture":null,"phoneNumber":"329","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"wenright","firstName":"William","lastName":"Enright","email":"william.enright@savoirfairelinux.com","profilePicture":"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","phoneNumber":"379","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"ydesiles","firstName":"Yohann","lastName":"Desiles","email":"yohann.desiles@savoirfairelinux.com","profilePicture":null,"phoneNumber":"317","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"cvillemer","firstName":"Christophe","lastName":"Villemer","email":"christophe.villemer@savoirfairelinux.com","profilePicture":null,"phoneNumber":"146","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"habdallah","firstName":"Hussein","lastName":"Abdallah","email":"hussein.abdallah@savoirfairelinux.com","profilePicture":"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","phoneNumber":"148","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"hbassinot","firstName":"Herv\u00e9","lastName":"Bassinot","email":"herve.bassinot@savoirfairelinux.com","profilePicture":null,"phoneNumber":"144","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"jcloutier","firstName":"Jonatan","lastName":"Cloutier","email":"jonatan.cloutier@savoirfairelinux.com","profilePicture":null,"phoneNumber":"141","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"jkassabov","firstName":"Juliy","lastName":"Kassabov","email":"juliy.kassabov@savoirfairelinux.com","profilePicture":null,"phoneNumber":"174","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"landrieux","firstName":"Ludovic","lastName":"Andrieux","email":"ludovic.andrieux@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"mromdhane","firstName":"Maroua","lastName":"Romdhane","email":"maroua.romdhane@savoirfairelinux.com","profilePicture":null,"phoneNumber":"411","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"pduchemin","firstName":"Pierre","lastName":"Duchemin","email":"pierre.duchemin@savoirfairelinux.com","profilePicture":null,"phoneNumber":"369","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"smoubarik","firstName":"Siham","lastName":"Moubarik","email":"siham.moubarik@savoirfairelinux.com","profilePicture":"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","phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":"364","organization":"Savoir-faire Linux"},{"username":"anaghshzan","firstName":"Amirhossein","lastName":"Naghshzan","email":"amirhossein.naghshzan@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"elizabeth2","firstName":"Elizabeth","lastName":"Windsor","email":"elizabeth2@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":null},{"username":"fsidokhine","firstName":"F\u00e9lix ","lastName":"Sidokhine","email":"felix.sidokhine@savoirfairelinux.com","profilePicture":null,"phoneNumber":"368","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"mcournoyer","firstName":"Maxim","lastName":"Cournoyer","email":"maxim.cournoyer@savoirfairelinux.com","profilePicture":null,"phoneNumber":"330","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"nrochefort","firstName":"Nathalie","lastName":"Rochefort","email":"nathalie.rochefort@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"plespagnol","firstName":"Pierre","lastName":"Lespagnol","email":"pierre.lespagnol@savoirfairelinux.com","profilePicture":null,"phoneNumber":"409","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"istegarescu","firstName":"Igor","lastName":"Stegarescu","email":"igor.stegarescu@savoirfairelinux.com","profilePicture":null,"phoneNumber":"324","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"jmlemetayer","firstName":"Jean-Marie","lastName":"Lemetayer","email":"jean-marie.lemetayer@savoirfairelinux.com","profilePicture":null,"phoneNumber":null,"phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"yadanminakou","firstName":"Yannick","lastName":"Adanminakou","email":"yannick.adanminakou@savoirfairelinux.com","profilePicture":null,"phoneNumber":"198","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"agirardvallee","firstName":"Antoine","lastName":"Girard-Vallee","email":"antoine.girard-vallee@savoirfairelinux.com","profilePicture":null,"phoneNumber":"382","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"mrodriguezgarcia","firstName":"Marlon","lastName":"Rodriguez Garcia","email":"marlon.rodriguez-garcia@savoirfairelinux.com","profilePicture":null,"phoneNumber":"404","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"},{"username":"sahmadpouribagha","firstName":"Sharareh","lastName":"Ahmadpouribagha","email":"sharareh.ahmadpouribagha@savoirfairelinux.com","profilePicture":null,"phoneNumber":"365","phoneNumberExtension":null,"faxNumber":null,"mobileNumber":null,"organization":"Savoir-faire Linux"}]
\ No newline at end of file
diff --git a/jams-react-client/src/components/CaSetup/CaSetup.js b/jams-react-client/src/components/CaSetup/CaSetup.js
index e57b1cb3156f603a34829f416e2128866f0520a6..d0236c0f56b28f6f3bc1813c18543e47a99b2fa9 100644
--- a/jams-react-client/src/components/CaSetup/CaSetup.js
+++ b/jams-react-client/src/components/CaSetup/CaSetup.js
@@ -17,6 +17,8 @@ import * as tool from "../../tools";
 import Input from "@material-ui/core/Input";
 import Typography from "@material-ui/core/Typography";
 
+import i18next from 'i18next';
+
 const useStyles = makeStyles((theme) => ({
     paper: {
         marginTop: theme.spacing(8),
@@ -50,35 +52,35 @@ export default function CaSetup(props) {
 
     const validationSchemaform1 = Yup.object().shape({
         commonname: Yup.string()
-            .required("Common name is required."),
+            .required(i18next.t("common_name_is_required", "Common name is required.")),
         state: Yup.string()
-            .required("State is required."),
+            .required(i18next.t("state_is_required", "State is required.")),
         city: Yup.string()
-            .required("City is required."),
+            .required(i18next.t("city_is_required", "City is required.")),
         organization: Yup.string()
-            .required("Organization is required."),
+            .required(i18next.t("organization_is_required", "Organization is required.")),
         organizationunit: Yup.string()
-            .required("Organization unit is required."),
+            .required(i18next.t("organization_unit_is_required", "Organization unit is required.")),
         country: Yup.string()
-            .required("Country is required."),
+            .required(i18next.t("country_is_required", "Country is required.")),
     });
 
     const validationSchemaform2 = Yup.object().shape({
         certificatefile: Yup.mixed()
-            .required("Certificate file is required."),
+            .required(i18next.t("certificate_file_is_required", "Certificate file is required.")),
         privkeyfile: Yup.mixed()
-            .required("Private key file is required."),
+            .required(i18next.t("private_key_file_is_required", "Private key file is required.")),
     });
 
 
     const getCertificateOptions = [
-        {value: 0, label: "Create a self-signed Certificate Authority"},
-        {value: 1, label: "Import existing Certificate Authority"},
+        {value: 0, label: i18next.t("create_self_signed_certificate_authority", "Create a self-signed Certificate Authority")},
+        {value: 1, label: i18next.t("import_existing_certificate_authority", "Import existing Certificate Authority")},
     ];
 
     const validityPeriods = [
-        {value: 157784630000, label: "5 years"},
-        {value: 315569260000, label: "10 years"},
+        {value: 157784630000, label: i18next.t("5_years", "5 years")},
+        {value: 315569260000, label: i18next.t("10_years", "10 years")},
     ];
 
     const certificateOptionsItems = tool.buildSelectMenuItems(getCertificateOptions);
@@ -92,7 +94,7 @@ export default function CaSetup(props) {
     function handleInstallCA(data) {
         if(data.status === 500 || data.status === 512 || data.status === 513) {
             props.setError(true)
-            props.setErrorMessage("An unknown error occurred while installing the CA. Please try again.");
+            props.setErrorMessage(i18next.t("unknown_error_occured_while_installing_the_ca", "An unknown error occurred while installing the CA. Please try again."));
         }
         else if (data.status === 200){
             auth.uri = '/api/install/auth';
@@ -161,8 +163,7 @@ export default function CaSetup(props) {
                     return (
                         <form className={classes.form} noValidate onSubmit={handleSubmit}>
                             <h4>
-                                Select an option for setting-up the certificate authority that will be used to sign all Jami
-                                accounts generated on this JAMS instance.
+                            {i18next.t("ca_setup_header", "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.")}
                             </h4>
                             <Select
                                 labelId="certificate-option-select-label"
@@ -179,7 +180,7 @@ export default function CaSetup(props) {
                                 required
                                 fullWidth
                                 id="commonname"
-                                label="Common Name"
+                                label={i18next.t("common_name", "Common Name")}
                                 name="commonname"
                                 autoComplete="commonname"
                                 autoFocus
@@ -198,7 +199,7 @@ export default function CaSetup(props) {
                                 required
                                 fullWidth
                                 name="state"
-                                label="State"
+                                label={i18next.t("state", "State")}
                                 id="state"
                                 autoComplete="state"
                                 value={values.state}
@@ -213,7 +214,7 @@ export default function CaSetup(props) {
                                 required
                                 fullWidth
                                 name="city"
-                                label="City"
+                                label={i18next.t("cistatety", "City")}
                                 id="city"
                                 autoComplete="city"
                                 value={values.city}
@@ -229,7 +230,7 @@ export default function CaSetup(props) {
                                 required
                                 fullWidth
                                 name="organization"
-                                label="Organization"
+                                label={i18next.t("organization", "Organization")}
                                 id="organization"
                                 autoComplete="organization"
                                 value={values.organization}
@@ -244,7 +245,7 @@ export default function CaSetup(props) {
                                 required
                                 fullWidth
                                 name="organizationunit"
-                                label="Organization Unit"
+                                label={i18next.t("organization_unit", "Organization Unit")}
                                 id="organizationunit"
                                 autoComplete="organizationunit"
                                 value={values.organizationunit}
@@ -270,7 +271,7 @@ export default function CaSetup(props) {
                                 color="primary"
                                 className={classes.submit}
                             >
-                                Generate Self-Signed Certificate Authority
+                                {i18next.t("generate_self_signed_certificate_authority", "Generate Self-Signed Certificate Authority")}
                             </Button>
 
                         </form>
@@ -296,8 +297,7 @@ export default function CaSetup(props) {
                 return (
                     <form className={classes.form} noValidate onSubmit={handleSubmit}>
                         <h4>
-                            Select an option for setting-up the certificate authority that will be used to sign all Jami
-                            accounts generated on this JAMS instance.
+                            {i18next.t("select_option_setting_up_certificate_authority", "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.")}
                         </h4>
 
                         <Select
@@ -349,7 +349,7 @@ export default function CaSetup(props) {
                             color="primary"
                             className={classes.submit}
                         >
-                            Import Certificate Authority
+                            {i18next.t("import_certificate_authority", "Import Certificate Authority")}
                         </Button>
 
                     </form>
diff --git a/jams-react-client/src/components/CountrySelect/CountrySelect.js b/jams-react-client/src/components/CountrySelect/CountrySelect.js
index f771c7b3c445f96d57722beccbf21777216c46a5..b0bef0d50866b6f203cbb21d8e62e4b6a78441a3 100644
--- a/jams-react-client/src/components/CountrySelect/CountrySelect.js
+++ b/jams-react-client/src/components/CountrySelect/CountrySelect.js
@@ -3,6 +3,8 @@ import TextField from '@material-ui/core/TextField';
 import Autocomplete from '@material-ui/lab/Autocomplete';
 import { makeStyles } from '@material-ui/core/styles';
 
+import i18next from "i18next";
+
 // ISO 3166-1 alpha-2
 // ⚠️ No support for IE 11
 function countryToFlag(isoCode) {
@@ -51,7 +53,7 @@ export default function CountrySelect(props) {
             renderInput={(params) => (
                 <TextField
                     {...params}
-                    label="Choose a country"
+                    label={i18next.t("choose_a_country", "Choose a country")}
                     name="country"
                     variant="outlined"
                     onBlur={props.handleBlur}
diff --git a/jams-react-client/src/components/CreateAdmin/CreateAdmin.js b/jams-react-client/src/components/CreateAdmin/CreateAdmin.js
index a4d01ba6e724f7ac57fd18ef738724355fbfab33..490db0a733501b65f436d47f015f77a47e0a4f5a 100644
--- a/jams-react-client/src/components/CreateAdmin/CreateAdmin.js
+++ b/jams-react-client/src/components/CreateAdmin/CreateAdmin.js
@@ -1,165 +1,165 @@
-import React from 'react';
+import React from "react";
 import { useHistory } from "react-router-dom";
-import { useFormik } from 'formik';
-import * as Yup from 'yup';
-import Button from '@material-ui/core/Button';
-import TextField from '@material-ui/core/TextField';
-import Grid from '@material-ui/core/Grid';
-import Typography from '@material-ui/core/Typography';
-import { makeStyles } from '@material-ui/core/styles';
+import { useFormik } from "formik";
+import * as Yup from "yup";
+import Button from "@material-ui/core/Button";
+import TextField from "@material-ui/core/TextField";
+import Grid from "@material-ui/core/Grid";
+import Typography from "@material-ui/core/Typography";
+import { makeStyles } from "@material-ui/core/styles";
 
-import axios from 'axios';
-import configApiCall from '../../api'
-import { api_path_post_install_admin } from '../../globalUrls'
+import axios from "axios";
+import configApiCall from "../../api";
+import { api_path_post_install_admin } from "../../globalUrls";
 
-import auth from '../../auth'
+import auth from "../../auth";
+
+import i18next from "i18next";
 
 const useStyles = makeStyles((theme) => ({
-    paper: {
-        marginTop: theme.spacing(8),
-        display: 'flex',
-        flexDirection: 'column',
-        alignItems: 'center',
-    },
-    avatar: {
-        margin: theme.spacing(1),
-        backgroundColor: theme.palette.secondary.main,
-    },
-    form: {
-        width: '100%', // Fix IE 11 issue.
-        marginTop: theme.spacing(1),
-    },
-    submit: {
-        margin: theme.spacing(3, 0, 2),
-    },
+  paper: {
+    marginTop: theme.spacing(8),
+    display: "flex",
+    flexDirection: "column",
+    alignItems: "center",
+  },
+  avatar: {
+    margin: theme.spacing(1),
+    backgroundColor: theme.palette.secondary.main,
+  },
+  form: {
+    width: "100%", // Fix IE 11 issue.
+    marginTop: theme.spacing(1),
+  },
+  submit: {
+    margin: theme.spacing(3, 0, 2),
+  },
 }));
 
 export default function CreateAdmin(props) {
-    const classes = useStyles();
-    const history = useHistory();
-
-    /**
-     * Formik Validation Fields
-     */
-    const formik = useFormik({
-        initialValues: {
-            username: '',
-            password: '',
-            confirmPassword: '',
-
-        },
-        validationSchema: Yup.object({
-            username: Yup.string()
-                .max(60, 'Must be 60 characters or less')
-                .required('Username is required'),
-            password: Yup.string()
-                .max(50, 'Must be 50 characters or less')
-                .required('Password is required'),
-            confirmPassword: Yup.string()
-                .oneOf([Yup.ref('password'), null], 'Passwords must match')
-                .max(50, 'Must be 50 characters or less')
-                .required('Password confirmation is required'),
-        }),
-
-        onSubmit: values => {
-            handleSubmit(values);
-        },
-    });
-
-    function createAdminCallBackHandler(response) {
-        auth.setJWT(response.data['access_token'])
-        auth.admin = true
-        auth.authenticated = true
-        auth.uri = 'start'
-        history.push('/');
-    }
-
-    function handleSubmit(values) {
-        //e.preventDefault();
-        const jsonData = {
-            "username": values.username,
-            "password": values.password
-        }
-
-        if(values.password !== values.confirmPassword) {
-            props.setErrorMessage("Passwords didn't match !");
-            props.setError(true)
-        }else {
-
-            axios(configApiCall(api_path_post_install_admin, "PUT", jsonData, null)).then((response)=>{
-                createAdminCallBackHandler(response);
-            }).catch((error)=>{
-                props.setErrorMessage(error)
-                props.setError(true)
-            })
-        }
-    }
-
-    return (
-        <form className={classes.form} noValidate onSubmit={formik.handleSubmit}>
-            <Typography variant="h5" gutterBottom color="primary">Create Administrator</Typography>
-            <Grid container spacing={3}>
-                <Grid item xs={12}>
-                    <TextField
-                        variant="outlined"
-                        margin="normal"
-                        required
-                        fullWidth
-                        id="username"
-                        label="Username"
-                        name="username"
-                        autoComplete="email"
-                        autoFocus
-                        {...formik.getFieldProps('username')}
-                    />
-                    {formik.touched.username && formik.errors.username ? (<span>{formik.errors.username}</span>) : null}
-                </Grid>
-                <Grid item xs={6}>
-                    <TextField
-                        variant="outlined"
-                        margin="normal"
-                        required
-                        fullWidth
-                        name="password"
-                        label="Password"
-                        type="password"
-                        id="password"
-                        autoComplete="current-password"
-                        {...formik.getFieldProps('password')}
-                    />
-                    {formik.touched.password && formik.errors.password ? (<span>{formik.errors.password}</span>) : null}
-
-                </Grid>
-
-                <Grid item xs={6}>
-
-                    <TextField
-                        variant="outlined"
-                        margin="normal"
-                        required
-                        fullWidth
-                        name="confirmPassword"
-                        label="Confirm password"
-                        type="password"
-                        id="confirmPassword"
-                        autoComplete="current-password"
-                        {...formik.getFieldProps('confirmPassword')}
-                    />
-                    {formik.touched.confirmPassword && formik.errors.confirmPassword ? (<span>{formik.errors.confirmPassword}</span>) : null}
-
-                </Grid>
-            </Grid>
-
-            <Button
-                type="submit"
-                fullWidth
-                variant="contained"
-                color="primary"
-                className={classes.submit}
-            >
-                Continue
-            </Button>
-
-        </form>
-    );
-}
\ No newline at end of file
+  const classes = useStyles();
+  const history = useHistory();
+
+  /**
+   * Formik Validation Fields
+   */
+  const formik = useFormik({
+    initialValues: {
+      username: "",
+      password: "",
+      confirmPassword: "",
+    },
+    validationSchema: Yup.object({
+      username: Yup.string()
+        .max(60, i18next.t("must_be_60_characters_or_less", "Must be 60 characters or less"))
+        .required(i18next.t("username_is_required", "Username is required")),
+      password: Yup.string()
+        .max(50, i18next.t("must_be_50_characters_or_less", "Must be 50 characters or less"))
+        .required("Password is required"),
+      confirmPassword: Yup.string()
+        .oneOf([Yup.ref("password"), null], i18next.t("password_must_match", "Passwords must match"))
+        .max(50, i18next.t("must_be_50_characters_or_less", "Must be 50 characters or less"))
+        .required(i18next.t("password_confirmation_required", "Password confirmation is required")),
+    }),
+
+    onSubmit: (values) => {
+      handleSubmit(values);
+    },
+  });
+
+  function createAdminCallBackHandler(response) {
+    auth.setJWT(response.data["access_token"]);
+    auth.admin = true;
+    auth.authenticated = true;
+    auth.uri = "start";
+    history.push("/");
+  }
+
+  function handleSubmit(values) {
+    //e.preventDefault();
+    const jsonData = {
+      username: values.username,
+      password: values.password,
+    };
+    axios(configApiCall(api_path_post_install_admin, "PUT", jsonData, null))
+        .then((response) => {
+          createAdminCallBackHandler(response);
+        })
+        .catch((error) => {
+          props.setErrorMessage(error);
+          props.setError(true);
+        });
+  }
+
+  return (
+    <form className={classes.form} noValidate onSubmit={formik.handleSubmit}>
+      <Typography variant="h5" gutterBottom color="primary">
+        {i18next.t("create_administrator", "Create Administrator")}
+      </Typography>
+      <Grid container spacing={3}>
+        <Grid item xs={12}>
+          <TextField
+            variant="outlined"
+            margin="normal"
+            required
+            fullWidth
+            id="username"
+            label={i18next.t("username", "Username")}
+            name="username"
+            autoComplete="email"
+            autoFocus
+            {...formik.getFieldProps("username")}
+          />
+          {formik.touched.username && formik.errors.username ? (
+            <span>{formik.errors.username}</span>
+          ) : null}
+        </Grid>
+        <Grid item xs={6}>
+          <TextField
+            variant="outlined"
+            margin="normal"
+            required
+            fullWidth
+            name="password"
+            label={i18next.t("password", "Password")}
+            type="password"
+            id="password"
+            autoComplete="current-password"
+            {...formik.getFieldProps("password")}
+          />
+          {formik.touched.password && formik.errors.password ? (
+            <span>{formik.errors.password}</span>
+          ) : null}
+        </Grid>
+
+        <Grid item xs={6}>
+          <TextField
+            variant="outlined"
+            margin="normal"
+            required
+            fullWidth
+            name="confirmPassword"
+            label={i18next.t("confirm_password", "Confirm password")}
+            type="password"
+            id="confirmPassword"
+            autoComplete="current-password"
+            {...formik.getFieldProps("confirmPassword")}
+          />
+          {formik.touched.confirmPassword && formik.errors.confirmPassword ? (
+            <span>{formik.errors.confirmPassword}</span>
+          ) : null}
+        </Grid>
+      </Grid>
+
+      <Button
+        type="submit"
+        fullWidth
+        variant="contained"
+        color="primary"
+        className={classes.submit}
+      >
+        {i18next.t("continue", "Continue")}
+      </Button>
+    </form>
+  );
+}
diff --git a/jams-react-client/src/components/CustomizedSteppers/CustomizedSteppers.js b/jams-react-client/src/components/CustomizedSteppers/CustomizedSteppers.js
index cfe33d535902de40f81df71877031b7a8b0b76b4..914f6c76c392428002aac036fb06bb794daca181 100644
--- a/jams-react-client/src/components/CustomizedSteppers/CustomizedSteppers.js
+++ b/jams-react-client/src/components/CustomizedSteppers/CustomizedSteppers.js
@@ -13,6 +13,7 @@ import StepConnector from '@material-ui/core/StepConnector';
 import Button from '@material-ui/core/Button';
 import Typography from '@material-ui/core/Typography';
 
+import i18next from 'i18next';
 
 const useQontoStepIconStyles = makeStyles({
   root: {
@@ -137,7 +138,7 @@ const useStyles = makeStyles((theme) => ({
 }));
 
 function getSteps() {
-  return ['Create Administrator User', 'Certificate Authority Setup', 'Identity Management', 'Server Parameters'];
+  return [i18next.t("create_administrator_user", 'Create Administrator User'), i18next.t("certificate_authority_setup", 'Certificate Authority Setup'), i18next.t("identity_management", 'Identity Management'), i18next.t("server_parameters", 'Server Parameters')];
 }
 
 export default function CustomizedSteppers(props) {
diff --git a/jams-react-client/src/components/Devices/Devices.js b/jams-react-client/src/components/Devices/Devices.js
index 4a099a92e0b992f9c9317c5e2d062a5523c76ee3..b977666f67659d54215e260d548ca0a695d87868 100755
--- a/jams-react-client/src/components/Devices/Devices.js
+++ b/jams-react-client/src/components/Devices/Devices.js
@@ -32,6 +32,8 @@ import {
 } from "../../globalUrls";
 import axios from "axios";
 
+import i18next from "i18next";
+
 const useStyles = makeStyles(styles);
 
 export default function Devices(props) {
@@ -171,9 +173,9 @@ export default function Devices(props) {
             <Table className={classes.table}>
                 <TableHead>
                     <TableRow>
-                        <TableCell>Device Name</TableCell>
-                        <TableCell align="right">Status</TableCell>
-                        <TableCell align="right">Actions</TableCell>
+                        <TableCell>{i18next.t("device_name", "Device Name")}</TableCell>
+                        <TableCell align="right">{i18next.t("status", "Status")}</TableCell>
+                        <TableCell align="right">{i18next.t("actions", "Actions")}</TableCell>
                     </TableRow>
                 </TableHead>
                 {devices != null &&
@@ -206,7 +208,7 @@ export default function Devices(props) {
                                 </Tooltip>
                                 <Tooltip
                                     id="tooltip-top-start"
-                                    title="Revoke Device"
+                                    title={i18next.t("revoke_device", "Revoke Device")}
                                     placement="top"
                                     classes={{ tooltip: classes.tooltip }}
                                 >
@@ -229,7 +231,7 @@ export default function Devices(props) {
                 </TableBody>}
             </Table>
             <Dialog open={openEdit} onClose={handleClose} aria-labelledby="form-dialog-title">
-                <DialogTitle id="form-edit-dialog-title">Update Device Information</DialogTitle>
+                <DialogTitle id="form-edit-dialog-title">{i18next.t("update_device_information", "Update Device Information")}</DialogTitle>
                 <Formik initialValues={{
                     displayName: '',
                 }}
@@ -244,7 +246,7 @@ export default function Devices(props) {
                                                 autoFocus
                                                 margin="dense"
                                                 id="name"
-                                                label="Device Display Name"
+                                                label={i18next.t("device_display_name", "Device Display Name")}
                                                 fullWidth
                                                 onChange={setDisplayName(field.value)}
                                                 helperText={(errors.displayName && touched.displayName) && errors.displayName}
@@ -257,10 +259,10 @@ export default function Devices(props) {
                             </DialogContent>
                             <DialogActions>
                                 <Button onClick={handleCancel} color="primary">
-                                    Cancel
+                                    {i18next.t("cancel", "Cancel")}
                                 </Button>
                                 <Button onClick={() => validateField('displayName').then(() =>handleUpdate())} color="primary">
-                                    Update
+                                {i18next.t("update", "Update")}
                                 </Button>
                             </DialogActions>
                         </form>
@@ -268,18 +270,18 @@ export default function Devices(props) {
                 </Formik>
             </Dialog>
             <Dialog open={openRevoke} onClose={handleClose} aria-labelledby="form-dialog-title">
-                <DialogTitle id="form-revoke-dialog-title">Revoke Device</DialogTitle>
+                <DialogTitle id="form-revoke-dialog-title">{i18next.t("revoke_device", "Revoke Device")}</DialogTitle>
                 <DialogContent>
                     <DialogContentText>
-                        Are you sure you want to revoke this device?
+                        {i18next.t("are_you_sure_you_want_to_revoke_this_device", "Are you sure you want to revoke this device?")}
                     </DialogContentText>
                 </DialogContent>
                 <DialogActions>
                     <Button onClick={handleCancel} color="primary">
-                        Cancel
+                        {i18next.t("cancel", "Cancel")}
                     </Button>
                     <Button onClick={handleDeviceRevoke} color="primary">
-                        Confirm Revoke
+                        {i18next.t("confirm_revoke", "Confirm Revoke")}
                     </Button>
                 </DialogActions>
             </Dialog>
diff --git a/jams-react-client/src/components/Drawer/Drawer.js b/jams-react-client/src/components/Drawer/Drawer.js
index 342d1d71a36808055bf168ccc4ae4d0b42a503be..efc972bf1fa147dba30004b73d3f5fe710d27949 100644
--- a/jams-react-client/src/components/Drawer/Drawer.js
+++ b/jams-react-client/src/components/Drawer/Drawer.js
@@ -25,6 +25,8 @@ import auth from "auth.js";
 
 import { debounce } from "lodash";
 
+import i18next from "i18next";
+
 const useStyles = makeStyles({
   list: {
     width: 500,
@@ -322,7 +324,7 @@ export default function TemporaryDrawer(props) {
                 inputProps={{
                   placeholder: props.placeholder,
                   inputProps: {
-                    "aria-label": "Add a contact",
+                    "aria-label": i18next.t("add_a_contact", "Add a contact"),
                   },
                   onKeyUp: handleSearchUsers,
                 }}
diff --git a/jams-react-client/src/components/IdentityManagement/AdStorageForm.js b/jams-react-client/src/components/IdentityManagement/AdStorageForm.js
index c5a6824709a561b7d346fea7d5f44f3838212d3f..72eee660d0b888691c0ea558b8762720c69d19fd 100644
--- a/jams-react-client/src/components/IdentityManagement/AdStorageForm.js
+++ b/jams-react-client/src/components/IdentityManagement/AdStorageForm.js
@@ -7,12 +7,14 @@ import TextField from "@material-ui/core/TextField";
 import Radio from "@material-ui/core/Radio";
 import RadioGroup from "@material-ui/core/RadioGroup";
 
+import i18next from 'i18next';
+
 export default function AdStorageForm(props) {
   return (
     <Grid container spacing={3}>
       <Grid item xs={12}>
         <Typography variant="subtitle1" gutterBottom color="primary">
-          Active directory server informations
+        {i18next.t("active_directory_server_informations", "Active directory server informations")}
         </Typography>
       </Grid>
       <Grid item xs={6}>
@@ -22,7 +24,7 @@ export default function AdStorageForm(props) {
           required
           fullWidth
           id="port"
-          label="Port"
+          label={i18next.t("port", "Port")}
           name="port"
           autoComplete="port"
           value={props.values.port}
@@ -40,7 +42,7 @@ export default function AdStorageForm(props) {
           required
           fullWidth
           id="host"
-          label="Host"
+          label={i18next.t("host", "Host")}
           name="host"
           autoComplete="host"
           value={props.values.host}
@@ -58,7 +60,7 @@ export default function AdStorageForm(props) {
           required
           fullWidth
           id="adminusername"
-          label="Admin username"
+          label={i18next.t("admin_username", "Admin username")}
           name="adadminusername"
           autoComplete="adminusername"
           value={props.values.adadminusername}
@@ -78,7 +80,7 @@ export default function AdStorageForm(props) {
           required
           fullWidth
           id="password"
-          label="Password"
+          label={i18next.t("password", "Password")}
           name="adpassword"
           autoComplete="password"
           type="password"
@@ -99,7 +101,7 @@ export default function AdStorageForm(props) {
           required
           fullWidth
           id="domainname"
-          label="Domain Name"
+          label={i18next.t("domain_name", "Domain Name")}
           name="domainname"
           autoComplete="domainname"
           value={props.values.domainname}
@@ -126,12 +128,12 @@ export default function AdStorageForm(props) {
           <FormControlLabel
             value="true"
             control={<Radio color="primary" />}
-            label="Yes"
+            label={i18next.t("yes", "Yes")}
           />
           <FormControlLabel
             value="false"
             control={<Radio color="default" />}
-            label="No"
+            label={i18next.t("no", "No")}
           />
         </RadioGroup>
       </Grid>
diff --git a/jams-react-client/src/components/IdentityManagement/IdentityManagement.js b/jams-react-client/src/components/IdentityManagement/IdentityManagement.js
index b9fdb09ad6a7b6b916bc3131c2b679e344bb1ad1..d7993c097c3671b30d4beef669ca49a3756ea8eb 100644
--- a/jams-react-client/src/components/IdentityManagement/IdentityManagement.js
+++ b/jams-react-client/src/components/IdentityManagement/IdentityManagement.js
@@ -20,6 +20,8 @@ import AdStorageForm from "./AdStorageForm";
 import auth from "../../auth";
 import * as Yup from "yup";
 
+import i18next from 'i18next';
+
 const useStyles = makeStyles((theme) => ({
   paper: {
     marginTop: theme.spacing(8),
@@ -61,28 +63,28 @@ export default function IdentityManagement(props) {
   };
 
   const validationSchemaLDAPform = Yup.object().shape({
-    servername: Yup.string().required("Server name is required."),
-    ldapadminusername: Yup.string().required("Username is required."),
-    ldappassword: Yup.string().required("Password is required."),
-    basedn: Yup.string().required("Domain name is required."),
+    servername: Yup.string().required(i18next.t("servername_is_required", "Server name is required.")),
+    ldapadminusername: Yup.string().required(i18next.t("username_is_required", "Username is required.")),
+    ldappassword: Yup.string().required(i18next.t("password_is_required", "Password is required.")),
+    basedn: Yup.string().required(i18next.t("domain_name_is_required", "Domain name is required.")),
   });
 
   const validationSchemaADform = Yup.object().shape({
     port: Yup.number()
-      .typeError("Port must be a number.")
-      .positive("Port must be positive.")
-      .integer("Port must be an integer.")
-      .required("Port number is required."),
-    host: Yup.string().required("Host is required."),
-    adadminusername: Yup.string().required("Username is required."),
-    domainname: Yup.string().required("Domain name is required."),
-    adpassword: Yup.string().required("Password is required."),
+      .typeError(i18next.t("port_must_be_a_number", "Port must be a number."))
+      .positive(i18next.t("port_must_be_positive", "Port must be positive."))
+      .integer(i18next.t("port_must_be_an_integer", "Port must be an integer."))
+      .required(i18next.t("port_number_is_required", "Port number is required.")),
+    host: Yup.string().required(i18next.t("host_is_required", "Host is required.")),
+    adadminusername: Yup.string().required(i18next.t("username_is_required", "Username is required.")),
+    domainname: Yup.string().required(i18next.t("domain_name_is_required", "Domain name is required.")),
+    adpassword: Yup.string().required(i18next.t("password_is_required", "Password is required.")),
   });
 
   const directoryTypes = [
-    { value: 0, label: "Local Database" },
-    { value: 1, label: "LDAP Server" },
-    { value: 2, label: "Active Directory" },
+    { value: 0, label: i18next.t("local_database", "Local Database") },
+    { value: 1, label: i18next.t("ldap_server", "LDAP Server") },
+    { value: 2, label: i18next.t("active_directory", "Active Directory") },
   ];
 
   const directoryTypesItems = buildSelectMenuItems(directoryTypes);
@@ -219,7 +221,7 @@ export default function IdentityManagement(props) {
       })
       .catch(() => {
         props.setErrorMessage(
-          "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again."
+          i18next.t("information_appears_incorrect_connection_directory_failed", "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.")
         );
         props.setError(true);
       });
@@ -235,7 +237,7 @@ export default function IdentityManagement(props) {
       })
       .catch(() => {
         props.setErrorMessage(
-          "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again."
+          i18next.t("information_appears_incorrect_connection_directory_failed", "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.")
         );
         props.setError(true);
       });
@@ -281,12 +283,12 @@ export default function IdentityManagement(props) {
     return (
       <form className={classes.form} noValidate onSubmit={handleLocalSubmit}>
         <Typography variant="h5" gutterBottom color="primary">
-          Identity Management
+        {i18next.t("identity_management", "Identity Management")}
         </Typography>
         <Grid container spacing={3}>
           <Grid item xs={12}>
             <Typography variant="body1" gutterBottom>
-              Select the type of user directory to be integrated with JAMS
+            {i18next.t("select_type_of_user_directory", "Select the type of user directory to be integrated with JAMS")}
             </Typography>
             <Select
               labelId="demo-simple-select-label"
@@ -309,7 +311,7 @@ export default function IdentityManagement(props) {
           color="primary"
           className={classes.submit}
         >
-          Set identity parameters
+          {i18next.t("set_identity_parameters", "Set identity parameters")}
         </Button>
       </form>
     );
@@ -334,12 +336,12 @@ export default function IdentityManagement(props) {
           return (
             <form className={classes.form} noValidate onSubmit={handleSubmit}>
               <Typography variant="h5" gutterBottom color="primary">
-                Identity Management
+                {i18next.t("identity_management", "Identity Management")}
               </Typography>
               <Grid container spacing={3}>
                 <Grid item xs={12}>
                   <Typography variant="body1" gutterBottom>
-                    Select the type of user directory to be integrated with JAMS
+                  {i18next.t("select_type_of_user_directory", "Select the type of user directory to be integrated with JAMS")}
                   </Typography>
                   <Select
                     labelId="demo-simple-select-label"
@@ -359,7 +361,7 @@ export default function IdentityManagement(props) {
                 color="primary"
                 className={classes.submit}
               >
-                Set identity parameters
+                {i18next.t("set_identity_parameters", "Set identity parameters")}
               </Button>
             </form>
           );
@@ -387,12 +389,12 @@ export default function IdentityManagement(props) {
           return (
             <form className={classes.form} noValidate onSubmit={handleSubmit}>
               <Typography variant="h5" gutterBottom color="primary">
-                Identity Management
+                {i18next.t("identity_management", "Identity Management")}
               </Typography>
               <Grid container spacing={3}>
                 <Grid item xs={12}>
                   <Typography variant="body1" gutterBottom>
-                    Select the type of user directory to be integrated with JAMS
+                  {i18next.t("select_type_of_user_directory", "Select the type of user directory to be integrated with JAMS")}
                   </Typography>
                   <Select
                     labelId="demo-simple-select-label"
@@ -412,7 +414,7 @@ export default function IdentityManagement(props) {
                 color="primary"
                 className={classes.submit}
               >
-                Set identity parameters
+                {i18next.t("set_identity_parameters", "Set identity parameters")}
               </Button>
             </form>
           );
diff --git a/jams-react-client/src/components/IdentityManagement/LdapStorageForm.js b/jams-react-client/src/components/IdentityManagement/LdapStorageForm.js
index fe862b9ef22406df9520bf547428c37caae364ca..fbf06bb948971cd0f9e808e14e664ed8817f5aad 100644
--- a/jams-react-client/src/components/IdentityManagement/LdapStorageForm.js
+++ b/jams-react-client/src/components/IdentityManagement/LdapStorageForm.js
@@ -9,12 +9,14 @@ import RadioGroup from '@material-ui/core/RadioGroup';
 import Select from '@material-ui/core/Select';
 import CustomPopupState from '../CustomPopupState/CustomPopupState'
 
+import i18next from 'i18next';
+
 export default function LdapStorageForm(props) {
 
     return (
         <Grid container spacing={3}>
             <Grid item xs={12}>
-                <Typography variant="subtitle1" gutterBottom color="primary">LDAP Server informations</Typography>
+    <Typography variant="subtitle1" gutterBottom color="primary">{i18next.t("ldap_server_information", "LDAP Server informations")}</Typography>
             </Grid>
             <Grid item xs={12}>
                 <TextField
@@ -23,7 +25,7 @@ export default function LdapStorageForm(props) {
                     required
                     fullWidth
                     id="servername"
-                    label="Server Address"
+                    label={i18next.t("server_address", "Server address")}
                     name="servername"
                     autoComplete="servername"
                     value={props.values.servername}
@@ -40,7 +42,7 @@ export default function LdapStorageForm(props) {
                     required
                     fullWidth
                     id="adminusername"
-                    label="Administrator Username"
+                    label={i18next.t("administrator_username", "Administrator username")}
                     name="ldapadminusername"
                     autoComplete="adminusername"
                     value={props.values.ldapadminusername}
@@ -56,7 +58,7 @@ export default function LdapStorageForm(props) {
                     required
                     fullWidth
                     id="password"
-                    label="Password"
+                    label={i18next.t("password", "Password")}
                     name="ldappassword"
                     autoComplete="password"
                     type="password"
@@ -70,7 +72,7 @@ export default function LdapStorageForm(props) {
                 <TextField
                     variant="outlined"
                     id="basedn"
-                    label="Base DN (Please use LDAP convention)"
+                    label={i18next.t("base_dn_please_use_ldap_convention", "Base DN (Please use LDAP convention)")}
                     name="basedn"
                     autoComplete="basedn"
                     required
@@ -84,12 +86,12 @@ export default function LdapStorageForm(props) {
             <Grid item xs={12}>
                 <Typography variant="subtitle1" gutterBottom color="primary">Use Start TLS</Typography>
                 <RadioGroup row aria-label="useStartTLS" name="useStartTLS" value={props.useStartTLS} onChange={props.handleUseStartTLSChange} >
-                    <FormControlLabel value="true" control={<Radio color="primary"/>} label="Yes" />
-                    <FormControlLabel value="false" control={<Radio color="default"/>} label="No" />
+                    <FormControlLabel value="true" control={<Radio color="primary"/>} label={i18next.t("yes", "Yes")} />
+                    <FormControlLabel value="false" control={<Radio color="default"/>} label={i18next.t("no", "No")} />
                 </RadioGroup>
             </Grid>
             <Grid item xs={12}>
-                <Typography variant="subtitle1" gutterBottom color="primary">Filter<CustomPopupState message="This is the field in your LDAP structure which contains the username."/></Typography>
+                <Typography variant="subtitle1" gutterBottom color="primary">Filter<CustomPopupState message={i18next.t("field_ldap_structure_contains_username", "This is the field in your LDAP structure which contains the username.")}/></Typography>
                 <Select
                     labelId="filter-ldap-select"
                     fullWidth
diff --git a/jams-react-client/src/components/IdentityManagement/LocalStorageForm.js b/jams-react-client/src/components/IdentityManagement/LocalStorageForm.js
index ac410572ce07c41897eb79fc4081e48636447ec7..b871d379a362615f2a692c05fd039d87011a7f19 100644
--- a/jams-react-client/src/components/IdentityManagement/LocalStorageForm.js
+++ b/jams-react-client/src/components/IdentityManagement/LocalStorageForm.js
@@ -5,13 +5,14 @@ import Typography from '@material-ui/core/Typography';
 import Grid from '@material-ui/core/Grid';
 import CustomPopupState from '../CustomPopupState/CustomPopupState'
 
+import i18next from 'i18next';
 
 export default function LocalStorageForm(props) {
     
     return (
             <Grid container spacing={3}>
                 <Grid item xs={12}>
-                    <Typography variant="subtitle1" gutterBottom color="primary">Advanced settings</Typography>
+                    <Typography variant="subtitle1" gutterBottom color="primary">{i18next.t("advanced_settings", "Advanced settings")}</Typography>
                 </Grid>
                 <Grid item xs={12}>
                     <FormControlLabel
@@ -23,9 +24,9 @@ export default function LocalStorageForm(props) {
                         color="primary"
                         />
                     }
-                    label="Use public nameserver"
+                    label={i18next.t("use_public_nameserver", "Use public nameserver")}
                     />
-                    <CustomPopupState message="Check this box if you want to register your usernames on Jami's public nameserver."/>
+                    <CustomPopupState message={i18next.t("check_box_register_usernames_on_jami_public_nameserver", "Check this box if you want to register your usernames on Jami's public nameserver.")}/>
                 </Grid>
             </Grid>
     );
diff --git a/jams-react-client/src/components/LanguagePicker/LanguagePicker.js b/jams-react-client/src/components/LanguagePicker/LanguagePicker.js
new file mode 100644
index 0000000000000000000000000000000000000000..af34750ea1e4d62807b10c399c50e9d1c86630c5
--- /dev/null
+++ b/jams-react-client/src/components/LanguagePicker/LanguagePicker.js
@@ -0,0 +1,89 @@
+import React from "react";
+import { useHistory } from "react-router-dom";
+import { makeStyles } from "@material-ui/core/styles";
+
+import Button from "@material-ui/core/Button";
+import Menu from "@material-ui/core/Menu";
+import MenuItem from "@material-ui/core/MenuItem";
+import PopupState, { bindTrigger, bindMenu } from "material-ui-popup-state";
+
+import TranslateIcon from "@material-ui/icons/Translate";
+
+import i18next from "i18next";
+
+import { useTranslation } from "react-i18next";
+
+const languages = [
+  {
+    value: "en",
+    label: "English",
+  },
+  {
+    value: "fr",
+    label: "Francais",
+  },
+  {
+    value: "es",
+    label: "Español",
+  },
+];
+
+const useStyles = makeStyles((theme) => ({
+  root: {
+    "& .MuiTextField-root": {
+      margin: theme.spacing(1),
+      width: "25ch",
+      backgrounColor: "white",
+    },
+  },
+}));
+
+export default function LanguagePicker() {
+  const history = useHistory();
+  const [language, setLanguage] = React.useState(i18next.language || window.localStorage.i18nextLng || "");
+
+  const { i18n } = useTranslation();
+
+  const changeLanguage = (lng) => {
+    i18n.changeLanguage(lng);
+  };
+
+  const handleChange = (value) => {
+    setLanguage(value);
+    changeLanguage(value);
+    history.push("/");
+  };
+
+  return (
+    <PopupState variant="popover" popupId="demo-popup-menu">
+      {(popupState) => (
+        <React.Fragment>
+          <Button
+            variant="contained"
+            color="default"
+            fullWidth
+            startIcon={<TranslateIcon />}
+            {...bindTrigger(popupState)}
+          >
+            {languages.map((option) => {
+              if (option.value === language) {
+                return option.label;
+              }
+            })}
+          </Button>
+          <Menu {...bindMenu(popupState)}>
+            {languages.map((option) => (
+              <MenuItem
+                key={option.value}
+                value={option.value}
+                onClick={() => handleChange(option.value)}
+              >
+                {option.label}
+              </MenuItem>
+            ))}
+          </Menu>
+        </React.Fragment>
+      )}
+    </PopupState>
+  );
+}
diff --git a/jams-react-client/src/components/ServerParameters/ServerParameters.js b/jams-react-client/src/components/ServerParameters/ServerParameters.js
index 0a19bae516a126e7f1f46a46bd6f20da5952babe..a18eb623c19f5bb283128e04240a58cbe389f3ba 100644
--- a/jams-react-client/src/components/ServerParameters/ServerParameters.js
+++ b/jams-react-client/src/components/ServerParameters/ServerParameters.js
@@ -18,6 +18,8 @@ import { api_path_post_install_server } from "../../globalUrls";
 import auth from "auth";
 import * as Yup from "yup";
 
+import i18next from 'i18next';
+
 const useStyles = makeStyles((theme) => ({
   paper: {
     marginTop: theme.spacing(8),
@@ -42,29 +44,29 @@ export default function ServerParameters(props) {
   // Formik validation fields
   const initialValues = { domain: window.location.origin };
   const validationSchema = Yup.object().shape({
-    domain: Yup.string().required("Domain is required."),
+    domain: Yup.string().required(i18next.t("domain_is_required", "Domain is required.")),
   });
 
   const certificateRevocationTypes = [
-    { value: 300000, label: "5 minutes" },
-    { value: 600000, label: "10 minutes" },
-    { value: 900000, label: "15 minutes" },
-    { value: 1800000, label: "30 minutes" },
-    { value: 3600000, label: "60 minutes" },
+    { value: 300000, label: i18next.t("5_minutes", "5 minutes") },
+    { value: 600000, label: i18next.t("10_minutes", "10 minutes") },
+    { value: 900000, label: i18next.t("15_minutes", "15 minutes") },
+    { value: 1800000, label: i18next.t("30_minutes", "30 minutes") },
+    { value: 3600000, label: i18next.t("60_minutes", "60 minutes") },
   ];
 
   const deviceLifetimeTypes = [
-    { value: 2629746000, label: "1 Month" },
-    { value: 7889238000, label: "3 Months" },
-    { value: 15778476000, label: "6 Months" },
-    { value: 31556952000, label: "1 Year" },
-    { value: 157784760000, label: "5 Years" },
+    { value: 2629746000, label: i18next.t("1_month", "1 month") },
+    { value: 7889238000, label: i18next.t("3_months", "3 months") },
+    { value: 15778476000, label: i18next.t("6_months", "6 months") },
+    { value: 31556952000, label: i18next.t("1_year", "1 year") },
+    { value: 157784760000, label: i18next.t("5_years", "5 years") },
   ];
 
   const userAccountLifetimeTypes = [
-    { value: 31556952000, label: "1 Year" },
-    { value: 157784760000, label: "5 Years" },
-    { value: 315569520000, label: "10 Years" },
+    { value: 31556952000, label: i18next.t("1_year", "1 year") },
+    { value: 157784760000, label: i18next.t("5_years", "5 years") },
+    { value: 315569520000, label: i18next.t("10_years", "10 years") },
   ];
 
   const certificateRevocationTypesItems = tool.buildSelectMenuItems(
@@ -131,7 +133,7 @@ export default function ServerParameters(props) {
         });
     } else {
       props.setError(true);
-      props.setErrorMessage("Please enter a valid CORS domain URL.");
+      props.setErrorMessage(i18next.t("please_enter_valid_cors_domain_url", "Please enter a valid CORS domain URL."));
     }
     // Check https://www.geeksforgeeks.org/file-uploading-in-react-js/ for the file upload
   }
@@ -178,19 +180,17 @@ export default function ServerParameters(props) {
         return (
           <form className={classes.form} noValidate onSubmit={handleSubmit}>
             <Typography variant="h5" gutterBottom color="primary">
-              Server Parameters
+            {i18next.t("server_parameters", "Server Parameters")}
             </Typography>
             <Typography variant="body1" gutterBottom>
-              The global parameters cover the general configuration of the
-              server's engine.
+            {i18next.t("global_parameters_cover_general_configuration_of_servers_engine", "The global parameters cover the general configuration of the server's engine.")}  
             </Typography>
             <Typography variant="subtitle1" gutterBottom>
-              CORS Domain Name
-              <CustomPopupState message="Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates." />
+            {i18next.t("cors_domain_name", "CORS domain name")}
+              <CustomPopupState message={i18next.t("set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps", "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.")} />
             </Typography>
             <Typography variant="body1" gutterBottom>
-              The domain name of your web client server. Requires http:// or
-              https://
+            {i18next.t("domain_name_of_web_client_server", "The domain name of your web client server. Requires http:// or https://")}
             </Typography>
             <TextField
               variant="outlined"
@@ -198,7 +198,7 @@ export default function ServerParameters(props) {
               required
               fullWidth
               id="domain"
-              label="Domain"
+              label={i18next.t("domain", "Domain")}
               name="domain"
               autoComplete="domain"
               autoFocus
@@ -208,8 +208,8 @@ export default function ServerParameters(props) {
               helperText={errors.domain && touched.domain && errors.domain}
             />
             <Typography variant="subtitle1" gutterBottom>
-              Certificate Revocation List Lifetime
-              <CustomPopupState message="Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date." />
+            {i18next.t("certificate_revocation_list_lifetime", "Certificate Revocation List Lifetime")}
+              <CustomPopupState message={i18next.t("set_liftetime_crl_list_certificates_revoked", "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.")} />
             </Typography>
             <Select
               labelId="certificate-revocation-select-label"
@@ -220,7 +220,7 @@ export default function ServerParameters(props) {
               children={certificateRevocationTypesItems}
             />
             <Typography variant="subtitle1" gutterBottom>
-              Device Lifetime
+              {i18next.t("device_lifetime", "Device lifetime")}
             </Typography>
             <Select
               labelId="device-lifetime-select-label"
@@ -231,7 +231,7 @@ export default function ServerParameters(props) {
               children={deviceLifetimeTypesItems}
             />
             <Typography variant="subtitle1" gutterBottom>
-              User Account Lifetime
+              {i18next.t("user_account_lifetime", "User account lifetime")}
             </Typography>
             <Select
               labelId="user-account-lifetime-select-label"
@@ -244,12 +244,11 @@ export default function ServerParameters(props) {
             />
             {userlifeDisabled ? (
               <span class="spanError">
-                {" "}
-                Account lifetime should be > to device lifetime.
+                {i18next.t("account_lifetime_should_be_bigger_to_device_lifetime", "The account lifetime should be longer than the Device lifetime.")}
               </span>
             ) : null}
             <Typography variant="subtitle1" gutterBottom>
-              SIP Configuration Template
+              {i18next.t("sip_configuration_template", "SIP Configuration Template")}
             </Typography>
             <Input
               fullWidth
@@ -264,7 +263,7 @@ export default function ServerParameters(props) {
               color="primary"
               className={classes.submit}
             >
-              Set Server Parameters
+              {i18next.t("set_server_parameters", "Set Server Parameters")}
             </Button>
           </form>
         );
diff --git a/jams-react-client/src/components/Sidebar/Sidebar.js b/jams-react-client/src/components/Sidebar/Sidebar.js
index 05ea5f2f942973909b419af797b6b80303159e81..2d7516357210e1fc875ed89523ff58ef2cb2ed08 100755
--- a/jams-react-client/src/components/Sidebar/Sidebar.js
+++ b/jams-react-client/src/components/Sidebar/Sidebar.js
@@ -1,6 +1,6 @@
 /*eslint-disable*/
 import React from "react";
-import { useHistory } from 'react-router-dom'
+import { useHistory } from "react-router-dom";
 import classNames from "classnames";
 import PropTypes from "prop-types";
 import { NavLink } from "react-router-dom";
@@ -16,14 +16,17 @@ import Icon from "@material-ui/core/Icon";
 // core components
 import AdminNavbarLinks from "components/Navbars/AdminNavbarLinks.js";
 import RTLNavbarLinks from "components/Navbars/RTLNavbarLinks.js";
-import ExitToAppIcon from '@material-ui/icons/ExitToApp';
-import UpdateIcon from '@material-ui/icons/Update';
+import ExitToAppIcon from "@material-ui/icons/ExitToApp";
+import UpdateIcon from "@material-ui/icons/Update";
 
 import styles from "assets/jss/material-dashboard-react/components/sidebarStyle.js";
 
 import auth from "auth";
 import Snackbar from "@material-ui/core/Snackbar/Snackbar";
 
+import LanguagePicker from "../LanguagePicker/LanguagePicker";
+
+import i18next from "i18next";
 
 const useStyles = makeStyles(styles);
 
@@ -34,21 +37,20 @@ export default function Sidebar(props) {
   const history = useHistory();
 
   const handleCloseProfile = () => {
-    auth.logout(() => { history.push("/") })
+    auth.logout(() => {
+      history.push("/");
+    });
   };
 
   const handleListItemClick = (e, layout, path) => {
     e.preventDefault();
-    history.push(layout+path.substring(0, 2))
+    history.push(layout + path.substring(0, 2));
   };
 
   React.useEffect(() => {
-
-      if(auth.isUpdateAvailable() && auth.hasAdminScope())
-          setOpen(true)
-
+    if (auth.isUpdateAvailable() && auth.hasAdminScope()) setOpen(true);
   }, [mainPanel]);
-  
+
   // verifies if routeName is the one active (in browser input)
   function activeRoute(routeName) {
     return window.location.href.indexOf(routeName) > -1 ? true : false;
@@ -62,100 +64,115 @@ export default function Sidebar(props) {
         if (prop.path === "/upgrade-to-pro") {
           activePro = classes.activePro + " ";
           listItemClasses = classNames({
-            [" " + classes[color]]: true
+            [" " + classes[color]]: true,
           });
         } else {
           listItemClasses = classNames({
-            [" " + classes[color]]: activeRoute(prop.layout + prop.path)
+            [" " + classes[color]]: activeRoute(prop.layout + prop.path),
           });
         }
         const whiteFontClasses = classNames({
-          [" " + classes.whiteFont]: activeRoute(prop.layout + prop.path)
+          [" " + classes.whiteFont]: activeRoute(prop.layout + prop.path),
         });
         return (
-            <div className={classes.wrapper}>
-              {props.updating && <Snackbar
-                  anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
-                  open={open}
-                  message={props.snackbarMessage}
-                  key={'bottomright'}
-              >
-              </Snackbar>}
+          <div className={classes.wrapper}>
+            {props.updating && (
+              <Snackbar
+                anchorOrigin={{ vertical: "bottom", horizontal: "right" }}
+                open={open}
+                message={props.snackbarMessage}
+                key={"bottomright"}
+              ></Snackbar>
+            )}
 
-              <NavLink
-                to={prop.layout + prop.path}
-                className={activePro + classes.item}
-                activeClassName="active"
-                key={key}
+            <NavLink
+              to={prop.layout + prop.path}
+              className={activePro + classes.item}
+              activeClassName="active"
+              key={key}
+            >
+              <ListItem
+                button
+                className={classes.itemLink + listItemClasses}
+                onClick={(e) => handleListItemClick(e, prop.layout, prop.path)}
               >
-                <ListItem button className={classes.itemLink + listItemClasses} onClick={e => handleListItemClick(e, prop.layout, prop.path)}>
-                  {typeof prop.icon === "string" ? (
-                    <Icon
-                      className={classNames(classes.itemIcon, whiteFontClasses, {
-                        [classes.itemIconRTL]: props.rtlActive
-                      })}
-                    >
-                      {prop.icon}
-                    </Icon>
-                  ) : (
-                      <prop.icon
-                        className={classNames(classes.itemIcon, whiteFontClasses, {
-                          [classes.itemIconRTL]: props.rtlActive
-                        })}
-                      />
-                    )}
-                  <ListItemText
-                    primary={props.rtlActive ? prop.rtlName : prop.name}
-                    className={classNames(classes.itemText, whiteFontClasses, {
-                      [classes.itemTextRTL]: props.rtlActive
+                {typeof prop.icon === "string" ? (
+                  <Icon
+                    className={classNames(classes.itemIcon, whiteFontClasses, {
+                      [classes.itemIconRTL]: props.rtlActive,
+                    })}
+                  >
+                    {prop.icon}
+                  </Icon>
+                ) : (
+                  <prop.icon
+                    className={classNames(classes.itemIcon, whiteFontClasses, {
+                      [classes.itemIconRTL]: props.rtlActive,
                     })}
-                    disableTypography={true}
                   />
-                </ListItem>
-              </NavLink>
-            </div>
+                )}
+                <ListItemText
+                  primary={props.rtlActive ? prop.rtlName : prop.name}
+                  className={classNames(classes.itemText, whiteFontClasses, {
+                    [classes.itemTextRTL]: props.rtlActive,
+                  })}
+                  disableTypography={true}
+                />
+              </ListItem>
+            </NavLink>
+          </div>
         );
       })}
 
-      {open &&
-        <ListItem button className={classes.itemLink} onClick={e => {
-            props.handleQuery()
-            props.setOpenUpdate(true)
-            }}>
-            <Icon
+      {open && (
+        <ListItem
+          button
+          className={classes.itemLink}
+          onClick={(e) => {
+            props.handleQuery();
+            props.setOpenUpdate(true);
+          }}
+        >
+          <Icon
             className={classNames(classes.itemIcon, {
-                [classes.itemIconRTL]: false
+              [classes.itemIconRTL]: false,
             })}
-            >
-          <UpdateIcon />
-            </Icon>
+          >
+            <UpdateIcon />
+          </Icon>
           <ListItemText
             primary="Update now"
             className={classNames(classes.itemText, {
-                [classes.itemTextRTL]: false
+              [classes.itemTextRTL]: false,
             })}
             disableTypography={true}
           />
         </ListItem>
-      }
+      )}
 
-
-<ListItem button className={classes.itemLink} onClick={handleCloseProfile}>
+      <ListItem
+        button
+        className={classes.itemLink}
+        onClick={handleCloseProfile}
+      >
         <Icon
           className={classNames(classes.itemIcon, {
-            [classes.itemIconRTL]: false
+            [classes.itemIconRTL]: false,
           })}
         >
-        <ExitToAppIcon />
+          <ExitToAppIcon />
         </Icon>
         <ListItemText
-          primary="Logout"
+          primary={i18next.t("Logout", "Logout")}
           className={classNames(classes.itemText, {
-            [classes.itemTextRTL]: false
+            [classes.itemTextRTL]: false,
           })}
           disableTypography={true}
         />
       </ListItem>
+      <ListItem alignItems="center">
+        <LanguagePicker />
+      </ListItem>
     </List>
   );
   var brand = (
@@ -163,7 +180,7 @@ export default function Sidebar(props) {
       <a
         href="/"
         className={classNames(classes.logoLink, {
-          [classes.logoLinkRTL]: props.rtlActive
+          [classes.logoLinkRTL]: props.rtlActive,
         })}
         target="_blank"
       >
@@ -183,12 +200,12 @@ export default function Sidebar(props) {
           open={props.open}
           classes={{
             paper: classNames(classes.drawerPaper, {
-              [classes.drawerPaperRTL]: props.rtlActive
-            })
+              [classes.drawerPaperRTL]: props.rtlActive,
+            }),
           }}
           onClose={props.handleDrawerToggle}
           ModalProps={{
-            keepMounted: true // Better open performance on mobile.
+            keepMounted: true, // Better open performance on mobile.
           }}
         >
           {brand}
@@ -211,8 +228,8 @@ export default function Sidebar(props) {
           open
           classes={{
             paper: classNames(classes.drawerPaper, {
-              [classes.drawerPaperRTL]: props.rtlActive
-            })
+              [classes.drawerPaperRTL]: props.rtlActive,
+            }),
           }}
         >
           {brand}
@@ -230,12 +247,12 @@ export default function Sidebar(props) {
 }
 
 Sidebar.propTypes = {
-    rtlActive: PropTypes.bool,
-    handleDrawerToggle: PropTypes.func,
-    bgColor: PropTypes.oneOf(["purple", "blue", "green", "orange", "red"]),
-    logo: PropTypes.string,
-    image: PropTypes.string,
-    logoText: PropTypes.string,
-    routes: PropTypes.arrayOf(PropTypes.object),
-    open: PropTypes.bool
+  rtlActive: PropTypes.bool,
+  handleDrawerToggle: PropTypes.func,
+  bgColor: PropTypes.oneOf(["purple", "blue", "green", "orange", "red"]),
+  logo: PropTypes.string,
+  image: PropTypes.string,
+  logoText: PropTypes.string,
+  routes: PropTypes.arrayOf(PropTypes.object),
+  open: PropTypes.bool,
 };
diff --git a/jams-react-client/src/i18n.js b/jams-react-client/src/i18n.js
new file mode 100644
index 0000000000000000000000000000000000000000..3cf3a164b44daa597292daf37f862682c9d38f5e
--- /dev/null
+++ b/jams-react-client/src/i18n.js
@@ -0,0 +1,40 @@
+import i18next from "i18next";
+import LanguageDetector from "i18next-browser-languagedetector";
+import { initReactI18next } from "react-i18next";
+
+import translationEN from "./locales/en/translation.json";
+import translationFR from "./locales/fr/translation.json";
+import translationES from "./locales/es/translation.json";
+
+const resources = {
+  en: {
+    translation: translationEN,
+  },
+  fr: {
+    translation: translationFR,
+  },
+  es: {
+    translation: translationES,
+  },
+};
+
+i18next
+  .use(LanguageDetector)
+  .use(initReactI18next)
+  .init({
+    resources,
+    fallbackLng: "en",
+    lookupCookie: "i18next",
+    lookupLocalStorage: "i18nextLng",
+    lookupSessionStorage: "i18nextLng",
+    debug: true,
+    detection: {
+      order: ["cookie", "localStorage", "sessionStorage", "navigator"],
+      cache: ["cookie"],
+    },
+    interpolation: {
+      escapeValue: false,
+    },
+  });
+
+export default i18next;
diff --git a/jams-react-client/src/index.js b/jams-react-client/src/index.js
index 805cc2251ec7ef3c7c06bf46b6c1dd14f165cbce..c9561a1e18f4b0d49080dc5df211dcdfc674fa16 100644
--- a/jams-react-client/src/index.js
+++ b/jams-react-client/src/index.js
@@ -15,13 +15,13 @@
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 
 */
-import React from "react";
+import React, { Suspense } from "react";
 import ReactDOM from "react-dom";
 import { createBrowserHistory } from "history";
 import { Router, Route, Switch, Redirect } from "react-router-dom";
-import { ProtectedRoute } from 'protected.route'
-import { ConfiguredRoute } from 'configured.route'
-import auth from './auth'
+import { ProtectedRoute } from "protected.route";
+import { ConfiguredRoute } from "configured.route";
+import auth from "./auth";
 
 // core components
 import Admin from "layouts/Admin.js";
@@ -30,22 +30,25 @@ import SignIn from "layouts/SignIn.js";
 
 import "assets/css/material-dashboard-react.css?v=1.9.0";
 
+import "./i18n";
+
 const hist = createBrowserHistory();
 auth.isServerInstalled(() => {
   auth.checkAdminAccountStatus(() => {
     auth.checkLastKnownStep(() => {
-          ReactDOM.render(
-            <Router history={hist}>
-              <Switch>
-                <ConfiguredRoute path="/signin" component={SignIn} />
-                <ProtectedRoute path="/admin" component={Admin} />
-                {/*<Route path="/rtl" component={RTL} />*/}
-                <Redirect from="/" to="/signin" />
-              </Switch>
-            </Router>,
-            document.getElementById("root")
-          );;
+      ReactDOM.render(
+        <Suspense fallback={<div>Loading...</div>}>
+          <Router history={hist}>
+            <Switch>
+              <ConfiguredRoute path="/signin" component={SignIn} />
+              <ProtectedRoute path="/admin" component={Admin} />
+              {/*<Route path="/rtl" component={RTL} />*/}
+              <Redirect from="/" to="/signin" />
+            </Switch>
+          </Router>
+        </Suspense>,
+        document.getElementById("root")
+      );
     });
   });
 });
-
diff --git a/jams-react-client/src/layouts/Admin.js b/jams-react-client/src/layouts/Admin.js
index d910e86b95858740dd2c3e54e2772f83f516d18d..dda6dfcd6782504cbba9a271ae4f266e7b305941 100644
--- a/jams-react-client/src/layouts/Admin.js
+++ b/jams-react-client/src/layouts/Admin.js
@@ -11,7 +11,17 @@ import Footer from "components/Footer/Footer.js";
 import Sidebar from "components/Sidebar/Sidebar.js";
 import Snackbar from "@material-ui/core/Snackbar";
 
-import routes from "routes.js";
+// @material-ui/icons
+import Person from "@material-ui/icons/Person";
+import Group from "@material-ui/icons/Group";
+import AllInbox from "@material-ui/icons/AllInbox";
+import SettingsIcon from "@material-ui/icons/Settings";
+// core components/views for Admin layout
+import Users from "views/Users/Users.js";
+import Groups from "views/Groups/Groups.js";
+import Blueprints from "views/Blueprints/Blueprints.js";
+import Settings from "views/Settings/Settings.js";
+// core components/views for RTL layout
 
 import styles from "assets/jss/material-dashboard-react/layouts/adminStyle.js";
 
@@ -40,29 +50,9 @@ import DialogActions from "@material-ui/core/DialogActions/DialogActions";
 import DialogContentText from "@material-ui/core/DialogContentText/DialogContentText";
 import Button from "@material-ui/core/Button";
 
-let ps;
+import i18next from "i18next";
 
-const switchRoutes = (
-  <Switch>
-    {routes.map((prop, key) => {
-      if (prop.layout === "/admin") {
-        return (
-          <Route
-            path={prop.layout + prop.path}
-            component={prop.component}
-            key={key}
-          />
-        );
-      }
-      return null;
-    })}
-    <Redirect from="/users" to="/admin/users" />
-    <Redirect from="/admin/u" to="/admin/users" />
-    <Redirect from="/admin/g" to="/admin/groups" />
-    <Redirect from="/admin/b" to="/admin/blueprints" />
-    <Redirect from="/admin/s" to="/admin/settings" />
-  </Switch>
-);
+let ps;
 
 const useStyles = makeStyles(styles);
 
@@ -90,6 +80,63 @@ export default function Admin({ ...rest }) {
   const [query, setQuery] = React.useState(false);
   const [snackbarMessage, setSnackbarMessage] = React.useState("");
 
+  const routes = [
+    {
+      path: "/users",
+      name: i18next.t("users", "Users"),
+      rtlName: "المستخدمون",
+      icon: Person,
+      component: Users,
+      layout: "/admin",
+    },
+    {
+      path: "/groups",
+      name: i18next.t("groups", "Groups"),
+      rtlName: "مجموعات",
+      icon: Group,
+      component: Groups,
+      layout: "/admin",
+    },
+    {
+      path: "/blueprints",
+      name: i18next.t("blueprints", "Blueprints"),
+      rtlName: "المخططات",
+      icon: AllInbox,
+      component: Blueprints,
+      layout: "/admin",
+    },
+    {
+      path: "/settings",
+      name: i18next.t("settings", "Settings"),
+      rtlName: "حضانة بيض",
+      icon: SettingsIcon,
+      component: Settings,
+      layout: "/admin",
+    },
+  ];
+
+  const switchRoutes = (
+    <Switch>
+      {routes.map((prop, key) => {
+        if (prop.layout === "/admin") {
+          return (
+            <Route
+              path={prop.layout + prop.path}
+              component={prop.component}
+              key={key}
+            />
+          );
+        }
+        return null;
+      })}
+      <Redirect from="/users" to="/admin/users" />
+      <Redirect from="/admin/u" to="/admin/users" />
+      <Redirect from="/admin/g" to="/admin/groups" />
+      <Redirect from="/admin/b" to="/admin/blueprints" />
+      <Redirect from="/admin/s" to="/admin/settings" />
+    </Switch>
+  );
+
   const handleImageClick = (image) => {
     setImage(image);
   };
@@ -118,22 +165,24 @@ export default function Admin({ ...rest }) {
   const handleQuery = () => {
     setQuery(true);
     if (auth.hasAdminScope()) {
-        if (auth.isActivated()) {
-            setDialogMessage(
-                "A new version of JAMS is available. Would you like to update now?"
-            );
-            setMessageYes("Update Now");
-            setMessageNo("Update Later");
-        } else {
-            setDialogMessage(
-                "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?"
-            );
-            setMessageYes("Yes, go to Jami Store");
-            setMessageNo("No thanks");
-        }
-    } else
-        setDialogMessage("You are not allowed to access this section. Please contact your administrator to get administrator privileges.");
-
+      if (auth.isActivated()) {
+        setDialogMessage(
+          i18next.t("new_version_jams_available", "A new version of JAMS is available. Would you like to update now?")
+        );
+        setMessageYes("Update Now");
+        setMessageNo("Update Later");
+      } else {
+        setDialogMessage(
+          i18next.t("running_community_version_jams", "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?")
+        );
+        setMessageYes("Yes, go to Jami Store");
+        setMessageNo("No thanks");
+      }
+    } else {
+      setDialogMessage(
+        i18next.t("you_are_not_allowed_to_access_this_section", "You are not allowed to access this section. Please contact your administrator to get administrator privileges.")
+      );
+    }
   };
 
   // initialize and destroy the PerfectScrollbar plugin
@@ -142,7 +191,7 @@ export default function Admin({ ...rest }) {
       auth.getUpdates(() => {
         if (auth.isUpdateAvailable()) {
           setOpen(true);
-          setMessage("An update is available for JAMS.");
+          setMessage(i18next.t("an_update_is_available_for_jams", "An update is available for JAMS."));
         }
       });
     });
@@ -171,14 +220,14 @@ export default function Admin({ ...rest }) {
   const handleUpdate = () => {
     setQuery(false);
     if (auth.isActivated()) {
-      setSnackbarMessage("Updating JAMS, shutting down shortly...");
+      setSnackbarMessage(i18next.t("updating_jams_shutting_down_shortly", "Updating JAMS, shutting down shortly..."));
       axios(configApiCall(api_path_get_start_update, "POST", null, null))
         .then(() => {
           handleCancel();
           setUpdating(true);
         })
         .catch((error) => {
-          setSnackbarMessage("Error while attempting to update JAMS: " + error);
+          setSnackbarMessage(i18next.t("error_while_attempting_update_jams", "Error while attempting to update JAMS: ") + error);
         });
     }
   };
diff --git a/jams-react-client/src/layouts/RTL.js b/jams-react-client/src/layouts/RTL.js
index 220894764f0023ef6baa0f4954d7744a4e1f068a..8932320d54dd74fb8101c3f231e21602ce646dcf 100644
--- a/jams-react-client/src/layouts/RTL.js
+++ b/jams-react-client/src/layouts/RTL.js
@@ -11,32 +11,26 @@ import Footer from "components/Footer/Footer.js";
 import Sidebar from "components/Sidebar/Sidebar.js";
 import FixedPlugin from "components/FixedPlugin/FixedPlugin.js";
 
-import routes from "routes.js";
+// @material-ui/icons
+import Person from "@material-ui/icons/Person";
+import Group from "@material-ui/icons/Group";
+import AllInbox from "@material-ui/icons/AllInbox";
+import SettingsIcon from "@material-ui/icons/Settings";
+// core components/views for Admin layout
+import Users from "views/Users/Users.js";
+import Groups from "views/Groups/Groups.js";
+import Blueprints from "views/Blueprints/Blueprints.js";
+import Settings from "views/Settings/Settings.js";
+// core components/views for RTL layout
 
 import styles from "assets/jss/material-dashboard-react/layouts/rtlStyle.js";
 
 import bgImage from "assets/img/sidebar-2.jpg";
 import logo from "assets/img/reactlogo.png";
 
-let ps;
+import i18next from "i18next";
 
-const switchRoutes = (
-  <Switch>
-    {routes.map((prop, key) => {
-      if (prop.layout === "/rtl") {
-        return (
-          <Route
-            path={prop.layout + prop.path}
-            component={prop.component}
-            key={key}
-          />
-        );
-      }
-      return null;
-    })}
-    <Redirect from="/rtl" to="/rtl/rtl-page" />
-  </Switch>
-);
+let ps;
 
 const useStyles = makeStyles(styles);
 
@@ -50,10 +44,64 @@ export default function RTL({ ...rest }) {
   const [color, setColor] = React.useState("blue");
   const [fixedClasses, setFixedClasses] = React.useState("dropdown show");
   const [mobileOpen, setMobileOpen] = React.useState(false);
-  const handleImageClick = image => {
+
+  const routes = [
+    {
+      path: "/users",
+      name: i18next.t("users", "Users"),
+      rtlName: "المستخدمون",
+      icon: Person,
+      component: Users,
+      layout: "/admin",
+    },
+    {
+      path: "/groups",
+      name: i18next.t("groups", "Groups"),
+      rtlName: "مجموعات",
+      icon: Group,
+      component: Groups,
+      layout: "/admin",
+    },
+    {
+      path: "/blueprints",
+      name: i18next.t("blueprints", "Blueprints"),
+      rtlName: "المخططات",
+      icon: AllInbox,
+      component: Blueprints,
+      layout: "/admin",
+    },
+    {
+      path: "/settings",
+      name: i18next.t("settings", "Settings"),
+      rtlName: "حضانة بيض",
+      icon: SettingsIcon,
+      component: Settings,
+      layout: "/admin",
+    },
+  ];
+
+  const switchRoutes = (
+    <Switch>
+      {routes.map((prop, key) => {
+        if (prop.layout === "/rtl") {
+          return (
+            <Route
+              path={prop.layout + prop.path}
+              component={prop.component}
+              key={key}
+            />
+          );
+        }
+        return null;
+      })}
+      <Redirect from="/rtl" to="/rtl/rtl-page" />
+    </Switch>
+  );
+
+  const handleImageClick = (image) => {
     setImage(image);
   };
-  const handleColorClick = color => {
+  const handleColorClick = (color) => {
     setColor(color);
   };
   const handleFixedClick = () => {
@@ -79,7 +127,7 @@ export default function RTL({ ...rest }) {
     if (navigator.platform.indexOf("Win") > -1) {
       ps = new PerfectScrollbar(mainPanel.current, {
         suppressScrollX: true,
-        suppressScrollY: false
+        suppressScrollY: false,
       });
       document.body.style.overflow = "hidden";
     }
@@ -96,7 +144,7 @@ export default function RTL({ ...rest }) {
     <div className={classes.wrapper}>
       <Sidebar
         routes={routes}
-        logoText={"الإبداعية تيم"}
+        logoText={"Jams"}
         logo={logo}
         image={image}
         handleDrawerToggle={handleDrawerToggle}
diff --git a/jams-react-client/src/layouts/SignIn.js b/jams-react-client/src/layouts/SignIn.js
index 55e2322ed1e2a45a3ef58f834ede0cccb27bfea1..0d4dc03d28fa819f86932f8e69f6252661e4c58e 100644
--- a/jams-react-client/src/layouts/SignIn.js
+++ b/jams-react-client/src/layouts/SignIn.js
@@ -15,6 +15,10 @@ import Container from "@material-ui/core/Container";
 import MuiAlert from "@material-ui/lab/Alert";
 import auth from "../auth.js";
 
+import LanguagePicker from "../components/LanguagePicker/LanguagePicker";
+
+import i18next from "i18next";
+
 import logo from "assets/img/logo-jams-blue.svg";
 import * as Yup from "yup";
 function Alert(props) {
@@ -95,7 +99,9 @@ export default function SignIn(props) {
         });
       } else {
         setError(true);
-        setErrorMessage("Login failed check your credentials");
+        setErrorMessage(
+          i18next.t("login_failed", "Login failed check your credentials")
+        );
       }
     });
   }
@@ -110,7 +116,7 @@ export default function SignIn(props) {
           alt="logo"
         />
         <Typography component="h1" variant="h5">
-          Sign in
+          {i18next.t("sign_in", "Sign In")}
         </Typography>
         {error && <Alert severity="error">{errorMessage}</Alert>}
         <Formik
@@ -137,7 +143,7 @@ export default function SignIn(props) {
                   required
                   fullWidth
                   id="username"
-                  label="Username"
+                  label={i18next.t("username", "Username")}
                   name="username"
                   autoComplete="username"
                   autoFocus
@@ -154,7 +160,7 @@ export default function SignIn(props) {
                   required
                   fullWidth
                   name="password"
-                  label="Password"
+                  label={i18next.t("password", "Password")}
                   type="password"
                   id="password"
                   autoComplete="current-password"
@@ -172,7 +178,7 @@ export default function SignIn(props) {
                   color="primary"
                   className={classes.submit}
                 >
-                  Sign In
+                  {i18next.t("sign_in", "Sign In")}
                 </Button>
               </form>
             );
@@ -182,6 +188,9 @@ export default function SignIn(props) {
       <Box mt={8}>
         <Copyright />
       </Box>
+      <Box mt={8} justifyContent="center">
+        <LanguagePicker />
+      </Box>
     </Container>
   );
 }
diff --git a/jams-react-client/src/layouts/SignUp.js b/jams-react-client/src/layouts/SignUp.js
index 459f31b25aa855bc485c2b98fa67662c040e1d63..455c6d10aadcade8cf0a7b5391b1cd1d7042ee45 100644
--- a/jams-react-client/src/layouts/SignUp.js
+++ b/jams-react-client/src/layouts/SignUp.js
@@ -7,6 +7,7 @@ import { makeStyles } from "@material-ui/core/styles";
 import Container from "@material-ui/core/Container";
 import MuiAlert from "@material-ui/lab/Alert";
 import Paper from "@material-ui/core/Paper";
+import Button from "@material-ui/core/Button";
 
 import logo from "assets/img/logo-jams-blue.svg";
 
@@ -16,6 +17,8 @@ import CaSetup from "components/CaSetup/CaSetup";
 import IdentityManagement from "components/IdentityManagement/IdentityManagement";
 import ServerParameters from "components/ServerParameters/ServerParameters";
 
+import LanguagePicker from "../components/LanguagePicker/LanguagePicker";
+
 function Alert(props) {
   return <MuiAlert elevation={6} variant="filled" {...props} />;
 }
@@ -109,6 +112,9 @@ export default function SignUp(props) {
         <Box mt={8}>
           <Copyright />
         </Box>
+        <Box mt={8} justifyContent="center" >
+          <LanguagePicker />
+        </Box>
       </Paper>
     </Container>
   );
diff --git a/jams-react-client/src/locales/ar/translation.json b/jams-react-client/src/locales/ar/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/ar/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/be/translation.json b/jams-react-client/src/locales/be/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/be/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/bg/translation.json b/jams-react-client/src/locales/bg/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..268c943fd18b6c01c447d804f4881aa54aafafb3
--- /dev/null
+++ b/jams-react-client/src/locales/bg/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Потребителско име",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/bn/translation.json b/jams-react-client/src/locales/bn/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/bn/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/ca/translation.json b/jams-react-client/src/locales/ca/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/ca/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/cs_CZ/translation.json b/jams-react-client/src/locales/cs_CZ/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/cs_CZ/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/da/translation.json b/jams-react-client/src/locales/da/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/da/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/de/translation.json b/jams-react-client/src/locales/de/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/de/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/el/translation.json b/jams-react-client/src/locales/el/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/el/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/en/translation.json b/jams-react-client/src/locales/en/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/en/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/eo/translation.json b/jams-react-client/src/locales/eo/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/eo/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/es/translation.json b/jams-react-client/src/locales/es/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..8117570e53df994fc71623676cc1025911b4ac7b
--- /dev/null
+++ b/jams-react-client/src/locales/es/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Nombre de Usuario",
+    "password": "Contraseña",
+    "confirm_password": "Confirma la contraseña",
+    "continue": "Continuar",
+    "users": "Usuarios",
+    "groups": "Grupos",
+    "blueprints": "Blueprints",
+    "settings": "Ajustes",
+    "Logout": "Cerrar sesión",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/et/translation.json b/jams-react-client/src/locales/et/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/et/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/fa/translation.json b/jams-react-client/src/locales/fa/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/fa/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/fi/translation.json b/jams-react-client/src/locales/fi/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..93da7b72f75b5ef72eb74047c50efb234de36345
--- /dev/null
+++ b/jams-react-client/src/locales/fi/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Käyttäjätunnus",
+    "password": "Salasana",
+    "confirm_password": "Vahvista salasana",
+    "continue": "Jatka",
+    "users": "Käyttäjät",
+    "groups": "Ryhmät",
+    "blueprints": "Suunitelmat",
+    "settings": "Asetukset",
+    "Logout": "Kirjaudu ulos",
+    "create_user": "Luo käyttäjä",
+    "login_failed": "Kirjautuminen epäonnistui tarkista kirjautumistiedot",
+    "sign_in": "Kirjaudu sisään",
+    "common_name_is_required": "Nimi on pakollinen.",
+    "state_is_required": "Lääni on pakollinen.",
+    "city_is_required": "Kaupunki on pakollinen.",
+    "organization_is_required": "Organisaatio on pakollinen.",
+    "organization_unit_is_required": "Organisaation osasto on pakollinen.",
+    "country_is_required": "Valtio on pakollinen.",
+    "certificate_file_is_required": "Varmennetiedosto on pakollinen.",
+    "private_key_file_is_required": "Avaimen tiedosto on pakollinen.",
+    "create_self_signed_certificate_authority": "Luo itse allekirjoitettu varmenne",
+    "import_existing_certificate_authority": "Tuo olemassa oleva varmenne",
+    "5_years": "5 vuotta",
+    "10_years": "10 vuotta",
+    "unknown_error_occured_while_installing_the_ca": "Tuntematon virhe asennettaessa varmenteen myöntäjää. Yritä uudelleen.",
+    "ca_setup_header": "Valitse vaihtoehto varmenteen myöntäjän määrittämiseksi, jota käytetään allekirjoittamaan kaikki JAMS-liittymällä luodut Jami-tilit.",
+    "common_name": "Nimi",
+    "state": "Lääni",
+    "cistatety": "Kaupunki",
+    "organization": "Organisaatio",
+    "organization_unit": "Organisaation osasto",
+    "generate_self_signed_certificate_authority": "Luo itse allekirjoitettu varmenne",
+    "select_option_setting_up_certificate_authority": "Valitse vaihtoehto varmenteen myöntäjän määrittämiseksi, jota käytetään allekirjoittamaan kaikki JAMS-liittymällä luodut Jami-tilit.",
+    "import_certificate_authority": "Tuo varmenne",
+    "must_be_60_characters_or_less": "Enintään 60 merkkiä",
+    "username_is_required": "Käyttäjätunnus vaaditaan",
+    "must_be_50_characters_or_less": "Enintään 50 merkkiä",
+    "password_must_match": "Salasanojen täytyy täsmätä",
+    "password_confirmation_required": "Salasanan vahvistus vaaditaan",
+    "information_appears_incorrect_connection_directory_failed": "Annetut tiedot näyttävät olevan virheellisiä, yhteys hakemistoon epäonnistui. Tarkista antamasi tiedot ja kirjautumistiedot ja yritä uudelleen.",
+    "identity_management": "Identiteetin hallinta",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Luo järjestelmänvalvoja",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Palvelimen parametrit",
+    "choose_a_country": "Valitse maa",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/fr/translation.json b/jams-react-client/src/locales/fr/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..fc153392db8f147ec0f230f1a196fec659b8afad
--- /dev/null
+++ b/jams-react-client/src/locales/fr/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Nom d'utilisateur",
+    "password": "Mot de passe",
+    "confirm_password": "Confirmer le mot de passe",
+    "continue": "Continuer",
+    "users": "Utilisateurs",
+    "groups": "Groupes",
+    "blueprints": "Plans",
+    "settings": "Paramètres",
+    "Logout": "Déconnexion",
+    "create_user": "Créer un utilisateur",
+    "login_failed": "La connexion a échoué, vérifiez vos identifiants",
+    "sign_in": "Connexion",
+    "common_name_is_required": "Un nom commun est nécessaire",
+    "state_is_required": "Un état est nécessaire.",
+    "city_is_required": "Un nom de ville est nécessaire",
+    "organization_is_required": "Un nom d'organisation est nécessaire",
+    "organization_unit_is_required": "Un nom d'unité d'organisation est nécessaire",
+    "country_is_required": "Un nom de pays est nécessaire",
+    "certificate_file_is_required": "Un fichier de certificat est nécessaire",
+    "private_key_file_is_required": "Un fichier de clé privée est nécessaire.",
+    "create_self_signed_certificate_authority": "Créer une autorité de certification auto-signée",
+    "import_existing_certificate_authority": "Importer une autorité de certification existante",
+    "5_years": "5 ans",
+    "10_years": "10 ans",
+    "unknown_error_occured_while_installing_the_ca": "Une erreur inconnue s'est produite lors de l'installation de l'autorité de certification. Veuillez réessayer.",
+    "ca_setup_header": "Sélectionnez une option pour configurer l'autorité de certification qui sera utilisée pour signer tous les comptes Jami générés sur cette instance JAMS.",
+    "common_name": "Nom commun",
+    "state": "État",
+    "cistatety": "Ville",
+    "organization": "Organisation",
+    "organization_unit": "Unité d'organisation",
+    "generate_self_signed_certificate_authority": "Générer une autorité de certification auto-signée",
+    "select_option_setting_up_certificate_authority": "Sélectionnez une option pour configurer l'autorité de certification qui sera utilisée pour signer tous les comptes Jami générés sur cette instance JAMS.",
+    "import_certificate_authority": "Restaurer le certificat de l'autorité",
+    "must_be_60_characters_or_less": "Doit être composé de 60 caractères ou moins",
+    "username_is_required": "Un nom d'utilisateur est nécessaire",
+    "must_be_50_characters_or_less": "Doit être composé de 50 caractères ou moins",
+    "password_must_match": "Les mots de passe doivent être identiques",
+    "password_confirmation_required": "Une confirmation du mot de passe est nécessaire",
+    "information_appears_incorrect_connection_directory_failed": "L'information fournie semble incorrecte, la connexion au répertoire a échouée. Veuillez vérifier les informations de connexion fournies.",
+    "identity_management": "Gestion d'identité",
+    "select_type_of_user_directory": "Sélectionner le type de répertoire à intégrer avec JAMS",
+    "set_identity_parameters": "Paramètres d'identité",
+    "create_administrator_user": "Création de l'administrateur",
+    "certificate_authority_setup": "Configuration du certificat d’autorité",
+    "server_parameters": "Paramètres du serveur",
+    "choose_a_country": "Choisir un pays",
+    "active_directory_server_informations": "Informations sur le serveur Active Directory",
+    "port": "Port",
+    "host": "Hôte",
+    "admin_username": "Utilisateur administrateur",
+    "domain_name": "Nom de domaine",
+    "yes": "Oui",
+    "no": "Non",
+    "ldap_server_information": "Informations sur le serveur LDAP",
+    "server_address": "Adresse du serveur",
+    "administrator_username": "Nom d'utilisateur de l'administrateur",
+    "base_dn_please_use_ldap_convention": "Base DN (Veuillez utiliser la convention LDAP)",
+    "field_ldap_structure_contains_username": "Ceci est le champ dans la structure LDAP qui contient le nom d'utilisateur",
+    "use_public_nameserver": "Utiliser le serveur de nom public",
+    "check_box_register_usernames_on_jami_public_nameserver": "Cochez cette case si vous souhaitez enregistrer les noms d'utilisateurs sur le serveur publique de Jami.",
+    "domain_is_required": "Un Domaine est nécessaire",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 mois",
+    "3_months": "3 mois",
+    "6_months": "6 mois",
+    "1_year": "1 an",
+    "please_enter_valid_cors_domain_url": "Veuillez entrer l'URL d'un domaine CORS valide.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "Les paramètres globaux couvrent la configuration générale du serveur",
+    "cors_domain_name": "Nom de domaine du CORS",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Définissez le domaine du serveur client Web pour qu'il se connecte au tableau de bord d'administration JAMS et aux comptes Jami. Il est également utilisé pour définir où les clients doivent télécharger les CRL et soumettre des requêtes OCSP. Dans le cas où vous exécutez une instance proxy (par exemple JAMS derrière IIS), assurez-vous de définir ce champ correctement, sinon les appareils ne pourront pas télécharger les CRL ou valider les certificats.",
+    "domain_name_of_web_client_server": "Le nom de domaine du client web de votre serveur. Utilisez le préfixe http:// ou https://",
+    "domain": "Domaine",
+    "certificate_revocation_list_lifetime": "Durée de vie de la liste de révocation des certificats",
+    "set_liftetime_crl_list_certificates_revoked": "Fixer la durée de vie du LCR  (liste des certificats révoqués) qui contient la liste des certificats qui ont été révoqués avant leur date d'expiration prévue.",
+    "device_lifetime": "Période d'échéance de l'appareil",
+    "user_account_lifetime": "Période d'échéance du compte utilisateur",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "La période d'échéance du compte utilisateur doit être supérieure à celle de l'appareil",
+    "sip_configuration_template": "Gabarit de configuration SIP",
+    "set_server_parameters": "Positionnez les paramètres serveurs",
+    "search_users_using": "Rechercher des utilisateurs par le nom d'utilisateur, nom, téléphone, courriel ...",
+    "search_users": "Rechercher des utilisateurs",
+    "servername_is_required": "Le nom du serveur est obligatoire.",
+    "password_is_required": "Le mot de passe est obligatoire.",
+    "domain_name_is_required": "Le nom de domaine est obligatoire.",
+    "port_must_be_a_number": "Le port doit être un nombre.",
+    "port_must_be_positive": "Le port doit être positif.",
+    "port_must_be_an_integer": "Le port doit être un entier.",
+    "port_number_is_required": "Le port est obligatoire.",
+    "host_is_required": "L'hôte est obligatoire.",
+    "local_database": "Base de donnée locale",
+    "ldap_server": "Serveur LDAP",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "Aucun utilisateur correspondant à la rechercher n'a été trouvé.",
+    "device_name": "Nom de l'appareil",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Révoquer l'appareil",
+    "update_device_information": "Mettre à jour l'information de l'appareil",
+    "device_display_name": "Nom de l'appareil",
+    "cancel": "Annuler",
+    "update": "Mettre à jour",
+    "are_you_sure_you_want_to_revoke_this_device": "Êtes-vous sûr de vouloir révoquer cet appareil ?",
+    "confirm_revoke": "Confirmer la révocation",
+    "add_a_contact": "Ajouter un contact",
+    "new_version_jams_available": "Une nouvelle version de JAMS est disponible. Voulez-vous commencer la mise à jour maintenant ?",
+    "running_community_version_jams": "Vous utilisez actuellement la version communautaire de JAMS. Voulez-vous acheter une souscription JAMS ?",
+    "you_are_not_allowed_to_access_this_section": "Vous n'êtes pas autorisé à accéder cette section. Veuillez contacter votre administrateur pour obtenir les permissions.",
+    "an_update_is_available_for_jams": "Une mise à jour de JAMS est disponible.",
+    "updating_jams_shutting_down_shortly": "La mise à jour de JAMS a commencé, le serveur va s'arrêter sous peu ...",
+    "error_while_attempting_update_jams": "Erreur durant la mise à jour de JAMS:",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Mise à jour de la configuration du plan avec succès !",
+    "error_updating_blueprint_configuration": "Erreur de mise à jour de la configuration du plan",
+    "enable_upnp": "Activer UPnP",
+    "use_jami_default_turn_configuration": "Utiliser la configuration par défaut de Turn",
+    "use_a_custom_turn_configuration": "Utiliser une configuration personnalisée de Turn",
+    "turn_server_address": "Adresse du serveur TURN",
+    "turn_server_username": "Nom d'utilisateur du serveur TURN",
+    "turn_server_password": "Mot de passe du serveur TURN",
+    "disable_turn_configuration": "Désactiver la configuration TURN",
+    "use_jami_default_dht_proxy_configuration": "Utiliser la configuration par défaut du DHT Proxy",
+    "use_a_custom_dht_proxy_configuration": "Utiliser une configuration personnalisée de DHT Proxy",
+    "dht_proxy_server_name": "Nom du serveur DHT Proxy",
+    "dht_proxy_list_url": "URL de la liste DHT proxy",
+    "disable_dht_proxy_configuration": "Désactiver la configuration DHT proxy",
+    "updated_blueprint_permissions_successfully": "Mise à jour des permissions du plan avec succès !",
+    "error_updating_blueprint_permissions": "Erreur de mise à jour des permissions du plan",
+    "allow_video_calls": "Autoriser les appels entrants",
+    "allow_incoming_calls_from_unknown_contacts": "Autoriser les appels entrants de contacts inconnus",
+    "auto_answer_calss": "Répondre automatiquement aux appels",
+    "allow_use_of_jami_in_local_lan": "Permettre l'utilisation de Jami dans un réseau local",
+    "convert_your_account_into_a_rendezvous_point": "Activer ce compte en tant que point de rendez-vous",
+    "blueprint_name_already_exists": "Un plan avec ce nom existe déjà. ",
+    "blueprint_name_is_empty": "Un nom de plan est nécessaire.",
+    "remove_blueprint": "Supprimer le plan",
+    "are_you_sure_you_want_to_delete": "Êtes-vous certain de vouloir supprimer",
+    "remove": "Supprimer",
+    "create_blueprint": "Créer un plan",
+    "search_blueprints_placeholder": "Rechercher un plan...",
+    "search_blueprints": "Rechercher un plan",
+    "no_blueprints_found": "Aucun plan trouvé",
+    "no_blueprint_name": "Aucun nom disponible",
+    "no_description": "Aucune description disponible",
+    "no_users_count": "Aucun utilisateur",
+    "add_contact": "Ajouter un contact ...",
+    "remove_contact": "Supprimer le contact",
+    "are_you_sure_you_want_to_remove": "Êtes-vous certain de vouloir supprimer",
+    "from": "de",
+    "contacts": "contacts",
+    "search_contacts_using": "Rechercher les contacts en utilisant un URI, prénom, nom...",
+    "search_contacts": "Rechercher les contacts",
+    "has_no_contacts": "n'a pas de contacts",
+    "edit_group": "Modifier le groupe",
+    "add_user_to": "Ajouter un utilisateur à",
+    "action": "Action",
+    "remove_user": "Retirer l'utilisateur",
+    "create_group": "Créer un groupe",
+    "group_name": "Nom du groupe",
+    "group_name_already_exists": "Un groupe avec ce nom existe déjà!",
+    "group_name_is_empty": "Un nom de groupe est nécessaire.",
+    "remove_group": "Supprimer un groupe",
+    "search_groups_placeholder": "Rechercher dans les groupes ...",
+    "search_groups": "Rechercher dans les groupes",
+    "no_groups_found": "Aucun groupe trouvé",
+    "blueprint": "Plan",
+    "admin_password": "Mot de passe administrateur",
+    "subscription": "Souscription",
+    "an_error_occured_while_getting_license_information": "Une erreur est survenue durant la récupération de l'information de souscription !",
+    "subscription_code_is_required": "Veuillez entrer une license.",
+    "license_registred_successfully": "La souscription a été enregistré avec succès !",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "Une erreur générique est survenue durant le chargement de la souscription ou nous n'avons pas pu trouvé votre souscription !",
+    "subscription_code": "Code de souscription",
+    "register": "Enregistrer",
+    "your_license_is_already_activated": "Votre souscription est déjà activée !",
+    "admin_password_updated_successfully": "Le mot de passe administrateur a été mis à jour!",
+    "updating_user": "Mise à jour de l'utilisateur en cours...",
+    "password_failed": "La mise à jour du mot de passe a échoué avec l'erreur suivante:",
+    "enter_the_following_information_below_to_change_your_admin_password": "Veuillez soumettre votre nouveau mot de passe ci-dessous.",
+    "Confirm password": "Confirmer le mot de passe",
+    "generate": "Générer",
+    "copy_to_clipboard": "Copier dans le presse-papier",
+    "copied": "Copié",
+    "generated": "Généré",
+    "change_admin_password": "Changer le mot de passe de l'administrateur",
+    "active": "Actif",
+    "revoked": "Révoqué",
+    "revoke_user_account": "Révoquer le compte utilisateur",
+    "are_you_sure_want_revoke": "Êtes-vous certain de vouloir révoquer ",
+    "revoke": "Revoquer",
+    "revoke_user": "Revoquer l'utilisateur",
+    "edit_profile": "Modifier le profil d'utilisateur",
+    "change_password": "Modifier le mot de passe",
+    "minimum_3_characters": "Minimum de 3 caractères!",
+    "maximum_32_characters": "Maximum de 32 caractères!",
+    "only_alphanumeric_characters": "Seuls les caractères alphanumériques sont acceptés!",
+    "first_name_is_too_short": "Le prénom est trop court!",
+    "last_name_is_too_short": "Le nom de famille est trop court!",
+    "invalid_email": "Courriel invalide!",
+    "organization_name_too_short": "Le nom de l'organisation est trop court!",
+    "fax_not_valid": "Numéro de fax non valide!",
+    "phone_not_valid": "Numéro de téléphone non valide!",
+    "mobile_not_valid": "Numéro de téléphone mobile non valide!",
+    "crop_image": "Couper l'image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Couper",
+    "create_new_profile": "Créer un nouveau profil",
+    "change_profile_image": "Modifier l'image du profil ",
+    "username_already_taken": "Ce nom d'utilisateur est déjà utilisé",
+    "first_name": "Prénom",
+    "last_name": "Nom",
+    "email": "Courriel",
+    "fax_number": "Numéro de fax",
+    "phone_number": "Numéro de téléphone",
+    "extension": "Extension",
+    "mobile": "Numéro de téléphone mobile",
+    "create_profile": "Créer le profil",
+    "save_profile": "Sauvegarder le profil",
+    "profile": "Profil",
+    "devices": "Appareils",
+    "no_users_found": "Aucun utilisateur trouvé",
+    "advanced_settings": "Configurations avancées",
+    "create_administrator": "Créer un Administrateur",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Coller votre code de souscription JAMS Entreprise émis par la boutique Jami. ",
+    "blueprint_name": "Nom du plan"
+}
diff --git a/jams-react-client/src/locales/he/translation.json b/jams-react-client/src/locales/he/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..3dc05f0fb0afc0fbd8f0aa3416a50f5b0ac80423
--- /dev/null
+++ b/jams-react-client/src/locales/he/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "שם משתמש",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/hi_IN/translation.json b/jams-react-client/src/locales/hi_IN/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/hi_IN/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/hu/translation.json b/jams-react-client/src/locales/hu/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..db500ab30dc0e1773673705d51f46ab6e5deafb1
--- /dev/null
+++ b/jams-react-client/src/locales/hu/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Felhasználónév",
+    "password": "Jelszó",
+    "confirm_password": "Jelszó megerősítése",
+    "continue": "Tovább",
+    "users": "Felhasználók",
+    "groups": "Csoportok",
+    "blueprints": "Tervrajzok",
+    "settings": "Beállítások",
+    "Logout": "Kijelentkezés",
+    "create_user": "Felhasználó létrehozása",
+    "login_failed": "A bejelentkezés sikertelen, ellenőrizze hitelesítő adatait",
+    "sign_in": "Bejelentkezés",
+    "common_name_is_required": "Köznapi név szükséges.",
+    "state_is_required": "Állam/megye szükséges",
+    "city_is_required": "Város szükséges.",
+    "organization_is_required": "Szervezet szükséges.",
+    "organization_unit_is_required": "Szervezeti egység szükséges.",
+    "country_is_required": "Ország szükséges.",
+    "certificate_file_is_required": "Tanúsítványfájl szükséges.",
+    "private_key_file_is_required": "Titkos kulcs fájlja szükséges.",
+    "create_self_signed_certificate_authority": "Önaláírt hitelesítésszolgáltató létrehozása",
+    "import_existing_certificate_authority": "Meglévő hitelesítésszolgáltató importálása",
+    "5_years": "5 év",
+    "10_years": "10 év",
+    "unknown_error_occured_while_installing_the_ca": "Ismeretlen hiba történt a hitelesítésszolgáltató telepítésekor. Kérjük, próbálkozzon újra.",
+    "ca_setup_header": "Válasszon egy választási lehetőséget a hitelesítésszolgáltató beállításához, amelyet a JAMS-példányon létrehozott összes Jami-fiók aláírásához használnak.",
+    "common_name": "Köznapi név",
+    "state": "Állam/megye",
+    "cistatety": "Város",
+    "organization": "Szervezet",
+    "organization_unit": "Szervezeti egység",
+    "generate_self_signed_certificate_authority": "Önaláírt hitelesítésszolgáltató létrehozása",
+    "select_option_setting_up_certificate_authority": "Válasszon egy választási lehetőséget a hitelesítésszolgáltató beállításához, amelyet a JAMS-példányon létrehozott összes Jami-fiók aláírásához használnak.",
+    "import_certificate_authority": "Hitelesítésszolgáltató importálása",
+    "must_be_60_characters_or_less": "Legfeljebb 60 karakter lehet",
+    "username_is_required": "Felhasználónév szükséges",
+    "must_be_50_characters_or_less": "Legfeljebb 50 karakter lehet",
+    "password_must_match": "A jelszavaknak egyezniük kell",
+    "password_confirmation_required": "Jelszó megerősítése szükséges",
+    "information_appears_incorrect_connection_directory_failed": "A megadott adatok helytelennek tűnnek, a könyvtárhoz való kapcsolódás nem sikerült. Kérjük, ellenőrizze a megadott adatokat és hitelesítő adatokat, majd próbálkozzon újra.",
+    "identity_management": "Identitáskezelés",
+    "select_type_of_user_directory": "Válassza ki a felhasználói könyvtár típusát ami lesz JAMS-be integrált",
+    "set_identity_parameters": "Identitásparaméterek beállítása",
+    "create_administrator_user": "Rendszergazda felhasználó létrehozása",
+    "certificate_authority_setup": "Hitelesítésszolgáltató beállításai",
+    "server_parameters": "Kiszolgáló paraméterei",
+    "choose_a_country": "Ország kiválasztása",
+    "active_directory_server_informations": "Active Directory-kiszolgáló adatai",
+    "port": "Kikötő",
+    "host": "Gazdagép",
+    "admin_username": "Rendszergazdai felhasználónév",
+    "domain_name": "Tartománynév",
+    "yes": "Igen",
+    "no": "Nem",
+    "ldap_server_information": "LDAP-kiszolgáló adatai",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Alap megkülönböztető név (Kérjük, használja az LDAP-mondattant)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Nyilvános névkiszolgáló használata",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Tartomány szükséges.",
+    "5_minutes": "5 perc",
+    "10_minutes": "10 perc",
+    "15_minutes": "15 perc",
+    "30_minutes": "30 perc",
+    "60_minutes": "60 perc",
+    "1_month": "1 hónap",
+    "3_months": "3 hónap",
+    "6_months": "6 hónap",
+    "1_year": "1 év",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Tartomány",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Felhasználók keresése",
+    "servername_is_required": "Kiszolgálónév szükséges.",
+    "password_is_required": "Jelszó szükséges.",
+    "domain_name_is_required": "Tartománynév szükséges.",
+    "port_must_be_a_number": "A kikötőnek számnak kell lennie.",
+    "port_must_be_positive": "A kikötőnek pozitívnak kell lennie.",
+    "port_must_be_an_integer": "A kikötőnek egész számot kell lennie.",
+    "port_number_is_required": "Kikötőszám szükséges.",
+    "host_is_required": "Gazdagép szükséges.",
+    "local_database": "Helyi adatbázis",
+    "ldap_server": "LDAP-kiszolgáló",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "Nincs olyan felhasználó, amely megfelelne a keresési értéknek!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/id/translation.json b/jams-react-client/src/locales/id/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/id/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/it/translation.json b/jams-react-client/src/locales/it/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/it/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/ja/translation.json b/jams-react-client/src/locales/ja/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..93fafcdb1161ae9cdb6c55e33edfd324922b924e
--- /dev/null
+++ b/jams-react-client/src/locales/ja/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "ユーザー名",
+    "password": "パスワード",
+    "confirm_password": "パスワードの確認",
+    "continue": "続行",
+    "users": "ユーザー",
+    "groups": "グループ",
+    "blueprints": "Blueprints",
+    "settings": "設定",
+    "Logout": "ログアウト",
+    "create_user": "ユーザーを作成",
+    "login_failed": "ログインに失敗しました。認証情報が正しいかご確認ください。",
+    "sign_in": "ログイン",
+    "common_name_is_required": "コモンネーム(Common name)が必要です。",
+    "state_is_required": "都道府県名(State)が必要です。",
+    "city_is_required": "City が必要です。",
+    "organization_is_required": "組織名(Organization)が必要です。",
+    "organization_unit_is_required": "部門名(Organization unit)が必要です。",
+    "country_is_required": "国名(Country)が必要です。",
+    "certificate_file_is_required": "証明書ファイルが必要です。",
+    "private_key_file_is_required": "秘密鍵ファイルが必要です。",
+    "create_self_signed_certificate_authority": "自己署名認証局(Self-Signed Certificate Authority)を作成",
+    "import_existing_certificate_authority": "既存の認証局をインポート",
+    "5_years": "5 年",
+    "10_years": "10 年",
+    "unknown_error_occured_while_installing_the_ca": "認証局を設置中に不明なエラーが発生しました。もう一度やり直してください。",
+    "ca_setup_header": "この JAMS インスタンスで生成されたすべての Jami アカウントの署名に使用する認証局を設定する方法を選択してください。",
+    "common_name": "コモンネーム(Common name)",
+    "state": "都道府県名(State)",
+    "cistatety": "City",
+    "organization": "組織名(Organization)",
+    "organization_unit": "部門名(Organization unit)",
+    "generate_self_signed_certificate_authority": "自己署名認証局(Self-Signed Certificate Authority)を生成",
+    "select_option_setting_up_certificate_authority": "この JAMS インスタンスで生成されたすべての Jami アカウントの署名に使用する認証局を設定する方法を選択してください。",
+    "import_certificate_authority": "認証局をインポート",
+    "must_be_60_characters_or_less": "60文字以下にする必要があります",
+    "username_is_required": "ユーザー名が必要です",
+    "must_be_50_characters_or_less": "50文字以下にする必要があります",
+    "password_must_match": "パスワードは一致する必要があります",
+    "password_confirmation_required": "パスワードの確認が必要です",
+    "information_appears_incorrect_connection_directory_failed": "指定された情報が正しくないと思われます。指定された情報と資格情報を確認して、もう一度やり直してください。",
+    "identity_management": "ID マネージャー",
+    "select_type_of_user_directory": "JAMS と統合するユーザーディレクトリの種類を選択してください",
+    "set_identity_parameters": "ID パラメーターを設定",
+    "create_administrator_user": "管理者ユーザーを作成",
+    "certificate_authority_setup": "認証局をセットアップ",
+    "server_parameters": "サーバーパラメーター",
+    "choose_a_country": "国を選択",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/ko/translation.json b/jams-react-client/src/locales/ko/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/ko/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/lt/translation.json b/jams-react-client/src/locales/lt/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/lt/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/nb/translation.json b/jams-react-client/src/locales/nb/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/nb/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/nl/translation.json b/jams-react-client/src/locales/nl/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/nl/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/oc/translation.json b/jams-react-client/src/locales/oc/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..cbedf2d899955085fcf62d2fe14abc12bcd1e83b
--- /dev/null
+++ b/jams-react-client/src/locales/oc/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Nom d’utilizaire",
+    "password": "Senhal",
+    "confirm_password": "Confirmar senhal",
+    "continue": "Contunhar",
+    "users": "Utilizaires",
+    "groups": "Grops",
+    "blueprints": "Blueprints",
+    "settings": "Paramètres",
+    "Logout": "Desconnexion",
+    "create_user": "Crear utilizaire",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Connexion",
+    "common_name_is_required": "Un nom comun es necessari",
+    "state_is_required": "L’estat es requerit",
+    "city_is_required": "La vila es requerida.",
+    "organization_is_required": "L’organizacion es requerida.",
+    "organization_unit_is_required": "Lo departament d’organizacion es requerit.",
+    "country_is_required": "Lo país es requerit.",
+    "certificate_file_is_required": "Lo fichièr de certificat es requerit.",
+    "private_key_file_is_required": "La clau privada es requerida.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 ans",
+    "10_years": "10 ans",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Nom comun",
+    "state": "Estat",
+    "cistatety": "Vila",
+    "organization": "Organizacion",
+    "organization_unit": "Departament d’organizacion",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Paramètres servidor",
+    "choose_a_country": "Causir un país",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Pòrt",
+    "host": "Òste",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Òc",
+    "no": "Non",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutas",
+    "10_minutes": "10 minutas",
+    "15_minutes": "15 minutas",
+    "30_minutes": "30 minutas",
+    "60_minutes": "60 minutas",
+    "1_month": "1 mes",
+    "3_months": "3 meses",
+    "6_months": "6 meses",
+    "1_year": "1 an",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domeni",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Cercar utilizaires",
+    "servername_is_required": "Lo nom del servidor es requerit.",
+    "password_is_required": "Lo senhal es requerit.",
+    "domain_name_is_required": "Lo nom de domeni es requerit.",
+    "port_must_be_a_number": "Lo pòrt deu èsser un nombre.",
+    "port_must_be_positive": "Lo pòrt deu èsser positiu.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "L’òste es requerit.",
+    "local_database": "Basa de donadas locala",
+    "ldap_server": "Servidor LDAP",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "Cap d’utilizaire pas trobat que corresponda a la recèrca !",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/pa/translation.json b/jams-react-client/src/locales/pa/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/pa/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/pl/translation.json b/jams-react-client/src/locales/pl/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/pl/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/pt/translation.json b/jams-react-client/src/locales/pt/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/pt/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/pt_BR/translation.json b/jams-react-client/src/locales/pt_BR/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..0fd622a24982a0c7ae6c3ea635cb214d39ca6e81
--- /dev/null
+++ b/jams-react-client/src/locales/pt_BR/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Nome de usuário",
+    "password": "Senha",
+    "confirm_password": "Confirmar a senha",
+    "continue": "Continuar",
+    "users": "Usuários",
+    "groups": "Grupos",
+    "blueprints": "Modelos",
+    "settings": "Configurações",
+    "Logout": "Sair",
+    "create_user": "Criar um usuário",
+    "login_failed": "Login falhou, verifique suas credenciais",
+    "sign_in": "Acessar",
+    "common_name_is_required": "O nome comum é obrigatório.",
+    "state_is_required": "O estado é exigido.",
+    "city_is_required": "A cidade é exigida.",
+    "organization_is_required": "A organização é exigida.",
+    "organization_unit_is_required": "A unidade organizacional é exigida.",
+    "country_is_required": "O país é exigido.",
+    "certificate_file_is_required": "O arquivo do certificado é necessário.",
+    "private_key_file_is_required": "O arquivo da chave privada é necessário.",
+    "create_self_signed_certificate_authority": "Criar uma Autoridade Certificadora autoassinada",
+    "import_existing_certificate_authority": "Importar a Autoridade Certificadora existente",
+    "5_years": "5 anos",
+    "10_years": "10 anos",
+    "unknown_error_occured_while_installing_the_ca": "Ocorreu um erro desconhecido durante a instalação da CA. Por favor, tente novamente.",
+    "ca_setup_header": "Selecione uma opção para configurar a autoridade certificadora que será usada para assinar todas as contas de Jami geradas nesta instância de JAMS.",
+    "common_name": "Nome comum",
+    "state": "Estado",
+    "cistatety": "Cidade",
+    "organization": "Organização",
+    "organization_unit": "Unidade Organizacional",
+    "generate_self_signed_certificate_authority": "Gerar Autoridade Certificadora Auto-assinada",
+    "select_option_setting_up_certificate_authority": "Selecione uma opção para configurar a autoridade certificadora que será usada para assinar todas as contas de Jami geradas nesta instância de JAMS.",
+    "import_certificate_authority": "Importar a Autoridade Certificadora",
+    "must_be_60_characters_or_less": "Deve ter 60 caracteres ou menos",
+    "username_is_required": "O nome de usuário é obrigatório",
+    "must_be_50_characters_or_less": "Deve ter 50 caracteres ou menos",
+    "password_must_match": "As senhas devem ser iguais",
+    "password_confirmation_required": "A confirmação da senha é necessária",
+    "information_appears_incorrect_connection_directory_failed": "As informações fornecidas parecem estar incorretas, a conexão com o diretório falhou. Favor verificar as informações e credenciais fornecidas e tentar novamente.",
+    "identity_management": "Gerenciamento de Identidade",
+    "select_type_of_user_directory": "Selecione o tipo de diretório de usuário a ser integrado ao JAMS",
+    "set_identity_parameters": "Definir parâmetros de identidade",
+    "create_administrator_user": "Criar um Usuário Administrador",
+    "certificate_authority_setup": "Configuração de Autoridade Certificadora",
+    "server_parameters": "Parâmetros de Servidor",
+    "choose_a_country": "Escolha um país",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/ro/translation.json b/jams-react-client/src/locales/ro/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/ro/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/ru/translation.json b/jams-react-client/src/locales/ru/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/ru/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/sk/translation.json b/jams-react-client/src/locales/sk/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/sk/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/sl/translation.json b/jams-react-client/src/locales/sl/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/sl/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/sq_AL/translation.json b/jams-react-client/src/locales/sq_AL/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..bdf63c9bcb18b35fa0e901a1ef3420b9799d5178
--- /dev/null
+++ b/jams-react-client/src/locales/sq_AL/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Emër përdoruesi",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/sr/translation.json b/jams-react-client/src/locales/sr/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/sr/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/sv/translation.json b/jams-react-client/src/locales/sv/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..a98db42170ad71108997e33e9efa2ea3ae2b13ad
--- /dev/null
+++ b/jams-react-client/src/locales/sv/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Användarnamn",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/sw/translation.json b/jams-react-client/src/locales/sw/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/sw/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/ta/translation.json b/jams-react-client/src/locales/ta/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/ta/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/te/translation.json b/jams-react-client/src/locales/te/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/te/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/tr/translation.json b/jams-react-client/src/locales/tr/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/tr/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/tr_TR/translation.json b/jams-react-client/src/locales/tr_TR/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/tr_TR/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/tt/translation.json b/jams-react-client/src/locales/tt/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/tt/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/uk/translation.json b/jams-react-client/src/locales/uk/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/uk/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/vi/translation.json b/jams-react-client/src/locales/vi/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/vi/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/zh/translation.json b/jams-react-client/src/locales/zh/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..edbd84e5268668fe9977ab3f9d9b25b6afd3eaba
--- /dev/null
+++ b/jams-react-client/src/locales/zh/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "Username",
+    "password": "Password",
+    "confirm_password": "Confirm password",
+    "continue": "Continue",
+    "users": "Users",
+    "groups": "Groups",
+    "blueprints": "Blueprints",
+    "settings": "Settings",
+    "Logout": "Logout",
+    "create_user": "Create user",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/locales/zh_TW/translation.json b/jams-react-client/src/locales/zh_TW/translation.json
new file mode 100644
index 0000000000000000000000000000000000000000..8b5424d54c7c66995bf3d56767a6c29d0060b2b3
--- /dev/null
+++ b/jams-react-client/src/locales/zh_TW/translation.json
@@ -0,0 +1,233 @@
+{
+    "username": "使用者名稱",
+    "password": "密碼",
+    "confirm_password": "確認密碼",
+    "continue": "繼續",
+    "users": "使用者",
+    "groups": "群組",
+    "blueprints": "藍圖",
+    "settings": "設定",
+    "Logout": "登出",
+    "create_user": "建立使用者",
+    "login_failed": "Login failed check your credentials",
+    "sign_in": "Sign In",
+    "common_name_is_required": "Common name is required.",
+    "state_is_required": "State is required.",
+    "city_is_required": "City is required.",
+    "organization_is_required": "Organization is required.",
+    "organization_unit_is_required": "Organization unit is required.",
+    "country_is_required": "Country is required.",
+    "certificate_file_is_required": "Certificate file is required.",
+    "private_key_file_is_required": "Private key file is required.",
+    "create_self_signed_certificate_authority": "Create a self-signed Certificate Authority",
+    "import_existing_certificate_authority": "Import existing Certificate Authority",
+    "5_years": "5 years",
+    "10_years": "10 years",
+    "unknown_error_occured_while_installing_the_ca": "An unknown error occurred while installing the CA. Please try again.",
+    "ca_setup_header": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "common_name": "Common Name",
+    "state": "State",
+    "cistatety": "City",
+    "organization": "Organization",
+    "organization_unit": "Organization Unit",
+    "generate_self_signed_certificate_authority": "Generate Self-Signed Certificate Authority",
+    "select_option_setting_up_certificate_authority": "Select an option for setting-up the certificate authority that will be used to sign all Jami accounts generated on this JAMS instance.",
+    "import_certificate_authority": "Import Certificate Authority",
+    "must_be_60_characters_or_less": "Must be 60 characters or less",
+    "username_is_required": "Username is required",
+    "must_be_50_characters_or_less": "Must be 50 characters or less",
+    "password_must_match": "Passwords must match",
+    "password_confirmation_required": "Password confirmation is required",
+    "information_appears_incorrect_connection_directory_failed": "The information provided appears to be incorrect, the connection to the directory has failed. Please check the information and credentials provided and try again.",
+    "identity_management": "Identity Management",
+    "select_type_of_user_directory": "Select the type of user directory to be integrated with JAMS",
+    "set_identity_parameters": "Set identity parameters",
+    "create_administrator_user": "Create Administrator User",
+    "certificate_authority_setup": "Certificate Authority Setup",
+    "server_parameters": "Server Parameters",
+    "choose_a_country": "Choose a country",
+    "active_directory_server_informations": "Active directory server informations",
+    "port": "Port",
+    "host": "Host",
+    "admin_username": "Admin username",
+    "domain_name": "Domain Name",
+    "yes": "Yes",
+    "no": "No",
+    "ldap_server_information": "LDAP Server informations",
+    "server_address": "Server address",
+    "administrator_username": "Administrator username",
+    "base_dn_please_use_ldap_convention": "Base DN (Please use LDAP convention)",
+    "field_ldap_structure_contains_username": "This is the field in your LDAP structure which contains the username.",
+    "use_public_nameserver": "Use public nameserver",
+    "check_box_register_usernames_on_jami_public_nameserver": "Check this box if you want to register your usernames on Jami's public nameserver.",
+    "domain_is_required": "Domain is required.",
+    "5_minutes": "5 minutes",
+    "10_minutes": "10 minutes",
+    "15_minutes": "15 minutes",
+    "30_minutes": "30 minutes",
+    "60_minutes": "60 minutes",
+    "1_month": "1 Month",
+    "3_months": "3 Months",
+    "6_months": "6 Months",
+    "1_year": "1 Year",
+    "please_enter_valid_cors_domain_url": "Please enter a valid CORS domain URL.",
+    "global_parameters_cover_general_configuration_of_servers_engine": "The global parameters cover the general configuration of the server's engine.",
+    "cors_domain_name": "CORS domain name",
+    "set_domain_of_web_cleint_server_to_connect_to_hans_admin_dashboard_and_jami_accounts_also_to_set_client_crls_ocsps": "Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates.",
+    "domain_name_of_web_client_server": "The domain name of your web client server. Requires http:// or https://",
+    "domain": "Domain",
+    "certificate_revocation_list_lifetime": "Certificate Revocation List Lifetime",
+    "set_liftetime_crl_list_certificates_revoked": "Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date.",
+    "device_lifetime": "Device lifetime",
+    "user_account_lifetime": "User account lifetime",
+    "account_lifetime_should_be_bigger_to_device_lifetime": "The account lifetime should be longer than the Device lifetime.",
+    "sip_configuration_template": "SIP Configuration Template",
+    "set_server_parameters": "Set Server Parameters",
+    "search_users_using": "Search users using (username, name, phone, email, ...)",
+    "search_users": "Search users",
+    "servername_is_required": "Server name is required.",
+    "password_is_required": "Password is required.",
+    "domain_name_is_required": "Domain name is required.",
+    "port_must_be_a_number": "Port must be a number.",
+    "port_must_be_positive": "Port must be positive.",
+    "port_must_be_an_integer": "Port must be an integer.",
+    "port_number_is_required": "Port number is required.",
+    "host_is_required": "Host is required.",
+    "local_database": "Local Database",
+    "ldap_server": "LDAP Server",
+    "active_directory": "Active Directory",
+    "no_users_found_matching": "No users found mathcing search value!",
+    "device_name": "Device Name",
+    "status": "Status",
+    "actions": "Actions",
+    "revoke_device": "Revoke Device",
+    "update_device_information": "Update Device Information",
+    "device_display_name": "Device Display Name",
+    "cancel": "Cancel",
+    "update": "Update",
+    "are_you_sure_you_want_to_revoke_this_device": "Are you sure you want to revoke this device?",
+    "confirm_revoke": "Confirm Revoke",
+    "add_a_contact": "Add a contact",
+    "new_version_jams_available": "A new version of JAMS is available. Would you like to update now?",
+    "running_community_version_jams": "You are currently running the community version of JAMS. Would you like to purchase a JAMS subscription?",
+    "you_are_not_allowed_to_access_this_section": "You are not allowed to access this section. Please contact your administrator to get administrator privileges.",
+    "an_update_is_available_for_jams": "An update is available for JAMS.",
+    "updating_jams_shutting_down_shortly": "Updating JAMS, shutting down shortly...",
+    "error_while_attempting_update_jams": "Error while attempting to update JAMS: ",
+    "permissions": "Permissions",
+    "configuration": "Configuration",
+    "updated_blueprint_configuration_successfully": "Updated blueprint configuration successfully !",
+    "error_updating_blueprint_configuration": "Error updating blueprint configuration ",
+    "enable_upnp": "Enable UPnP",
+    "use_jami_default_turn_configuration": "Use Jami default Turn configuration",
+    "use_a_custom_turn_configuration": "Use a custom Turn configuration",
+    "turn_server_address": "TURN Server address",
+    "turn_server_username": "TURN server username",
+    "turn_server_password": "TURN server password",
+    "disable_turn_configuration": "Disable Turn configuration",
+    "use_jami_default_dht_proxy_configuration": "Use Jami default DHT Proxy configuration",
+    "use_a_custom_dht_proxy_configuration": "Use a custom DHT Proxy configuration",
+    "dht_proxy_server_name": "DHT proxy server name",
+    "dht_proxy_list_url": "DHT proxy List URL",
+    "disable_dht_proxy_configuration": "Disable DHT Proxy configuration",
+    "updated_blueprint_permissions_successfully": "Updated blueprint permissions successfully !",
+    "error_updating_blueprint_permissions": "Error updating blueprint permissions ",
+    "allow_video_calls": "Allow videos calls",
+    "allow_incoming_calls_from_unknown_contacts": "Allow incoming calls from unknown contacts",
+    "auto_answer_calss": "Auto answer calls",
+    "allow_use_of_jami_in_local_lan": "Allow use of Jami in a local lan",
+    "convert_your_account_into_a_rendezvous_point": "Activate this account into rendezvous mode",
+    "blueprint_name_already_exists": "Blueprint name already exists!",
+    "blueprint_name_is_empty": "Blueprint name is empty",
+    "remove_blueprint": "Remove blueprint",
+    "are_you_sure_you_want_to_delete": "Are you sure you want to delete",
+    "remove": "Remove",
+    "create_blueprint": "Create blueprint",
+    "search_blueprints_placeholder": "Search blueprints ...",
+    "search_blueprints": "Search blueprints",
+    "no_blueprints_found": "No blueprints found.",
+    "no_blueprint_name": "No blueprint name",
+    "no_description": "No description",
+    "no_users_count": "No users count",
+    "add_contact": "Add contact ...",
+    "remove_contact": "Remove contact",
+    "are_you_sure_you_want_to_remove": "Are you sure you want to remove",
+    "from": "from",
+    "contacts": "contacts",
+    "search_contacts_using": "Search contacts using (uri, firstname, lastname)",
+    "search_contacts": "Search contacts",
+    "has_no_contacts": " has no contacts",
+    "edit_group": "Edit group",
+    "add_user_to": "Add user to",
+    "action": "Action",
+    "remove_user": "Remove user",
+    "create_group": "Create group",
+    "group_name": "Group name",
+    "group_name_already_exists": "Group name already exists!",
+    "group_name_is_empty": "Group name is empty",
+    "remove_group": "Remove group",
+    "search_groups_placeholder": "Search groups ...",
+    "search_groups": "Search groups",
+    "no_groups_found": "No groups Found",
+    "blueprint": "Blueprint",
+    "admin_password": "Admin Password",
+    "subscription": "Subscription",
+    "an_error_occured_while_getting_license_information": "An error occurred while getting subscription information!",
+    "subscription_code_is_required": "Subscription code is required",
+    "license_registred_successfully": "Subscription registered successfully!",
+    "a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found": "A generic occurred while trying to load your subscription or your subscription could not be found!",
+    "subscription_code": "Subscription Code",
+    "register": "Register",
+    "your_license_is_already_activated": "Your subscription is already activated!",
+    "admin_password_updated_successfully": "Admin password updated successfully!",
+    "updating_user": "Updating user ",
+    "password_failed": " password failed with error: ",
+    "enter_the_following_information_below_to_change_your_admin_password": "Enter the following information below to change your admin password.",
+    "Confirm password": "Confirm password",
+    "generate": "Generate",
+    "copy_to_clipboard": "Copy to clipboard",
+    "copied": "Copied",
+    "generated": "Generated",
+    "change_admin_password": "Change administrator password",
+    "active": "Active",
+    "revoked": "Revoked",
+    "revoke_user_account": "Revoke user account",
+    "are_you_sure_want_revoke": "Are you sure you want to revoke",
+    "revoke": "Revoke",
+    "revoke_user": "Revoke user",
+    "edit_profile": "Edit Profile",
+    "change_password": "Change password",
+    "minimum_3_characters": "Minimum 3 characters!",
+    "maximum_32_characters": "Maximum 32 characters!",
+    "only_alphanumeric_characters": "Only alphanumeric characters!",
+    "first_name_is_too_short": "First name is too short!",
+    "last_name_is_too_short": "Last Name is too short!",
+    "invalid_email": "Invalid email!",
+    "organization_name_too_short": "Organization name is too short!",
+    "fax_not_valid": "Fax not valid!",
+    "phone_not_valid": "Phone not valid!",
+    "mobile_not_valid": "Mobile not valid!",
+    "crop_image": "Crop image",
+    "zoom": "Zoom",
+    "rotation": "Rotation",
+    "crop": "Crop",
+    "create_new_profile": "Create new profile",
+    "change_profile_image": "Change profile image",
+    "username_already_taken": "Username already taken",
+    "first_name": "First name",
+    "last_name": "Last name",
+    "email": "Email",
+    "fax_number": "Fax number",
+    "phone_number": "Phone number",
+    "extension": "Extension",
+    "mobile": "Mobile",
+    "create_profile": "Create Profile",
+    "save_profile": "Save Profile",
+    "profile": "Profile",
+    "devices": "Devices",
+    "no_users_found": "No users found",
+    "advanced_settings": "Advanced settings",
+    "create_administrator": "Create Administrator",
+    "paste_your_jams_enterprise_subscription_code_received_from_jami": "Paste your JAMS Enterprise subscription code received from the Jami store.",
+    "blueprint_name": "Blueprint name"
+}
diff --git a/jams-react-client/src/routes.js b/jams-react-client/src/routes.js
index c3d6e7fb81872ecb1a5fa8a3b26d7e211c21c040..525ca3c058d133af1630355ea9adc9d2d0d2a118 100644
--- a/jams-react-client/src/routes.js
+++ b/jams-react-client/src/routes.js
@@ -15,11 +15,13 @@
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 
 */
+import React, { Suspense } from "react";
+
 // @material-ui/icons
 import Person from "@material-ui/icons/Person";
 import Group from "@material-ui/icons/Group";
 import AllInbox from "@material-ui/icons/AllInbox";
-import SettingsIcon from '@material-ui/icons/Settings';
+import SettingsIcon from "@material-ui/icons/Settings";
 // core components/views for Admin layout
 import Users from "views/Users/Users.js";
 import Groups from "views/Groups/Groups.js";
@@ -27,38 +29,57 @@ import Blueprints from "views/Blueprints/Blueprints.js";
 import Settings from "views/Settings/Settings.js";
 // core components/views for RTL layout
 
+import "./i18n";
+import i18next from "i18next";
+
 const dashboardRoutes = [
   {
     path: "/users",
-    name: "Users",
+    name: (
+      <Suspense fallback={<div>Loading...</div>}>
+        {i18next.t("users", "Users")}
+      </Suspense>
+    ),
     rtlName: "المستخدمون",
     icon: Person,
     component: Users,
-    layout: "/admin"
+    layout: "/admin",
   },
   {
     path: "/groups",
-    name: "Groups",
+    name: (
+      <Suspense fallback={<div>Loading...</div>}>
+        {i18next.t("groups", "Groups")}
+      </Suspense>
+    ),
     rtlName: "مجموعات",
     icon: Group,
     component: Groups,
-    layout: "/admin"
+    layout: "/admin",
   },
   {
     path: "/blueprints",
-    name: "Blueprints",
+    name: (
+      <Suspense fallback={<div>Loading...</div>}>
+        {i18next.t("blueprints", "Blueprints")}
+      </Suspense>
+    ),
     rtlName: "المخططات",
     icon: AllInbox,
     component: Blueprints,
-    layout: "/admin"
+    layout: "/admin",
   },
   {
     path: "/settings",
-    name: "Settings",
+    name: (
+      <Suspense fallback={<div>Loading...</div>}>
+        {i18next.t("settings", "Settings")}
+      </Suspense>
+    ),
     rtlName: "حضانة بيض",
     icon: SettingsIcon,
     component: Settings,
-    layout: "/admin"
+    layout: "/admin",
   },
 ];
 
diff --git a/jams-react-client/src/views/Blueprint/Blueprint.js b/jams-react-client/src/views/Blueprint/Blueprint.js
index 30d9a7d3c7ca4d53baf0eac0f693a1c03fe4e6b6..eb47e88df2e18aa9a184d38d3e31ab68f1bc70dd 100644
--- a/jams-react-client/src/views/Blueprint/Blueprint.js
+++ b/jams-react-client/src/views/Blueprint/Blueprint.js
@@ -17,6 +17,7 @@ import {
   infoColor
 } from "assets/jss/material-dashboard-react.js";
 
+import i18next from "i18next";
 
 function TabPanel(props) {
   const { children, value, index, ...other } = props;
@@ -84,8 +85,8 @@ export default function Blueprint(props) {
     <div>
       <AppBar position="static" style={{ background: infoColor[0] }}>
         <Tabs value={value} onChange={handleChange} aria-label="simple tabs example">
-          <Tab label="Permissions" {...a11yProps(0)} />
-          <Tab label="Configuration" {...a11yProps(1)} />
+          <Tab label={i18next.t("permissions", "Permissions")} {...a11yProps(0)} />
+          <Tab label={i18next.t("configuration", "Configuration")} {...a11yProps(1)} />
         </Tabs>
       </AppBar>
       <TabPanel value={value} index={0}>
diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js b/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
index 4042b2be365b3217c830745ad050bbd776e776b5..762cf637b3bfe7c4219a3578e33c62b3adab1932 100644
--- a/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
+++ b/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
@@ -48,6 +48,8 @@ import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardS
 
 import Switch from "@material-ui/core/Switch";
 
+import i18next from "i18next";
+
 const styles = (theme) => ({
   ...dashboardStyle,
   root: {
@@ -311,13 +313,13 @@ export default function EditBlueprintConfiguration(props) {
         setOpen(false);
         setSeverity("success");
         setOpen(true);
-        setMessage("Updated blueprint configuration successfully !");
+        setMessage(i18next.t("updated_blueprint_configuration_successfully", "Updated blueprint configuration successfully !"));
       })
       .catch((error) => {
         setOpen(false);
         setSeverity("error");
         setOpen(true);
-        setMessage("Error updating blueprint configuration " + error + "!");
+        setMessage(i18next.t("error_updating_blueprint_configuration", "Error updating blueprint configuration ") + error + "!");
       });
   };
 
@@ -387,7 +389,7 @@ export default function EditBlueprintConfiguration(props) {
               <CardIcon color="info">
                 <BuildOutlinedIcon />
               </CardIcon>
-              <p className={classes.cardCategory}>Configuration</p>
+              <p className={classes.cardCategory}>{i18next.t("configuration", "Configuration")}</p>
               <h3 className={classes.cardTitle}>{props.blueprintName}</h3>
             </CardHeader>
             <CardBody profile>
@@ -412,7 +414,7 @@ export default function EditBlueprintConfiguration(props) {
                           inputProps={{ "aria-label": "secondary checkbox" }}
                         />
                       }
-                      label="Enable UPnP"
+                      label={i18next.t("enable_upnp", "Enable UPnP")}
                     />
                   </Grid>
                   <Grid item xs={12} sm={12} md={12}>
@@ -427,12 +429,12 @@ export default function EditBlueprintConfiguration(props) {
                         <FormControlLabel
                           value="defaultTurn"
                           control={<StyledRadio />}
-                          label="Use Jami default Turn configuration"
+                          label={i18next.t("use_jami_default_turn_configuration", "Use Jami default Turn configuration")}
                         />
                         <FormControlLabel
                           value="customTurn"
                           control={<StyledRadio />}
-                          label="Use a custom Turn configuration"
+                          label={i18next.t("use_a_custom_turn_configuration", "Use a custom Turn configuration")}
                         />
                         <FormGroup
                           row
@@ -445,7 +447,7 @@ export default function EditBlueprintConfiguration(props) {
                         >
                           <FormControl className={classes.margin} size="large">
                             <InputLabel htmlFor="turnServer">
-                              TURN Server address
+                            {i18next.t("turn_server_address", "TURN Server address")}
                             </InputLabel>
                             <Input
                               id="turnServer"
@@ -477,7 +479,7 @@ export default function EditBlueprintConfiguration(props) {
                         >
                           <FormControl className={classes.margin} size="large">
                             <InputLabel htmlFor="turnServerUserName">
-                              TURN server username
+                              {i18next.t("turn_server_username", "TURN server username")}
                             </InputLabel>
                             <Input
                               id="turnServerUserName"
@@ -509,7 +511,7 @@ export default function EditBlueprintConfiguration(props) {
                         >
                           <FormControl className={classes.margin} size="large">
                             <InputLabel htmlFor="turnServerPassword">
-                              TURN server password
+                            {i18next.t("turn_server_password", "TURN server password")}
                             </InputLabel>
                             <Input
                               disabled={!turnEnabled}
@@ -548,7 +550,7 @@ export default function EditBlueprintConfiguration(props) {
                         <FormControlLabel
                           value="disabledTurn"
                           control={<StyledRadio />}
-                          label="Disable Turn configuration"
+                          label={i18next.t("disable_turn_configuration", "Disable Turn configuration")}
                         />
                       </RadioGroup>
                     </FormControl>
@@ -566,12 +568,12 @@ export default function EditBlueprintConfiguration(props) {
                         <FormControlLabel
                           value="defaultDHTProxy"
                           control={<StyledRadio />}
-                          label="Use Jami default DHT Proxy configuration"
+                          label={i18next.t("use_jami_default_dht_proxy_configuration", "Use Jami default DHT Proxy configuration")}
                         />
                         <FormControlLabel
                           value="customDHTProxy"
                           control={<StyledRadio />}
-                          label="Use a custom DHT Proxy configuration"
+                          label={i18next.t("use_a_custom_dht_proxy_configuration", "Use a custom DHT Proxy configuration")}
                         />
                         <FormGroup row>
                           <FormControl
@@ -585,7 +587,7 @@ export default function EditBlueprintConfiguration(props) {
                             }}
                           >
                             <InputLabel htmlFor="proxyServer">
-                              DHT proxy server name
+                            {i18next.t("dht_proxy_server_name", "DHT proxy server name")}
                             </InputLabel>
                             <Input
                               id="proxyServer"
@@ -618,7 +620,7 @@ export default function EditBlueprintConfiguration(props) {
                             }}
                           >
                             <InputLabel htmlFor="dhtProxyListUrl">
-                              DHT proxy List URL
+                              {i18next.t("dht_proxy_list_url", "DHT proxy List URL")}
                             </InputLabel>
                             <Input
                               id="proxyServer"
@@ -642,7 +644,7 @@ export default function EditBlueprintConfiguration(props) {
                         <FormControlLabel
                           value="disabledDHTProxy"
                           control={<StyledRadio />}
-                          label="Disable DHT Proxy configuration"
+                          label={i18next.t("disable_dht_proxy_configuration", "Disable DHT Proxy configuration")}
                         />
                       </RadioGroup>
                     </FormControl>
diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js b/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
index e9552acc16a3dd10e59575406b65ac40df540f7e..43ef2f48d7989caa0e0c0e727da7ad2efa23b646 100644
--- a/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
+++ b/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
@@ -28,6 +28,8 @@ import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardS
 
 import MuiAlert from "@material-ui/lab/Alert";
 
+import i18next from "i18next";
+
 const styles = (theme) => ({
   ...dashboardStyle,
   root: {
@@ -200,13 +202,13 @@ export default function EditBlueprintPermissions(props) {
         setOpen(false);
         setSeverity("success");
         setOpen(true);
-        setMessage("Updated blueprint permissions successfully !");
+        setMessage(i18next.t("updated_blueprint_permissions_successfully", "Updated blueprint permissions successfully !"));
       })
       .catch((error) => {
         setOpen(false);
         setSeverity("error");
         setOpen(true);
-        setMessage("Error updating blueprint permissions " + error + "!");
+        setMessage(i18next.t("error_updating_blueprint_permissions", "Error updating blueprint permissions ") + error + "!");
       });
   };
 
@@ -234,7 +236,7 @@ export default function EditBlueprintPermissions(props) {
               <CardIcon color="info">
                 <PriorityHighOutlinedIcon />
               </CardIcon>
-              <p className={classes.cardCategory}>Permissions</p>
+              <p className={classes.cardCategory}>{i18next.t("permissions", "Permissions")}</p>
               <h3 className={classes.cardTitle}>{props.blueprintName}</h3>
             </CardHeader>
             <CardBody profile>
@@ -257,7 +259,7 @@ export default function EditBlueprintPermissions(props) {
                             name="videoEnabled"
                           />
                         }
-                        label="Allow videos calls"
+                        label={i18next.t("allow_video_calls", "Allow videos calls")}
                       />
                     </FormGroup>
                     <FormGroup row>
@@ -276,7 +278,7 @@ export default function EditBlueprintPermissions(props) {
                             name="publicInCalls"
                           />
                         }
-                        label="Allow incoming calls from unknown contacts"
+                        label={i18next.t("allow_incoming_calls_from_unknown_contacts", "Allow incoming calls from unknown contacts")}
                       />
                     </FormGroup>
                     <FormGroup row>
@@ -295,7 +297,7 @@ export default function EditBlueprintPermissions(props) {
                             name="autoAnswer"
                           />
                         }
-                        label="Auto answer calls"
+                        label={i18next.t("auto_answer_calss", "Auto answer calls")}
                       />
                     </FormGroup>
                     <FormGroup row>
@@ -314,7 +316,7 @@ export default function EditBlueprintPermissions(props) {
                             name="peerDiscovery"
                           />
                         }
-                        label="Allow use of Jami in a local lan"
+                        label={i18next.t("allow_use_of_jami_in_local_lan", "Allow use of Jami in a local lan")}
                       />
                     </FormGroup>
                     <FormGroup row>
@@ -333,7 +335,7 @@ export default function EditBlueprintPermissions(props) {
                             name="rendezVous"
                           />
                         }
-                        label="Convert your account into a rendezvous point"
+                        label={i18next.t("convert_your_account_into_a_rendezvous_point", "Activate this account into rendezvous mode")}
                       />
                     </FormGroup>
                   </Grid>
diff --git a/jams-react-client/src/views/Blueprints/Blueprints.js b/jams-react-client/src/views/Blueprints/Blueprints.js
index 6ebfc28f62fdddc7b5b03998e6f6007ba68e6c79..25b3b5fef4cd755c1411b998ba3738b0a532b456 100644
--- a/jams-react-client/src/views/Blueprints/Blueprints.js
+++ b/jams-react-client/src/views/Blueprints/Blueprints.js
@@ -45,6 +45,8 @@ import DialogTitle from "@material-ui/core/DialogTitle";
 
 import { debounce } from "lodash";
 
+import i18next from "i18next";
+
 const styles = {
   ...headerLinksStyle,
   cardCategoryWhite: {
@@ -238,8 +240,7 @@ export default function Blueprints() {
     return (
       <div>
         <h4>
-          You are not allowed to access this section. Please contact your
-          administrator to get administrator privileges.
+        {i18next.t("you_are_not_allowed_to_access_this_section", "You are not allowed to access this section. Please contact your administrator to get administrator privileges.")}
         </h4>
       </div>
     );
@@ -260,7 +261,7 @@ export default function Blueprints() {
             aria-describedby="alert-dialog-description"
           >
             <DialogTitle id="alert-dialog-title">
-              {"Create blueprint"}
+            {i18next.t("create_blueprint", "Create blueprint")}
             </DialogTitle>
             <DialogContent>
               <DialogContentText id="alert-dialog-description">
@@ -270,11 +271,11 @@ export default function Blueprints() {
                   error={blueprintNameExits}
                 >
                   <InputLabel htmlFor="blueprintName">
-                    Blueprint name
+                  {i18next.t("blueprint_name", "Blueprint name")}
                   </InputLabel>
                   <Input
                     id="blueprintName"
-                    placeholder="Blueprint Name"
+                    placeholder={i18next.t("blueprint_name", "Blueprint name")}
                     startAdornment={
                       <InputAdornment position="start">
                         <AllInbox />
@@ -287,10 +288,10 @@ export default function Blueprints() {
                   />
                 </FormControl>
                 {disableCreate && blueprintName.length > 0 && (
-                  <p>Bluerpint name already exists!</p>
+                  <p>{i18next.t("blueprint_name_already_exists", "Blueprint name already exists!")}</p>
                 )}
                 {disableCreate && blueprintName.length == 0 && (
-                  <p>Bluerpint name is empty</p>
+                  <p>{i18next.t("blueprint_name_is_empty", "Blueprint name is empty")}</p>
                 )}
               </DialogContentText>
             </DialogContent>
@@ -315,11 +316,11 @@ export default function Blueprints() {
             aria-describedby="alert-dialog-description"
           >
             <DialogTitle id="alert-dialog-title">
-              {"Remove blueprint"}
+            {i18next.t("remove_blueprint", "Remove blueprint")}
             </DialogTitle>
             <DialogContent>
               <DialogContentText id="alert-dialog-description">
-                Are you sure you want to delete{" "}
+              {i18next.t("are_you_sure_you_want_to_delete", "Are you sure you want to delete")}{" "}
                 <strong>{removedBlueprint}</strong> ?
               </DialogContentText>
             </DialogContent>
@@ -328,10 +329,10 @@ export default function Blueprints() {
                 onClick={() => setOpenRemoveDialog(false)}
                 color="primary"
               >
-                Cancel
+                {i18next.t("cancel", "Cancel")}
               </Button>
               <Button onClick={removeBlueprint} color="info" autoFocus>
-                Remove
+              {i18next.t("remove", "Remove")}
               </Button>
             </DialogActions>
           </Dialog>
@@ -343,7 +344,7 @@ export default function Blueprints() {
                 href="#contained-buttons"
                 onClick={(e) => setOpen(true)}
               >
-                <AddCircleOutlineIcon /> Create blueprint
+                <AddCircleOutlineIcon /> {i18next.t("create_blueprint", "Create blueprint")}
               </Button>
               <div className={classes.searchWrapper}>
                 {!zeroBlueprint && (
@@ -352,9 +353,9 @@ export default function Blueprints() {
                       className: classes.margin + " " + classes.search,
                     }}
                     inputProps={{
-                      placeholder: "Search blueprints ...",
+                      placeholder: i18next.t("search_blueprints_placeholder", "Search blueprints ..."),
                       inputProps: {
-                        "aria-label": "Search blueprints",
+                        "aria-label": i18next.t("search_blueprints", "Search blueprints"),
                       },
                       onKeyUp: (e) => setSearchValue(e.target.value),
                     }}
@@ -371,7 +372,7 @@ export default function Blueprints() {
             {zeroBlueprint ? (
               <div className={classes.blueprintsNotFound}>
                 <InfoIcon />
-                <p style={{ marginLeft: "10px" }}>No blueprints found</p>
+                  <p style={{ marginLeft: "10px" }}>{i18next.t("no_blueprints_found", "No blueprints found.")}</p>
               </div>
             ) : (
               blueprints.map((blueprint) => (
@@ -385,10 +386,10 @@ export default function Blueprints() {
                         <h3 className={classes.cardTitle}>
                           {blueprint.name
                             ? blueprint.name
-                            : "No blueprint name"}
+                            : i18next.t("no_blueprint_name", "No blueprint name")}
                         </h3>
                         <strong>Description:</strong>
-                        <p>{"No description"}</p>
+                        <p>{i18next.t("no_description", "No description")}</p>
                         <ul>
                           <li>
                             <GroupIcon
@@ -397,7 +398,7 @@ export default function Blueprints() {
                             />{" "}
                             {blueprint.usersCount
                               ? blueprint.usersCount + " user(s)"
-                              : "No users count"}
+                              : i18next.t("no_users_count", "No users count")}
                           </li>
                         </ul>
                       </a>
diff --git a/jams-react-client/src/views/Contacts/Contacts.js b/jams-react-client/src/views/Contacts/Contacts.js
index ef33b407ae7be335e646dfb2bed729176842e45d..491a98f70b34375bf4a3111a3d20b8d7193ec8af 100644
--- a/jams-react-client/src/views/Contacts/Contacts.js
+++ b/jams-react-client/src/views/Contacts/Contacts.js
@@ -42,6 +42,8 @@ import DialogContent from "@material-ui/core/DialogContent";
 import DialogContentText from "@material-ui/core/DialogContentText";
 import DialogTitle from "@material-ui/core/DialogTitle";
 
+import i18next from "i18next";
+
 const styles = {
   ...headerLinksStyle,
   cardCategoryWhite: {
@@ -256,7 +258,7 @@ export default function Users(props) {
         setOpenDrawer={setOpenDrawer}
         direction="right"
         addingToGroup={false}
-        placeholder="Add contact ..."
+        placeholder={i18next.t("add_contact", "Add contact ...")}
       />
       <Dialog
         open={open}
@@ -264,20 +266,20 @@ export default function Users(props) {
         aria-labelledby="alert-dialog-title"
         aria-describedby="alert-dialog-description"
       >
-        <DialogTitle id="alert-dialog-title">{"Remove contact"}</DialogTitle>
+        <DialogTitle id="alert-dialog-title">{i18next.t("remove_contact", "Remove contact")}</DialogTitle>
         <DialogContent>
           <DialogContentText id="alert-dialog-description">
-            Are you sure you want to remove{" "}
-            <strong>{removedContactName}</strong> from {props.username} contacts{" "}
+          {i18next.t("are_you_sure_you_want_to_remove", "Are you sure you want to remove")}
+            <strong>{removedContactName}</strong> {i18next.t("from", "from")} {props.username} {i18next.t("contacts", "contacts")}{" "}
             ?
           </DialogContentText>
         </DialogContent>
         <DialogActions>
           <Button onClick={() => setOpen(false)} color="primary">
-            Cancel
+          {i18next.t("cancel", "Cancel")}
           </Button>
           <Button onClick={removeContact} color="info" autoFocus>
-            Remove
+            {i18next.t("remove", "Remove")}
           </Button>
         </DialogActions>
       </Dialog>
@@ -291,7 +293,7 @@ export default function Users(props) {
               setOpenDrawer(true);
             }}
           >
-            <AddCircleOutlineIcon /> Add a contact
+            <AddCircleOutlineIcon /> {i18next.t("add_a_contact", "Add a contact")}
           </Button>
           <div className={classes.searchWrapper}>
             <CustomInput
@@ -299,9 +301,9 @@ export default function Users(props) {
                 className: classes.margin + " " + classes.search,
               }}
               inputProps={{
-                placeholder: "Search contacts using (uri, firstname, lastname)",
+                placeholder: i18next.t("search_contacts_using", "Search contacts using (uri, firstname, lastname)"),
                 inputProps: {
-                  "aria-label": "Search contacts",
+                  "aria-label": i18next.t("search_contacts", "Search contacts"),
                 },
                 onKeyUp: (e) => setSearchValue(e.target.value),
               }}
@@ -385,7 +387,7 @@ export default function Users(props) {
               </Card>
             </GridItem>
           ))}
-        {contacts == [] && props.username + " has no contacts"}
+        {contacts == [] && props.username + i18next.t("has_no_contacts", " has no contacts")}
       </GridContainer>
     </div>
   );
diff --git a/jams-react-client/src/views/Groups/EditGroup.js b/jams-react-client/src/views/Groups/EditGroup.js
index 56f024dec89a0fe5cebc3a451ae032e75a56adbf..2a182b13ae1e594f90642a270c0e4daa5db16a24 100644
--- a/jams-react-client/src/views/Groups/EditGroup.js
+++ b/jams-react-client/src/views/Groups/EditGroup.js
@@ -51,6 +51,8 @@ import TemporaryDrawer from "components/Drawer/Drawer"
 import * as tool from "../../tools";
 import auth from 'auth.js'
 
+import i18next from "i18next";
+
 const useStyles = makeStyles((theme) => ({
     ...devicesStyle,
     ...dashboardStyle,
@@ -205,7 +207,7 @@ export default function EditGroup(props) {
                             <CardIcon color="info">
                                 <EditIcon />
                             </CardIcon>
-                            <p className={classes.cardCategory}>Edit group</p>
+                                <p className={classes.cardCategory}>{i18next.t("edit_group", "Edit group")}</p>
                             <h3 className={classes.cardTitle}>{newName}</h3>
                         </CardHeader>
                         <CardBody profile>
@@ -257,12 +259,12 @@ export default function EditGroup(props) {
                     </Card>
                 </GridItem>
                 <GridItem xs={12} sm={12} md={12}>
-                    <Button color="primary" onClick={() => {setOpenDrawer(true)}}><AddCircleOutlineIcon /> Add user to {props.groupName}</Button>
+                    <Button color="primary" onClick={() => {setOpenDrawer(true)}}><AddCircleOutlineIcon /> {i18next.t("add_user_to", "Add user to")} {props.groupName}</Button>
                     <Table className={classes.table}>
                         <TableHead>
                             <TableRow>
-                                <TableCell>Username</TableCell>
-                                <TableCell align="right">Action</TableCell>
+                                <TableCell>{i18next.t("username", "Username")}</TableCell>
+                                <TableCell align="right">{i18next.t("action", "Action")}</TableCell>
                             </TableRow>
                         </TableHead>
                         <TableBody>
@@ -272,7 +274,7 @@ export default function EditGroup(props) {
                                         {user}
                                     </TableCell>
                                     <TableCell align="right" className={classes.tableActions}>
-                                        <Button color="primary" onClick={() => removeUserFromGroup(user)}>Remove user</Button>
+                                        <Button color="primary" onClick={() => removeUserFromGroup(user)}>{i18next.t("remove_user", "Remove user")}</Button>
                                     </TableCell>
                                 </TableRow>
                             ) }
diff --git a/jams-react-client/src/views/Groups/Groups.js b/jams-react-client/src/views/Groups/Groups.js
index ceaf18df8bf706034ae600dd70b82c054305ec8e..3279a3b0e736aadae9dd69dc14f512cb6c895451 100644
--- a/jams-react-client/src/views/Groups/Groups.js
+++ b/jams-react-client/src/views/Groups/Groups.js
@@ -53,6 +53,8 @@ import { debounce } from "lodash";
 
 import LinearProgress from "@material-ui/core/LinearProgress";
 
+import i18next from "i18next";
+
 const styles = {
   cardCategoryWhite: {
     color: "rgba(255,255,255,.62)",
@@ -291,8 +293,7 @@ export default function Groups() {
     return (
       <div>
         <h4>
-          You are not allowed to access this section. Please contact your
-          administrator to get administrator privileges.
+          {i18next.t("you_are_not_allowed_to_access_this_section", "You are not allowed to access this section. Please contact your administrator to get administrator privileges.")}
         </h4>
       </div>
     );
@@ -320,7 +321,7 @@ export default function Groups() {
           aria-labelledby="alert-dialog-title"
           aria-describedby="alert-dialog-description"
         >
-          <DialogTitle id="alert-dialog-title">{"Create group"}</DialogTitle>
+          <DialogTitle id="alert-dialog-title">{i18next.t("create_group", "Create group")}</DialogTitle>
           <DialogContent>
             <DialogContentText id="alert-dialog-description">
               <Grid container spacing={2}>
@@ -330,10 +331,10 @@ export default function Groups() {
                     error={groupNameExits}
                     fullWidth
                   >
-                    <InputLabel htmlFor="groupName">Group name</InputLabel>
+                    <InputLabel htmlFor="groupName">{i18next.t("group_name", "Group name")}</InputLabel>
                     <Input
                       id="groupName"
-                      placeholder="Group Name"
+                      placeholder={i18next.t("group_name", "Group name")}
                       startAdornment={
                         <InputAdornment position="start">
                           <PeopleOutlineIcon />
@@ -346,10 +347,10 @@ export default function Groups() {
                     />
                   </FormControl>
                   {disableCreate && groupName.length > 0 && (
-                    <p>Group name already exists!</p>
+                    <p>{i18next.t("group_name_already_exists", "Group name already exists!")}</p>
                   )}
                   {disableCreate && groupName.length == 0 && (
-                    <p>Group name is empty</p>
+                    <p>{i18next.t("group_name_is_empty", "Group name is empty")}</p>
                   )}
                 </Grid>
                 <Grid item xs={12} sm={12} md={12}>
@@ -386,18 +387,18 @@ export default function Groups() {
           aria-labelledby="alert-dialog-title"
           aria-describedby="alert-dialog-description"
         >
-          <DialogTitle id="alert-dialog-title">{"Remove group"}</DialogTitle>
+          <DialogTitle id="alert-dialog-title">{i18next.t("remove_group", "Remove group")}</DialogTitle>
           <DialogContent>
             <DialogContentText id="alert-dialog-description">
-              Are you sure you want to delete <strong>{removedGroup}</strong> ?
+            {i18next.t("are_you_sure_you_want_to_delete", "Are you sure you want to delete")} <strong>{removedGroup}</strong> ?
             </DialogContentText>
           </DialogContent>
           <DialogActions>
             <Button onClick={() => setOpenRemoveDialog(false)} color="primary">
-              Cancel
+              {i18next.t("cancel", "Cancel")}
             </Button>
             <Button onClick={removeGroup} color="info" autoFocus>
-              Remove
+              {i18next.t("remove", "Remove")}
             </Button>
           </DialogActions>
         </Dialog>
@@ -410,7 +411,7 @@ export default function Groups() {
                 href="#contained-buttons"
                 onClick={(e) => setOpenCreate(true)}
               >
-                <AddCircleOutlineIcon /> Create group
+                <AddCircleOutlineIcon /> {i18next.t("create_group", "Create group")}
               </Button>
             }
             <div className={classes.searchWrapper}>
@@ -420,9 +421,9 @@ export default function Groups() {
                     className: classes.margin + " " + classes.search,
                   }}
                   inputProps={{
-                    placeholder: "Search groups ...",
+                    placeholder: i18next.t("search_groups_placeholder", "Search groups ..."),
                     inputProps: {
-                      "aria-label": "Search groups",
+                      "aria-label": i18next.t("search_groups", "Search groups"),
                     },
                     onKeyUp: (e) => setSearchValue(e.target.value),
                   }}
@@ -438,7 +439,7 @@ export default function Groups() {
           </GridItem>
           {zeroGroup ? (
             <div className={classes.groupsNotFound}>
-              <InfoIcon /> <p style={{ marginLeft: "10px" }}>No groups Found</p>
+              <InfoIcon /> <p style={{ marginLeft: "10px" }}>{i18next.t("no_groups_found", "No groups Found")}</p>
             </div>
           ) : groups.length >= 1 ? (
             groups
@@ -469,7 +470,7 @@ export default function Groups() {
                             <strong style={{ marginRight: "5px" }}>
                               {group.groupMembers.length}
                             </strong>
-                            users
+                            {i18next.t("users", "users")}
                           </li>
                           <li>
                             <MailOutlineIcon
@@ -477,7 +478,7 @@ export default function Groups() {
                               style={{ marginRight: "10px" }}
                             />
                             <strong style={{ marginRight: "5px" }}>
-                              Blueprint
+                              {i18next.t("blueprint", "Blueprint")}
                             </strong>
                             {group.blueprint}
                           </li>
@@ -514,7 +515,7 @@ export default function Groups() {
                             ? groups.groupMembers
                             : 0}
                         </strong>
-                        users
+                        {i18next.t("users", "users")}
                       </li>
                       <li>
                         <MailOutlineIcon
@@ -522,7 +523,7 @@ export default function Groups() {
                           style={{ marginRight: "10px" }}
                         />
                         <strong style={{ marginRight: "5px" }}>
-                          Blueprint
+                          {i18next.t("blueprint", "Blueprint")}
                         </strong>
                         {selectedBlueprint.label}
                       </li>
diff --git a/jams-react-client/src/views/Settings/Settings.js b/jams-react-client/src/views/Settings/Settings.js
index b6166739d297b7b3af4050357f742f7adc0842b6..dd362dec83430a47b41018a4060b11c14ac86648 100644
--- a/jams-react-client/src/views/Settings/Settings.js
+++ b/jams-react-client/src/views/Settings/Settings.js
@@ -19,6 +19,8 @@ import MuiAlert from "@material-ui/lab/Alert";
 
 import auth from "auth.js";
 
+import i18next from "i18next";
+
 function TabPanel(props) {
   const { children, value, index, ...other } = props;
 
@@ -92,8 +94,7 @@ export default function Settings(props) {
     return (
       <div>
         <h4>
-          You are not allowed to access this section. Please contact your
-          administrator to get administrator privileges.
+        {i18next.t("you_are_not_allowed_to_access_this_section", "You are not allowed to access this section. Please contact your administrator to get administrator privileges.")}
         </h4>
       </div>
     );
@@ -106,8 +107,8 @@ export default function Settings(props) {
             onChange={handleChange}
             aria-label="simple tabs example"
           >
-            <Tab label="Admin Password" {...a11yProps(0)} />
-            <Tab label="Subscription" {...a11yProps(1)} />
+            <Tab label={i18next.t("admin_password", "Admin Password")} {...a11yProps(0)} />
+            <Tab label={i18next.t("subscription", "Subscription")} {...a11yProps(1)} />
           </Tabs>
         </AppBar>
         <TabPanel value={value} index={0}>
diff --git a/jams-react-client/src/views/Settings/Subscription.js b/jams-react-client/src/views/Settings/Subscription.js
index 6deaa4ef2e4c6121b3da0964ec188c7d4b995b7b..fc428884de0948ff14e796d5d05bcd4bfa959662 100644
--- a/jams-react-client/src/views/Settings/Subscription.js
+++ b/jams-react-client/src/views/Settings/Subscription.js
@@ -14,6 +14,8 @@ import { api_path_post_configuration_register_license } from '../../globalUrls'
 
 import auth from '../../auth'
 
+import i18next from "i18next";
+
 const useStyles = makeStyles((theme) => ({
     paper: {
         marginTop: theme.spacing(8),
@@ -44,7 +46,7 @@ export default function Subscription(props) {
             if(response.data["activated"] == true) setActivated(true);
         }).catch((error)=>{
             if(error.response.status == 500){
-                props.setErrorMessage("An error occured while getting license information!");
+                props.setErrorMessage(i18next.t("an_error_occured_while_getting_license_information", "An error occurred while getting subscription information!"));
                 props.setSeverity("error");
                 props.setError(true);
             }
@@ -59,7 +61,7 @@ export default function Subscription(props) {
             subscriptionCode: '',
         },
         validationSchema: Yup.object({
-            subscriptionCode: Yup.string().required('Subscription code is required'),
+            subscriptionCode: Yup.string().required(i18next.t("subscription_code_is_required", "Subscription code is required")),
         }),
 
         onSubmit: values => {
@@ -74,12 +76,12 @@ export default function Subscription(props) {
         }
 
         axios(configApiCall(api_path_post_configuration_register_license, "POST", jsonData, null)).then(()=>{
-            props.setErrorMessage("License registred successfully!");
+            props.setErrorMessage(i18next.t("license_registred_successfully", "Subscription registered successfully!"));
             props.setSeverity("success");
             props.setError(true);
         }).catch((error)=>{
             if(error.response.status == 500){
-                props.setErrorMessage("A generic occurred while trying to load your license or your license could not be found!");
+                props.setErrorMessage(i18next.t("a_generic_occured_while_trying_to_load_license_or_license_could_not_be_found", "A generic occurred while trying to load your subscription or your subscription could not be found!"));
                 props.setSeverity("error");
                 props.setError(true);
             }
@@ -89,7 +91,7 @@ export default function Subscription(props) {
     if(!activated){
         return (
             <form className={classes.form} noValidate onSubmit={formik.handleSubmit}>
-                <Typography variant="h5" gutterBottom color="primary">Paste your JAMS Enterprise subscription code received from the Jami store.</Typography>
+                <Typography variant="h5" gutterBottom color="primary">{i18next.t("paste_your_jams_enterprise_subscription_code_received_from_jami", "Paste your JAMS Enterprise subscription code received from the Jami store.")}</Typography>
                 <Grid container spacing={3}>
                     <Grid item xs={12}>
                         <TextField
@@ -98,7 +100,7 @@ export default function Subscription(props) {
                             required
                             fullWidth
                             id="subscriptionCode"
-                            label="Subscription Code"
+                            label={i18next.t("subscription_code", "Subscription Code")}
                             name="subscriptionCode"
                             autoComplete="subscriptionCode"
                             autoFocus
@@ -115,14 +117,14 @@ export default function Subscription(props) {
                     color="primary"
                     className={classes.submit}
                 >
-                    Register
+                    {i18next.t("register", "Register")}
                 </Button>
     
             </form>
         );
     }else{
         return(
-            <div><p>Your license is already activated!</p></div>
+            <div><p>{i18next.t("your_license_is_already_activated", "Your subscription is already activated!")}</p></div>
         );
     }
 
diff --git a/jams-react-client/src/views/Settings/UpdatePassword.js b/jams-react-client/src/views/Settings/UpdatePassword.js
index 52de3b057fd055a6a9641dd7bf2b132560768f6d..d29fb66b9e5c608fb3bdcde4d5ae79dd595288c2 100644
--- a/jams-react-client/src/views/Settings/UpdatePassword.js
+++ b/jams-react-client/src/views/Settings/UpdatePassword.js
@@ -23,6 +23,8 @@ import { api_path_put_update_user } from "../../globalUrls";
 
 import { CopyToClipboard } from "react-copy-to-clipboard";
 
+import i18next from "i18next";
+
 let generator = require("generate-password");
 
 const useStyles = makeStyles((theme) => ({
@@ -65,15 +67,15 @@ export default function UpdatePassword(props) {
     axios(configApiCall(api_path_put_update_user, "PUT", data, null))
       .then(() => {
         props.setSeverity("success");
-        props.setErrorMessage("Admin password updated successfully!");
+        props.setErrorMessage(i18next.t("admin_password_updated_successfully", "Admin password updated successfully!"));
         props.setError(true);
       })
       .catch((error) => {
         props.setSeverity("error");
         props.setErrorMessage(
-          "Updating user " +
+          i18next.t("updating_user", "Updating user ") +
             props.username +
-            " password failed with error: " +
+            i18next.t("password_failed", " password failed with error: ") +
             error
         );
         props.setError(true);
@@ -94,10 +96,10 @@ export default function UpdatePassword(props) {
    */
 
   const passwordSchema = Yup.object().shape({
-    password: Yup.string().required("Password is required"),
+    password: Yup.string().required(i18next.t("password_is_required", "Password is required")),
     passwordConfirmation: Yup.string().oneOf(
       [Yup.ref("password"), null],
-      "Passwords must match"
+      i18next.t("password_must_match", "Passwords must match")
     ),
   });
 
@@ -128,14 +130,14 @@ export default function UpdatePassword(props) {
       }) => (
         <form onSubmit={handleSubmit} className={classes.form}>
           <Typography variant="h5" gutterBottom color="primary">
-            Enter the following information below to change your admin password.
+          {i18next.t("enter_the_following_information_below_to_change_your_admin_password", "Enter the following information below to change your admin password.")}
           </Typography>
           <Grid container spacing={3}>
             <Grid item xs={6}>
               <FormikField
                 name="password"
-                label="Password"
-                placeholder="Password"
+                label={i18next.t("password", "Password")}
+                placeholder={i18next.t("password", "Password")}
                 type={passwordVisible ? "text" : "password"}
                 startAdornment={
                   <InputAdornment position="start">
@@ -164,8 +166,8 @@ export default function UpdatePassword(props) {
             <Grid item xs={6}>
               <FormikField
                 name="confirmPassword"
-                label="Confirm password"
-                placeholder="Confirm password"
+                label={i18next.t("Confirm password", "Confirm password")}
+                placeholder={i18next.t("Confirm password", "Confirm password")}
                 type={passwordVisible ? "text" : "password"}
                 startAdornment={
                   <InputAdornment position="start">
@@ -206,7 +208,7 @@ export default function UpdatePassword(props) {
                   setGenerated(true);
                 }}
               >
-                {"Generate"}
+                {i18next.t("generate", "Generate")}
               </Button>
               <CopyToClipboard
                 text={values.password}
@@ -222,14 +224,14 @@ export default function UpdatePassword(props) {
                   className={classes.button}
                   startIcon={<FileCopyIcon />}
                 >
-                  Copy to clipboard
+                  {i18next.t("copy_to_clipboard", "Copy to clipboard")}
                 </Button>
               </CopyToClipboard>
               {copied ? (
-                <span style={{ marginLeft: "10px" }}>Copied</span>
+                <span style={{ marginLeft: "10px" }}>{i18next.t("copied", "Copied")}</span>
               ) : null}
               {generated ? (
-                <span style={{ marginLeft: "10px" }}>Generated</span>
+                <span style={{ marginLeft: "10px" }}>{i18next.t("generated", "Generated")}</span>
               ) : null}
             </Grid>
           </Grid>
@@ -242,7 +244,7 @@ export default function UpdatePassword(props) {
             disable={!isValid && !dirty}
             className={classes.submit}
           >
-            Change Admin Password
+            {i18next.t("change_admin_password", "Change administrator password")}
           </Button>
         </form>
       )}
diff --git a/jams-react-client/src/views/UserProfile/DisplayUserProfile.js b/jams-react-client/src/views/UserProfile/DisplayUserProfile.js
index dc0907bbaa3cf5b4e53d4c7ec41ed4d8a64ee815..ce20d323d562f753b49f2155e2b3c64469f3388f 100644
--- a/jams-react-client/src/views/UserProfile/DisplayUserProfile.js
+++ b/jams-react-client/src/views/UserProfile/DisplayUserProfile.js
@@ -63,6 +63,8 @@ import VpnKeyIcon from "@material-ui/icons/VpnKey";
 
 import PasswordDialog from "components/PasswordDialog/PasswordDialog";
 
+import i18next from "i18next";
+
 const styles = (theme) => ({
   ...dashboardStyle,
   root: {
@@ -267,7 +269,7 @@ export default function DisplayUserProfile(props) {
       return (
         <Chip
           style={{ flex: 1 }}
-          label="Active"
+          label={i18next.t("active", "Active")}
           variant="outlined"
           clickable={false}
         />
@@ -276,7 +278,7 @@ export default function DisplayUserProfile(props) {
       return (
         <Chip
           style={{ flex: 1 }}
-          label="Revoked"
+          label={i18next.t("revoked", "Revoked")}
           variant="outlined"
           clickable={false}
           disabled
@@ -366,19 +368,19 @@ export default function DisplayUserProfile(props) {
         aria-describedby="alert-dialog-description"
       >
         <DialogTitle id="alert-dialog-title">
-          {"Revoke user account"}
+          {i18next.t("revoke_user_account", "Revoke user account")}
         </DialogTitle>
         <DialogContent>
           <DialogContentText id="alert-dialog-description">
-            Are you sure you want to revoke <strong>{revokedUser}</strong> ?
+            {i18next.t("are_you_sure_want_revoke", "Are you sure you want to revoke")} <strong>{revokedUser}</strong> ?
           </DialogContentText>
         </DialogContent>
         <DialogActions>
           <Button onClick={handleClose} color="primary">
-            Cancel
+            {i18next.t("cancel", "Cancel")}
           </Button>
           <Button onClick={revokeUser} color="info" autoFocus>
-            Revoke
+            {i18next.t("revoke", "Revoke")}
           </Button>
         </DialogActions>
       </Dialog>
@@ -424,7 +426,7 @@ export default function DisplayUserProfile(props) {
                             color="info"
                             onClick={() => handleClickOpen(user.username)}
                           >
-                            <DeleteIcon fontSize="small" /> Revoke user
+                            <DeleteIcon fontSize="small" /> {i18next.t("revoke_user", "Revoke user")}
                           </Button>
                         )}
                       </div>
@@ -551,7 +553,7 @@ export default function DisplayUserProfile(props) {
                   color="info"
                   onClick={() => props.setDisplayUser(false)}
                 >
-                  <EditIcon /> Edit Profile
+                  <EditIcon /> {i18next.t("edit_profile", "Edit Profile")}
                 </Button>
               )}
               {auth.isLocalDirectory() && auth.hasAdminScope() && (
@@ -561,7 +563,7 @@ export default function DisplayUserProfile(props) {
                     setChangePasswordOpen(true);
                   }}
                 >
-                  <VpnKeyIcon /> Change password
+                  <VpnKeyIcon /> {i18next.t("change_password", "Change password")}
                 </Button>
               )}
             </CardFooter>
diff --git a/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js b/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
index 99cd36341df438618676a745d4489d8dc3083d53..aa84e74cd14f953c98438b3f6c5d68d038e625ae 100644
--- a/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
+++ b/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
@@ -74,6 +74,8 @@ import FormikField from "components/FormikField/FormikField";
 import { Formik } from "formik";
 import * as Yup from "yup";
 
+import i18next from "i18next";
+
 let generator = require("generate-password");
 
 const fileUpload = require("fuctbase64");
@@ -424,33 +426,33 @@ export default function EditCreateUserProfile(props) {
 
   const EditCreateSchema = Yup.object().shape({
     username: Yup.string()
-      .min(3, "Minimum 3 characters!")
-      .max(32, "Maximum 32 characters!")
-      .required("Username is required!")
-      .matches(/^[A-Za-z_][A-Za-z0-9_]*$/, "Only alphanumeric characters!"),
+      .min(3, i18next.t("minimum_3_characters", "Minimum 3 characters!"))
+      .max(32, i18next.t("maximum_32_characters", "Maximum 32 characters!"))
+      .required(i18next.t("username_is_required", "Username is required!"))
+      .matches(/^[A-Za-z_][A-Za-z0-9_]*$/, i18next.t("only_alphanumeric_characters", "Only alphanumeric characters!")),
     password: createUser
-      ? Yup.string().required("Password is required!")
+      ? Yup.string().required(i18next.t("only_alphanumeric_characters", "Password is required!"))
       : null,
     confirmPassword: createUser
-      ? Yup.string().oneOf([Yup.ref("password"), null], "Passwords must match")
+      ? Yup.string().oneOf([Yup.ref("password"), null], i18next.t("password_must_match", "Passwords must match"))
       : null,
-    firstName: Yup.string().min(2, "First name is too short!"),
-    lastName: Yup.string().min(2, "Last Name is too short!"),
-    email: Yup.string().email("Invalid email!"),
+    firstName: Yup.string().min(2, i18next.t("first_name_is_too_short", "First name is too short!")),
+    lastName: Yup.string().min(2, i18next.t("last_name_is_too_short", "Last Name is too short!")),
+    email: Yup.string().email(i18next.t("invalid_email", "Invalid email!")),
     profilePicture: Yup.string(),
-    organization: Yup.string().min(2, "Organization name is too short!"),
+    organization: Yup.string().min(2, i18next.t("organization_name_too_short", "Organization name is too short!")),
     faxNumber: Yup.string().matches(
       /^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/,
-      "Fax not valid!"
+      i18next.t("fax_not_valid", "Fax not valid!")
     ),
     phoneNumber: Yup.string().matches(
       /^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/,
-      "Phone not valid!"
+      i18next.t("phone_not_valid", "Phone not valid!")
     ),
     phoneNumberExtension: Yup.number().positive().integer(),
     mobileNumber: Yup.string().matches(
       /^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/,
-      "Mobile not valid!"
+      i18next.t("mobile_not_valid", "Mobile not valid!")
     ),
   });
 
@@ -463,7 +465,7 @@ export default function EditCreateUserProfile(props) {
         aria-describedby="alert-dialog-description"
         classes={{ paper: classes.dialogPaper }}
       >
-        <DialogTitle id="alert-dialog-title">{"Crop image"}</DialogTitle>
+        <DialogTitle id="alert-dialog-title">{i18next.t("crop_image", "Crop image")}</DialogTitle>
         <DialogContent>
           <div className={classes.cropContainer}>
             <Cropper
@@ -485,7 +487,7 @@ export default function EditCreateUserProfile(props) {
                 variant="overline"
                 classes={{ root: classes.sliderLabel }}
               >
-                Zoom
+                {i18next.t("zoom", "Zoom")}
               </Typography>
               <Slider
                 value={zoom}
@@ -502,7 +504,7 @@ export default function EditCreateUserProfile(props) {
                 variant="overline"
                 classes={{ root: classes.sliderLabel }}
               >
-                Rotation
+                {i18next.t("rotation", "Rotation")}
               </Typography>
               <Slider
                 value={rotation}
@@ -518,10 +520,10 @@ export default function EditCreateUserProfile(props) {
         </DialogContent>
         <DialogActions>
           <Button onClick={handleClose} color="info">
-            Cancel
+            {i18next.t("cancel", "Cancel")}
           </Button>
           <Button onClick={cropProfilePicture} color="success" autoFocus>
-            Crop
+            {i18next.t("crop", "Crop")}
           </Button>
         </DialogActions>
       </Dialog>
@@ -537,7 +539,7 @@ export default function EditCreateUserProfile(props) {
                 <Card profile>
                   <CardHeader color="info" stats icon>
                     <p className={classes.cardCategory}>
-                      {createUser ? "Create new profile" : "Edit profile"}
+                      {createUser ? i18next.t("create_new_profile", "Create new profile") : i18next.t("edit_profile", "Edit profile")}
                     </p>
                     {createUser ? (
                       ""
@@ -578,15 +580,15 @@ export default function EditCreateUserProfile(props) {
                             >
                               <PhotoCamera />
                             </IconButton>{" "}
-                            Change profile image
+                            {i18next.t("change_profile_image", "Change profile image")}
                           </label>
                         </Grid>
                         {createUser && (
                           <Grid item xs={12} sm={12} md={6}>
                             <FormikField
                               name="username"
-                              label="Username"
-                              placeholder="Username"
+                              label={i18next.t("username", "Username")}
+                              placeholder={i18next.t("username", "Username")}
                               startAdornment={
                                 <InputAdornment position="start">
                                   <AccountCircleIcon />
@@ -607,7 +609,7 @@ export default function EditCreateUserProfile(props) {
                               autoComplete="off"
                               handleChange={checkUserExists}
                               onKeyUpError={userExists}
-                              onKeyUpErrorMessage="Username already taken"
+                              onKeyUpErrorMessage={i18next.t("username_already_taken", "Username already taken")}
                             />
                           </Grid>
                         )}
@@ -619,8 +621,8 @@ export default function EditCreateUserProfile(props) {
                             <FormikField
                               type={passwordVisible ? "text" : "password"}
                               name="password"
-                              label="Password"
-                              placeholder="Password"
+                              label={i18next.t("password", "Password")}
+                              placeholder={i18next.t("password", "Password")}
                               startAdornment={
                                 <InputAdornment position="start">
                                   <VpnKeyIcon />
@@ -649,8 +651,8 @@ export default function EditCreateUserProfile(props) {
                             <FormikField
                               type={passwordVisible ? "text" : "password"}
                               name="confirmPassword"
-                              label="Confirm Password"
-                              placeholder="Confirm Password"
+                              label={i18next.t("confirm_password", "Confirm Password")}
+                              placeholder={i18next.t("confirm_password", "Confirm Password")}
                               startAdornment={
                                 <InputAdornment position="start">
                                   <VpnKeyIcon />
@@ -701,7 +703,7 @@ export default function EditCreateUserProfile(props) {
                                 setGenerated(true);
                               }}
                             >
-                              {"Generate"}
+                              {i18next.t("generate", "Generate")}
                             </Button>
                             <CopyToClipboard
                               text={values.password}
@@ -717,15 +719,15 @@ export default function EditCreateUserProfile(props) {
                                 className={classes.button}
                                 startIcon={<FileCopyIcon />}
                               >
-                                Copy to clipboard
+                                {i18next.t("copy_to_clipboard", "Copy to clipboard")}
                               </Button>
                             </CopyToClipboard>
                             {copied ? (
-                              <span style={{ marginLeft: "10px" }}>Copied</span>
+                              <span style={{ marginLeft: "10px" }}>{i18next.t("copied", "Copied")}</span>
                             ) : null}
                             {generated ? (
                               <span style={{ marginLeft: "10px" }}>
-                                Generated
+                                {i18next.t("generated", "Generated")}
                               </span>
                             ) : null}
                           </Grid>
@@ -733,8 +735,8 @@ export default function EditCreateUserProfile(props) {
                         <Grid item align="center" xs={12} sm={12} md={6}>
                           <FormikField
                             name="firstName"
-                            label="First name"
-                            placeholder="First name"
+                            label={i18next.t("first_name", "First name")}
+                            placeholder={i18next.t("first_name", "First name")}
                             startAdornment={
                               <InputAdornment position="start">
                                 <PersonIcon />
@@ -745,8 +747,8 @@ export default function EditCreateUserProfile(props) {
                         <Grid item align="center" xs={12} sm={12} md={6}>
                           <FormikField
                             name="lastName"
-                            label="Last name"
-                            placeholder="Last name"
+                            label={i18next.t("last_name", "Last name")}
+                            placeholder={i18next.t("last_name", "Last name")}
                             startAdornment={
                               <InputAdornment position="start">
                                 <PersonOutlinedIcon />
@@ -757,8 +759,8 @@ export default function EditCreateUserProfile(props) {
                         <Grid item align="center" xs={12} sm={12} md={6}>
                           <FormikField
                             name="email"
-                            label="Email"
-                            placeholder="Email"
+                            label={i18next.t("email", "Email")}
+                            placeholder={i18next.t("email", "Email")}
                             startAdornment={
                               <InputAdornment position="start">
                                 <AlternateEmailOutlinedIcon />
@@ -769,8 +771,8 @@ export default function EditCreateUserProfile(props) {
                         <Grid item align="center" xs={12} sm={12} md={6}>
                           <FormikField
                             name="organization"
-                            label="Organization"
-                            placeholder="Organization"
+                            label={i18next.t("organization", "Organization")}
+                            placeholder={i18next.t("organization", "Organization")}
                             startAdornment={
                               <InputAdornment position="start">
                                 <BusinessCenterOutlinedIcon />
@@ -781,8 +783,8 @@ export default function EditCreateUserProfile(props) {
                         <Grid item align="center" xs={12} sm={12} md={6}>
                           <FormikField
                             name="faxNumber"
-                            label="Fax number"
-                            placeholder="Fax number"
+                            label={i18next.t("fax_number", "Fax number")}
+                            placeholder={i18next.t("fax_number", "Fax number")}
                             startAdornment={
                               <InputAdornment position="start">
                                 <LocalPrintshopOutlinedIcon />
@@ -793,8 +795,8 @@ export default function EditCreateUserProfile(props) {
                         <Grid item align="center" xs={12} sm={12} md={6}>
                           <FormikField
                             name="phoneNumber"
-                            label="Phone number"
-                            placeholder="Phone number"
+                            label={i18next.t("phone_number", "Phone number")}
+                            placeholder={i18next.t("phone_number", "Phone number")}
                             startAdornment={
                               <InputAdornment position="start">
                                 <PhoneInTalkOutlinedIcon />
@@ -805,8 +807,8 @@ export default function EditCreateUserProfile(props) {
                         <Grid item align="center" xs={12} sm={12} md={6}>
                           <FormikField
                             name="phoneNumberExtension"
-                            label="Extension"
-                            placeholder="Extension"
+                            label={i18next.t("extension", "Extension")}
+                            placeholder={i18next.t("extension", "Extension")}
                             startAdornment={
                               <InputAdornment position="start">
                                 <PhoneForwardedOutlinedIcon />
@@ -817,8 +819,8 @@ export default function EditCreateUserProfile(props) {
                         <Grid item align="center" xs={12} sm={12} md={6}>
                           <FormikField
                             name="mobileNumber"
-                            label="Mobile"
-                            placeholder="Mobile"
+                            label={i18next.t("mobile", "Mobile")}
+                            placeholder={i18next.t("mobile", "Mobile")}
                             startAdornment={
                               <InputAdornment position="start">
                                 <SmartphoneOutlinedIcon />
@@ -832,7 +834,7 @@ export default function EditCreateUserProfile(props) {
                   <CardFooter className={classes.alignRight}>
                     {!createUser && (
                       <Button color="info" onClick={handleCancelUpdate}>
-                        Cancel
+                        {i18next.t("cancel", "Cancel")}
                       </Button>
                     )}
                     {createUser ? (
@@ -841,7 +843,7 @@ export default function EditCreateUserProfile(props) {
                         disabled={!isValid || !dirty || userExists}
                         color="info"
                       >
-                        Create Profile
+                        {i18next.t("create_profile", "Create Profile")}
                       </Button>
                     ) : (
                       <Button
@@ -849,7 +851,7 @@ export default function EditCreateUserProfile(props) {
                         disabled={!isValid || !dirty}
                         color="info"
                       >
-                        Save Profile
+                        {i18next.t("save_profile", "Save Profile")}
                       </Button>
                     )}
                   </CardFooter>
diff --git a/jams-react-client/src/views/UserProfile/UserProfile.js b/jams-react-client/src/views/UserProfile/UserProfile.js
index 2cbf7b6ee23c15b2df1b3f16f7e803dbbe57ce47..472a6a3a71481f101efad3d347487e64acc7d9a2 100755
--- a/jams-react-client/src/views/UserProfile/UserProfile.js
+++ b/jams-react-client/src/views/UserProfile/UserProfile.js
@@ -18,6 +18,8 @@ import Contacts from "views/Contacts/Contacts";
 import { infoColor } from "assets/jss/material-dashboard-react.js";
 import DisplayUserProfile from "./DisplayUserProfile";
 
+import i18next from "i18next";
+
 function TabPanel(props) {
   const { children, value, index, ...other } = props;
 
@@ -93,9 +95,9 @@ export default function UserProfile(props) {
           onChange={handleChange}
           aria-label="simple tabs example"
         >
-          <Tab label="Profile" {...a11yProps(0)} />
-          <Tab label="Devices" {...a11yProps(1)} />
-          <Tab label="Contacts" {...a11yProps(2)} />
+          <Tab label={i18next.t("profile", "Profile")} {...a11yProps(0)} />
+          <Tab label={i18next.t("devices", "Devices")} {...a11yProps(1)} />
+          <Tab label={i18next.t("contacts", "Contacts")} {...a11yProps(2)} />
         </Tabs>
       </AppBar>
       <TabPanel value={value} index={0}>
diff --git a/jams-react-client/src/views/Users/Users.js b/jams-react-client/src/views/Users/Users.js
index c85c8f43db3577eea8cfa7c6b7a21ebea8ae8099..ee61dca6f44ec7b0a0f10c41209bf011212c70da 100644
--- a/jams-react-client/src/views/Users/Users.js
+++ b/jams-react-client/src/views/Users/Users.js
@@ -36,6 +36,9 @@ import EditCreateUserProfile from "views/UserProfile/EditCreateUserProfile";
 import LinearProgress from "@material-ui/core/LinearProgress";
 import headerLinksStyle from "assets/jss/material-dashboard-react/components/headerLinksStyle.js";
 import { debounce } from "lodash";
+
+import i18next from "i18next";
+
 const styles = {
   ...headerLinksStyle,
   cardCategoryWhite: {
@@ -220,7 +223,8 @@ export default function Users(props) {
                 href="#contained-buttons"
                 onClick={(e) => setCreateUser(true)}
               >
-                <AddCircleOutlineIcon /> Create user
+                <AddCircleOutlineIcon />{" "}
+                {i18next.t("create_user", "Create user")}
               </Button>
             )}
             <GridContainer>
@@ -232,9 +236,9 @@ export default function Users(props) {
                     }}
                     inputProps={{
                       placeholder:
-                        "Search users using (username, name, phone, email, ...)",
+                      i18next.t("search_users_using", "Search users using (username, name, phone, email, ...)"),
                       inputProps: {
-                        "aria-label": "Search users",
+                        "aria-label": i18next.t("search_users", "Search users"),
                       },
                       onKeyUp: handleSearchUsers,
                     }}
@@ -263,7 +267,7 @@ export default function Users(props) {
               <div className={classes.usersNotFound}>
                 <InfoIcon />
 
-                <p style={{ marginLeft: "10px" }}>No users found</p>
+            <p style={{ marginLeft: "10px" }}>{i18next.t("no_users_found", "No users found")}</p>
               </div>
             )}
           </GridItem>
@@ -339,8 +343,7 @@ export default function Users(props) {
               <InfoIcon />
 
               <p style={{ marginLeft: "10px" }}>
-                No users found mathcing <strong>{searchValue}</strong> search
-                value!
+                  {i18next.t("no_users_found_matching", "No users found mathcing search value!")}
               </p>
             </div>
           )}