diff --git a/client/README.md b/client/README.md
index 34a4a1d..3f3af69 100644
--- a/client/README.md
+++ b/client/README.md
@@ -1,69 +1,7 @@
-This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
+# jami-web client
+This is the client for jami-web
 
-## Available Scripts
+## Translations
+The translations are handled by [i18next](https://www.i18next.com/)
 
-In the project directory, you can run:
-
-### `npm start`
-
-Runs the app in the development mode.<br />
-Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
-
-The page will reload if you make edits.<br />
-You will also see any lint errors in the console.
-
-### `npm test`
-
-Launches the test runner in the interactive watch mode.<br />
-See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
-
-### `npm run build`
-
-Builds the app for production to the `build` folder.<br />
-It correctly bundles React in production mode and optimizes the build for the best performance.
-
-The build is minified and the filenames include the hashes.<br />
-Your app is ready to be deployed!
-
-See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
-
-### `npm run eject`
-
-**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
-
-If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
-
-Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
-
-You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
-
-## Learn More
-
-You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
-
-To learn React, check out the [React documentation](https://reactjs.org/).
-
-### Code Splitting
-
-This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
-
-### Analyzing the Bundle Size
-
-This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
-
-### Making a Progressive Web App
-
-This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
-
-### Advanced Configuration
-
-This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
-
-### Deployment
-
-This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
-
-### `npm run build` fails to minify
-
-This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
-# jaas-client
+Execute `npm run extract-translations` from the client's folder in order to update the translation files.
diff --git a/client/i18next-parser.config.js b/client/i18next-parser.config.js
new file mode 100644
index 0000000..5622090
--- /dev/null
+++ b/client/i18next-parser.config.js
@@ -0,0 +1,7 @@
+export default {
+  locales: ['fr', 'en'],
+  output: 'public/locale/$LOCALE/$NAMESPACE.json',
+  input: [
+    'src/**/*.{js,jsx}',
+  ],
+}
\ No newline at end of file
diff --git a/client/package.json b/client/package.json
index 00a4910..53101f1 100644
--- a/client/package.json
+++ b/client/package.json
@@ -43,6 +43,7 @@
     "copy-webpack-plugin": "^11.0.0",
     "css-loader": "^6.7.1",
     "html-webpack-plugin": "^5.5.0",
+    "i18next-parser": "^6.0.0",
     "react-refresh": "^0.14.0",
     "sass": "^1.54.5",
     "sass-loader": "^13.0.2",
@@ -53,7 +54,8 @@
     "webpack-cli": "^4.10.0"
   },
   "scripts": {
-    "build": "npx webpack"
+    "build": "npx webpack",
+    "extract-translations": "i18next"
   },
   "eslintConfig": {
     "extends": "react-app"
diff --git a/client/public/locale/en/translation.json b/client/public/locale/en/translation.json
new file mode 100644
index 0000000..19ddf26
--- /dev/null
+++ b/client/public/locale/en/translation.json
@@ -0,0 +1,4 @@
+{
+  "message_swarm_created": "Swarm created",
+  "message_user_joined": "{{user}} joined"
+}
diff --git a/client/public/locale/fr/translation.json b/client/public/locale/fr/translation.json
new file mode 100644
index 0000000..332c3d4
--- /dev/null
+++ b/client/public/locale/fr/translation.json
@@ -0,0 +1,4 @@
+{
+  "message_swarm_created": "Le Swarm a été créé",
+  "message_user_joined": "{{user}} s'est joint"
+}
diff --git a/client/src/components/Message.js b/client/src/components/Message.js
index 9e6fcb7..a16edd8 100644
--- a/client/src/components/Message.js
+++ b/client/src/components/Message.js
@@ -3,6 +3,7 @@
 import isToday from "dayjs/plugin/isToday"
 import isYesterday from "dayjs/plugin/isYesterday"
 import React from "react"
+import { useTranslation } from "react-i18next"
 
 dayjs.extend(isToday)
 dayjs.extend(isYesterday)
@@ -18,11 +19,12 @@
 }
 
 export const MessageInitial = (props) => {
+  const { t } = useTranslation()
   return (
     <Stack
       alignItems="center"
     >
-      "Le Swarm a été créé"
+      {t("message_swarm_created")}
     </Stack>
   )
 }
@@ -41,6 +43,7 @@
 }
 
 export const MessageMember = (props) => {
+  const { t } = useTranslation()
   return (
     <Stack
       alignItems="center"
@@ -49,7 +52,7 @@
         sx={{
           width: "fit-content",
         }}
-        label={`${props.message.author} s'est joint`}
+        label={t("message_user_joined", {user: props.message.author})}
       />
     </Stack>
   )
diff --git a/client/src/i18n.js b/client/src/i18n.js
new file mode 100644
index 0000000..85e043f
--- /dev/null
+++ b/client/src/i18n.js
@@ -0,0 +1,24 @@
+import i18n from "i18next";
+import { initReactI18next } from "react-i18next";
+import translationEn from "../public/locale/en/translation.json"
+import translationFr from "../public/locale/fr/translation.json"
+
+i18n
+.use(initReactI18next)
+.init({
+  debug: process.env.NODE_ENV == "development",
+  lng: "en",
+  interpolation: {
+    escapeValue: false,
+  },
+  resources: {
+    en: {
+      translation: translationEn,
+    },
+    fr: {
+      translation: translationFr,
+    },
+  },
+});
+
+export default i18n;
diff --git a/client/src/index.js b/client/src/index.js
index e0bc61b..982f0f7 100644
--- a/client/src/index.js
+++ b/client/src/index.js
@@ -6,6 +6,7 @@
 import { store } from "../redux/store";
 import { Provider } from "react-redux";
 import { BrowserRouter as Router } from "react-router-dom";
+import './i18n';
 
 // import config from "../sentry-client.config.json"
 import * as Sentry from "@sentry/react";
