summaryrefslogtreecommitdiffhomepage
path: root/templates/root.templ
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-08-07 00:21:12 +0200
committerThomas Voss <mail@thomasvoss.com> 2024-08-07 00:21:12 +0200
commit351c15d28e0444fd8a78c510a0c4d62ed433c758 (patch)
treeb97aae6ec45c1b341075da147fb9e333246c19f7 /templates/root.templ
Genesis commit
Diffstat (limited to 'templates/root.templ')
-rw-r--r--templates/root.templ101
1 files changed, 101 insertions, 0 deletions
diff --git a/templates/root.templ b/templates/root.templ
new file mode 100644
index 0000000..d372766
--- /dev/null
+++ b/templates/root.templ
@@ -0,0 +1,101 @@
+package templates
+
+import "strings"
+import "git.thomasvoss.com/euro-cash.eu/i18n"
+
+templ Root(head, body templ.Component) {
+ {{ p := ctx.Value(PrinterKey).(i18n.Printer) }}
+
+ <!DOCTYPE html>
+ <html lang={ p.Lang } data-theme="dark">
+ <head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <link rel="stylesheet" type="text/css" href="/style.css">
+ <title>Euro Cash</title>
+ if head != nil {
+ @head
+ }
+ </head>
+ <body>
+ if body != nil {
+ @body
+ }
+ <footer>
+ <p>
+ <small>
+ { p.T("Found a mistake or want to contribute missing information?") }
+ <a href="/">{ p.T("Feel free to contact us!") }</a>
+ </small>
+ </p>
+ </footer>
+ </body>
+ </html>
+}
+
+templ Index() {
+ {{ p := ctx.Value(PrinterKey).(i18n.Printer) }}
+
+ <header>
+ @navbar()
+ <h1>{ p.T("The Euro Cash Compendium") }</h1>
+ <p>
+ { p.T("United in") }
+ <del>{ p.T("diversity") }</del>
+ <ins>{ p.T("cash") }</ins>
+ </p>
+ <p>{ p.T("Växjö has %d people", 70_489) }</p>
+ </header>
+}
+
+templ SetLanguage() {
+ {{ p := ctx.Value(PrinterKey).(i18n.Printer) }}
+
+ <header>
+ @navbar()
+ <h1>{ p.T("Select Your Language") }</h1>
+ </header>
+
+ <main>
+ <p>
+ { p.T("Select your preferred language to use on the site.") }
+ </p>
+ <p>
+ If you are an American user, it’s suggested that you select
+ American English instead of British English. This will ensure that
+ dates will be formatted with the month before the day.
+ </p>
+
+ <hr />
+
+ <h2>{ p.T("Eurozone Languages") }</h2>
+ @languageGrid(true)
+
+ <h2>{ p.T("Other Languages") }</h2>
+ @languageGrid(false)
+ </main>
+}
+
+templ languageGrid(eurozone bool) {
+ <form action="/language" method="POST">
+ <div class="lang-grid">
+ for _, loc := range i18n.Locales {
+ if loc.Eurozone == eurozone {
+ <button
+ type="submit"
+ name={ LocaleKey }
+ value={ loc.Code }
+ disabled?={ !loc.Enabled }
+ >
+ <span
+ lang={ loc.Code }
+ data-code={ strings.ToUpper(loc.Language()) }
+ >
+ { loc.Name }
+ </span>
+ </button>
+ }
+ }
+ </div>
+ </form>
+}