Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion frontend/src/lib/i18n/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,17 @@ import { availableLocales as _availableLocales, registerAll } from '$locales';
import type { Get } from 'type-fest';

export const availableLocales = Object.freeze([..._availableLocales].sort()) as readonly [string, ...string[]];
export function getLanguageCodeFromNavigator(): string | undefined {
// Keep the language code. Discard the country code.
return getLocaleFromNavigator()?.split('-')[0];
}

// eslint-disable-next-line @typescript-eslint/no-unused-vars
export async function loadI18n(useLocale?: string): Promise<void> {
registerAll();
init({
fallbackLocale: 'en',
initialLocale: useLocale ?? getLocaleFromNavigator()?.split('-')[0] ?? 'en',
initialLocale: /* useLocale ?? getLanguageCodeFromNavigator() ?? */ 'en',
});
await waitLocale();
}
Expand Down
6 changes: 3 additions & 3 deletions frontend/src/routes/(authenticated)/user/+page.svelte
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script lang="ts">
import { useEmailResult, useRequestedEmail } from '$lib/email/EmailVerificationStatus.svelte';
import { DisplayLanguageSelect, Form, FormError, Input, SubmitButton, lexSuperForm } from '$lib/forms';
import { Form, FormError, Input, SubmitButton, lexSuperForm } from '$lib/forms';
import t from '$lib/i18n';
import { TitlePage } from '$lib/layout';
import { _changeUserAccountData } from './+page';
Expand Down Expand Up @@ -92,9 +92,9 @@
error={$errors.email}
bind:value={$form.email}
/>
<DisplayLanguageSelect
<!-- <DisplayLanguageSelect
bind:value={$form.locale}
/>
/> -->
<FormError error={$message} />
<SubmitButton loading={$submitting}>{$t('account_settings.button_update')}</SubmitButton>
</Form>
Expand Down
12 changes: 7 additions & 5 deletions frontend/src/routes/(unauthenticated)/register/+page.svelte
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
<script lang="ts">
import { goto } from '$app/navigation';
import { SubmitButton, FormError, Input, ProtectedForm, lexSuperForm, passwordFormRules, DisplayLanguageSelect } from '$lib/forms';
import t, { availableLocales } from '$lib/i18n';
import { SubmitButton, FormError, Input, ProtectedForm, lexSuperForm, passwordFormRules } from '$lib/forms';
import t, { availableLocales, getLanguageCodeFromNavigator } from '$lib/i18n';
import { TitlePage } from '$lib/layout';
import { register } from '$lib/user';
import { locale } from 'svelte-intl-precompile';
import { z } from 'zod';

let turnstileToken = '';
const currLocale = $locale;
// $locale is the locale that our i18n picked for them (i.e. the best available option we have for them)
// getLanguageCodeFromNavigator() gives us the language/locale they probably actually want. Maybe we'll support it in the future.
const currLocale = getLanguageCodeFromNavigator() ?? $locale;
const formSchema = z.object({
name: z.string().min(1, $t('register.name_missing')),
email: z.string().email($t('register.email')),
Expand Down Expand Up @@ -54,9 +56,9 @@
error={$errors.password}
autocomplete="new-password"
/>
<DisplayLanguageSelect
<!-- <DisplayLanguageSelect
bind:value={$form.locale}
/>
/> -->
<FormError error={$message} />
<SubmitButton loading={$submitting}>{$t('register.button_register')}</SubmitButton>
</ProtectedForm>
Expand Down