aboutsummaryrefslogtreecommitdiff
path: root/src/lib/components/language_selector.svelte
diff options
context:
space:
mode:
authorRuben Beltran del Rio <ruben@unlimited.pizza>2021-08-29 21:49:37 +0200
committerRuben Beltran del Rio <ruben@unlimited.pizza>2021-08-29 21:49:37 +0200
commit38431710cfb1cc1ffd7297085d069be1328f083b (patch)
treeb28fba3eb891d8e1f383d4faa358ee7f067be93b /src/lib/components/language_selector.svelte
Add project
Diffstat (limited to 'src/lib/components/language_selector.svelte')
-rw-r--r--src/lib/components/language_selector.svelte31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/lib/components/language_selector.svelte b/src/lib/components/language_selector.svelte
new file mode 100644
index 0000000..e8d0c44
--- /dev/null
+++ b/src/lib/components/language_selector.svelte
@@ -0,0 +1,31 @@
+<script>
+ import { locale, locales } from 'svelte-i18n';
+ import { getLangNameFromCode } from 'language-name-map';
+ import { goto } from '$app/navigation';
+
+ $: namedLocales = $locales
+ .map((code) => ({
+ code,
+ ...getLangNameFromCode(code)
+ }))
+ .sort((a, b) => a.native - b.native);
+
+ let selected = $locale;
+
+ $: {
+ locale.set(selected);
+ }
+
+ const navigateAway = function () {
+ goto('/');
+ };
+</script>
+
+<select bind:value={selected} on:change={navigateAway}>
+ {#each namedLocales as namedLocale}
+ <option value={namedLocale.code}>{namedLocale.native}</option>
+ {/each}
+</select>
+
+<style>
+</style>