diff options
Diffstat (limited to 'src/lib/components/language_selector/language_selector.svelte')
| -rw-r--r-- | src/lib/components/language_selector/language_selector.svelte | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/lib/components/language_selector/language_selector.svelte b/src/lib/components/language_selector/language_selector.svelte new file mode 100644 index 0000000..64a4ef9 --- /dev/null +++ b/src/lib/components/language_selector/language_selector.svelte @@ -0,0 +1,26 @@ +<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) => a.native - b.native); + + 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> |