aboutsummaryrefslogtreecommitdiff
path: root/src/lib/components/language_selector/language_selector.svelte
blob: c1b8f35e4e320963b5f32d9ab4929479786ef1be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<script lang="ts">
	import { locale, locales } from 'svelte-i18n';
	import { getLangNameFromCode } from 'language-name-map';

	$: namedLocales = $locales
		.map((code) => ({
			code,
			...getLangNameFromCode(code)
		}))
		.sort((a, b) => {
			if (a.native > b.native) {
				return 1;
			}

			if (a.native < b.native) {
				return -1;
			}

			return 0;
		});

	let selected = $locale;

	$: {
		locale.set(selected);
	}
</script>

<select bind:value={selected}>
	{#each namedLocales as namedLocale}
		<option value={namedLocale.code}>{namedLocale.native}</option>
	{/each}
</select>

<style>
</style>