From 1326baff1f13e252d9c60cae03680f70a87a17e9 Mon Sep 17 00:00:00 2001 From: Daniel Karbach Date: Wed, 16 Mar 2022 17:38:43 +0100 Subject: [PATCH] add language switcher --- app/Http/Controllers/UserController.php | 24 ++++ resources/js/components/common/Header.js | 6 +- resources/js/components/common/Icon.js | 1 + .../js/components/common/LanguageSwitcher.js | 34 +++++ resources/js/i18n/en.js | 135 ++++++++++++++++++ resources/js/i18n/index.js | 3 + routes/api.php | 2 + 7 files changed, 204 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/UserController.php create mode 100644 resources/js/components/common/LanguageSwitcher.js create mode 100644 resources/js/i18n/en.js diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php new file mode 100644 index 0000000..58d725d --- /dev/null +++ b/app/Http/Controllers/UserController.php @@ -0,0 +1,24 @@ +user(); + if (!$user) return; + + $validatedData = $request->validate([ + 'language' => 'required|in:de,en', + ]); + + $user->locale = $validatedData['language']; + $user->update(); + + return $user->toJson(); + } + +} diff --git a/resources/js/components/common/Header.js b/resources/js/components/common/Header.js index 6bab1a2..b1040f8 100644 --- a/resources/js/components/common/Header.js +++ b/resources/js/components/common/Header.js @@ -5,6 +5,7 @@ import { LinkContainer } from 'react-router-bootstrap'; import { withTranslation } from 'react-i18next'; import Icon from './Icon'; +import LanguageSwitcher from './LanguageSwitcher'; import { getAvatarUrl } from '../../helpers/User'; import { withUser } from '../../helpers/UserContext'; import i18n from '../../i18n'; @@ -17,7 +18,10 @@ const Header = ({ doLogout, user }) => ALttP -