feat: set the user's locale while creating an account

Previously, every user's locale was defaulted as `en_GB`. Now the browser's locale is used, if it is available.
This commit is contained in:
grandeljay 2023-08-17 10:35:10 +02:00
parent 2fc6d42897
commit 4f07265921
2 changed files with 23 additions and 4 deletions

View file

@ -118,6 +118,12 @@ $page->navigation();
?>
<a href="https://github.com/grandeljay/wishthis/issues/70" target="_blank">#70</a>
</li>
<li>
<?php
/** TRANSLATORS: Changelog: Added */
echo __('After creating an account your language is automatically set to your browser\'s (if it is available), instead of defaulting to en_GB.');
?>
</li>
</ul>
<h3 class="ui header"><?= __('Fixed') ?></h3>

View file

@ -108,6 +108,13 @@ if (isset($_POST['email'], $_POST['password']) && !empty($_POST['planet'])) {
$page->messages[] = Page::error(__('This password reset link seems to have been manipulated, please request a new one.'), __('Failure'));
}
} else {
$locale_browser = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']) : DEFAULT_LOCALE;
$locale_user = DEFAULT_LOCALE;
if (in_array($locale_browser, $locales, true)) {
$locale_user = $locale_browser;
}
/**
* Register
*/
@ -116,15 +123,18 @@ if (isset($_POST['email'], $_POST['password']) && !empty($_POST['planet'])) {
'INSERT INTO `users` (
`email`,
`password`,
`power`
`power`,
`language`
) VALUES (
:user_email,
:user_password,
100
100,
:user_language
);',
array(
'user_email' => $user_email,
'user_password' => User::generatePassword($_POST['password']),
'user_language' => $locale_user,
)
);
$userRegistered = true;
@ -138,14 +148,17 @@ if (isset($_POST['email'], $_POST['password']) && !empty($_POST['planet'])) {
$database->query(
'INSERT INTO `users` (
`email`,
`password`
`password`,
`language`
) VALUES (
:user_email,
:user_password
:user_password,
:user_language
);',
array(
'user_email' => $user_email,
'user_password' => User::generatePassword($_POST['password']),
'user_language' => $locale_user,
)
);
$userRegistered = true;