diff options
Diffstat (limited to 'app/components')
| -rw-r--r-- | app/components/error_block/error_block.svelte | 4 | ||||
| -rw-r--r-- | app/components/footer/footer.svelte | 47 | ||||
| -rw-r--r-- | app/components/forum_list/forum_list.svelte | 2 | ||||
| -rw-r--r-- | app/components/language_selector/language_selector.svelte | 28 |
4 files changed, 78 insertions, 3 deletions
diff --git a/app/components/error_block/error_block.svelte b/app/components/error_block/error_block.svelte index d649fb4..e46afa1 100644 --- a/app/components/error_block/error_block.svelte +++ b/app/components/error_block/error_block.svelte @@ -1,11 +1,11 @@ <script> import { _ } from 'svelte-i18n'; - export let message = $_('error.generic.message'); + export let message; </script> <div> <h2>{$_('error.generic.title')}</h2> - <p>{message}</p> + <p>{message || $_('error.generic.message')}</p> </div> <style> diff --git a/app/components/footer/footer.svelte b/app/components/footer/footer.svelte new file mode 100644 index 0000000..2d45cef --- /dev/null +++ b/app/components/footer/footer.svelte @@ -0,0 +1,47 @@ +<script> + import { _ } from 'svelte-i18n'; + + import LanguageSelector from '../language_selector/language_selector.svelte'; + + const licenseUrl = 'https://gitlab.com/rbdr/forum/'; +</script> + +<footer title="Toolbar"> + <ul> + <li>{@html $_('footer.license', { values: { licenseUrl } })}</li> + <li>{$_('footer.choose_language')}: <LanguageSelector /></li> + </ul> +</footer> + +<style> + footer { + grid-column: col-start 1 / span 12; + border-top: 1px solid black; + } + + ul { + padding: 0; + } + + .action-key { + font-weight: bold; + text-decoration: underline; + } + + li { + display: inline; + margin: 5px; + } + + a { + text-decoration: none; + line-height: 3em; + display: inline-block; + } + + strong a { + color: blue; + text-decoration: underline; + } + +</style> diff --git a/app/components/forum_list/forum_list.svelte b/app/components/forum_list/forum_list.svelte index c218bac..5ce4dc1 100644 --- a/app/components/forum_list/forum_list.svelte +++ b/app/components/forum_list/forum_list.svelte @@ -13,7 +13,7 @@ <li> <a href="/f/{forum.id}"> <span aria-hidden="true" class="navigation-glyph {forum.glyph}">{forum.glyph}</span> - <span class="navigation-label">{forum.label}</span> + <span class="navigation-label">{$_(forum.label)}</span> </a> </li> {/each} diff --git a/app/components/language_selector/language_selector.svelte b/app/components/language_selector/language_selector.svelte new file mode 100644 index 0000000..67c0814 --- /dev/null +++ b/app/components/language_selector/language_selector.svelte @@ -0,0 +1,28 @@ +<script> + import { locale, locales } from 'svelte-i18n'; + import { getLangNameFromCode } from 'language-name-map'; + + $: namedLocales = $locales + .map((locale) => ({ + code: locale, + ...getLangNameFromCode(locale) + })) + .sort((a, b) => a.native - b.native); + + let selected = $locale; + + $: { + console.log(`the current locale is ${selected}`); + locale.set(selected); + } +</script> + +<select bind:value={selected}> + {#each namedLocales as namedLocale} + <option value="{ namedLocale.code }">{ namedLocale.native }</option> + {/each} +</select> + +<style> +</style> + |