aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/templates
diff options
context:
space:
mode:
Diffstat (limited to 'src/templates')
-rw-r--r--src/templates/-404.html.tmpl8
-rw-r--r--src/templates/-base.html.tmpl7
-rw-r--r--src/templates/-error.html.tmpl4
-rw-r--r--src/templates/-navbar.html.tmpl47
-rw-r--r--src/templates/about.html.tmpl30
-rw-r--r--src/templates/banknotes-codes.html.tmpl593
-rw-r--r--src/templates/banknotes.html.tmpl78
-rw-r--r--src/templates/coins-designs-ad.html.tmpl41
-rw-r--r--src/templates/coins-designs-at.html.tmpl14
-rw-r--r--src/templates/coins-designs-be.html.tmpl41
-rw-r--r--src/templates/coins-designs-de.html.tmpl23
-rw-r--r--src/templates/coins-designs-ee.html.tmpl217
-rw-r--r--src/templates/coins-designs-hr.html.tmpl20
-rw-r--r--src/templates/coins-designs-nl.html.tmpl12
-rw-r--r--src/templates/coins-designs.html.tmpl33
-rw-r--r--src/templates/coins-mintages.html.tmpl343
-rw-r--r--src/templates/coins.html.tmpl78
-rw-r--r--src/templates/collecting-crh.html.tmpl1075
-rw-r--r--src/templates/collecting-storage.html.tmpl6
-rw-r--r--src/templates/collecting-vending.html.tmpl4
-rw-r--r--src/templates/collecting.html.tmpl121
-rw-r--r--src/templates/index.html.tmpl9
-rw-r--r--src/templates/jargon.html.tmpl128
-rw-r--r--src/templates/language.html.tmpl89
24 files changed, 1713 insertions, 1308 deletions
diff --git a/src/templates/-404.html.tmpl b/src/templates/-404.html.tmpl
index 03602e1..fd17cf6 100644
--- a/src/templates/-404.html.tmpl
+++ b/src/templates/-404.html.tmpl
@@ -1,9 +1,13 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
-<header>
+<header class="container">
{{ template "navbar" . }}
<h1>{{ .Get "Page Not Found" }}</h1>
</header>
-<main>
+<main class="container">
<p>
{{ .Get "The page you were looking for does not exist. If you believe this is a mistake then don’t hesitate to contact ‘@onetruemangoman’ on Discord or email us at {Email:e}."
(map "Email" "mail@euro-cash.eu") }}
diff --git a/src/templates/-base.html.tmpl b/src/templates/-base.html.tmpl
index 42ec216..f455a14 100644
--- a/src/templates/-base.html.tmpl
+++ b/src/templates/-base.html.tmpl
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{{ if .Debugp }}
- <link href="/style.css" type="text/css" rel="stylesheet">
+ <link href="/style-2.css" type="text/css" rel="stylesheet">
{{ else }}
<link href="/style.min.css" type="text/css" rel="stylesheet">
{{ end }}
@@ -33,11 +33,12 @@
});
})();
</script>
- {{ includeIfExists "header" . }}
+
+ {{ template "header" . }}
</head>
<body>
{{ template "content" . }}
- <footer>
+ <footer class="container">
<p>
<small>
{{ .Get "Found a mistake or want to contribute missing information?" }}
diff --git a/src/templates/-error.html.tmpl b/src/templates/-error.html.tmpl
index a18ec3e..198318d 100644
--- a/src/templates/-error.html.tmpl
+++ b/src/templates/-error.html.tmpl
@@ -1,3 +1,7 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
diff --git a/src/templates/-navbar.html.tmpl b/src/templates/-navbar.html.tmpl
index 442de5b..588f554 100644
--- a/src/templates/-navbar.html.tmpl
+++ b/src/templates/-navbar.html.tmpl
@@ -1,14 +1,53 @@
+{{ define "header-navbar" }}
+<style>
+ #nav-icon-lang {
+ a {
+ display: flex;
+ align-items: center;
+ gap: .5ch;
+ }
+
+ svg {
+ stroke: var(--pico-color);
+ height: 1rem;
+ }
+ }
+
+ #nav-icon-theme {
+ button {
+ background-color: unset;
+ margin: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 1.5rem;
+ }
+
+ svg {
+ stroke: var(--pico-primary);
+ stroke-width: .1;
+ height: 1.2rem;
+ width: 2rem;
+ }
+ }
+
+ [data-theme="light"] #nav-icon-theme svg {
+ fill: var(--pico-primary);
+ }
+</style>
+{{ end }}
+
{{ define "navbar" }}
<nav>
- <menu>
+ <ul>
<li><a href="/">{{ .Get "Home" }}</a></li>
<li><a href="#TODO">{{ .Get "News" }}</a></li>
<li><a href="/collecting">{{ .Get "Coin Collecting" }}</a></li>
<li><a href="/coins">{{ .Get "Coins" }}</a></li>
<li><a href="/banknotes">{{ .Get "Banknotes" }}</a></li>
<li><a href="/jargon">{{ .Get "Jargon" }}</a></li>
- </menu>
- <menu>
+ </ul>
+ <ul>
<li>
<a href="https://discord.gg/DCaXfRcy9C" target="_blank">
{{ .Get "Discord" }}
@@ -223,6 +262,6 @@
</svg>
</button>
</li>
- </menu>
+ </ul>
</nav>
{{ end }} \ No newline at end of file
diff --git a/src/templates/about.html.tmpl b/src/templates/about.html.tmpl
index 11c0716..1ef6339 100644
--- a/src/templates/about.html.tmpl
+++ b/src/templates/about.html.tmpl
@@ -1,3 +1,7 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
@@ -15,31 +19,5 @@
{{ .Get "While we try to stay as up-to-date as possible and to fact check our information, it is always possible that we get something wrong, lack a translation, or are missing some piece of data you may have. Should that be the case, don’t hesitate to contact us; we’ll try to get the site updated or fixed as soon as possible. You are always free to contribute via a git patch if you are more technically inclined, but if not you can always send an email to {Email:e} or contact ‘@onetruemangoman’ on Discord."
(map "Email" "mail@euro-cash.eu") }}
</p>
- <h2>{{ .Get "Special Thanks" }}</h2>
- <table>
- <thead>
- {{/* TRANSLATORS: As in ‘Development of the site’ */}}
- <th scope="col">{{ .Get "Development" }}</th>
- <th scope="col">{{ .Get "Research" }}</th>
- <th scope="col">{{ .Get "Translations" }}</th>
- </thead>
- <tbody>
- <tr>
- <td>
- Jessika Wexler,
- Lyyli Savolainen,
- Ralf Nadel
- </td>
- <td>
- Elín Hjartardóttir,
- Storm Sørensen
- </td>
- <td>
- <span data-tooltip={{ .Get "British- & American English" }}>Thomas Voss</span>,
- <span data-tooltip={{ .Get "Icelandic" }}>Védís Indriðadóttir</span>
- </td>
- </tr>
- </tbody>
- </table>
</main>
{{ end }} \ No newline at end of file
diff --git a/src/templates/banknotes-codes.html.tmpl b/src/templates/banknotes-codes.html.tmpl
index ea17307..8c2adcf 100644
--- a/src/templates/banknotes-codes.html.tmpl
+++ b/src/templates/banknotes-codes.html.tmpl
@@ -1,43 +1,85 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+
+<style>
+ .design-container {
+ --euro-cash-design-width: 90%;
+ }
+
+ table {
+ white-space: nowrap;
+
+ tr :is(th, td):first-child {
+ text-align: center;
+ }
+ }
+
+ #seperated-tables {
+ display: none;
+ }
+
+ @media (min-width: 576px) {
+ #seperated-tables {
+ display: flex;
+ justify-content: space-between;
+ gap: var(--pico-grid-column-gap);
+ }
+
+ #joint-table {
+ display: none;
+ }
+ }
+</style>
+{{ end }}
+
{{ define "content" }}
-<header>
+<header class="container">
{{ template "navbar" . }}
<h1>{{ .Get "Location Codes" }}</h1>
</header>
-<main>
+<main class="container">
<p>
{{ .Get "Euro banknotes have two codes on them: a printer code and a serial number. The printer code tells you where a given note was printed, while the serial number tells you which country issued the banknote (for the 2002 series) or where the banknote was printed (for the Europa series)." }}
</p>
- <h2>{{ .Get "Printer Code" }}</h2>
+ <h2>{{ .Get "Printer Codes" }}</h2>
<p>
{{ .Get "The printer code (not to be confused with the serial number) is a small code printed on banknotes with information about where the banknote was printed. All printer codes have the form ‘X000X0’ — or in other words — a letter followed by 3 numbers, a letter and a final number." }}
</p>
<p>
{{ .Get "The printer code can be a bit tricky to find. The following dropdown menus will show you where to find the printer code on each note." }}
</p>
- <details>
- <summary>{{ .Get "2002 Series Printer Codes" }}</summary>
- <p>
- {{ .Get "All these images are taken from {Link:L}eurobilltracker.com{-:E}."
- (map "Link" "https://eurobilltracker.com") }}
- </p>
- {{ template "banknotes/codes/code-pos" (tuple .Printer 5 "2002") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 10 "2002") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 20 "2002") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 50 "2002") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 100 "2002") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 200 "2002") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 500 "2002") }}
- </details>
- <details>
- <summary>{{ .Get "Europa Series Printer Codes" }}</summary>
- {{ template "banknotes/codes/code-pos" (tuple .Printer 5 "europa") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 10 "europa") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 20 "europa") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 50 "europa") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 100 "europa") }}
- {{ template "banknotes/codes/code-pos" (tuple .Printer 200 "europa") }}
- </details>
+
+ <article>
+ <details name="printer-codes">
+ <summary>{{ .Get "2002 Series Printer Codes" }}</summary><hr>
+ <p>
+ {{ .Get "All these images are taken from {Link:L}eurobilltracker.com{-:E}."
+ (map "Link" "https://eurobilltracker.com") }}
+ </p>
+ <article>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 5 "2002") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 10 "2002") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 20 "2002") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 50 "2002") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 100 "2002") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 200 "2002") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 500 "2002") }}
+ </article>
+ </details>
+ <hr>
+ <details name="printer-codes">
+ <summary>{{ .Get "Europa Series Printer Codes" }}</summary><hr>
+ <article>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 5 "europa") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 10 "europa") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 20 "europa") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 50 "europa") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 100 "europa") }}<hr>
+ {{ template "banknotes/codes/code-pos" (tuple .Printer 200 "europa") }}
+ </article>
+ </details>
+ </article>
<p>
{{ .Get "The first letter in the printer code identifies the specific printer at which the banknote was printed. The tables below will tell you which letters correspond to which printers. The final letter and number form a pair (such as ‘A2’ or ‘D6’) — this pair acts as a set of coordinates telling you where on the sheet of paper the banknote was located. During printing, banknotes are printed in a grid on a large sheet of paper which is then cut into individual banknotes. A note with the pair ‘A1’ will have been at the upper-left corner of the printing sheet, with ‘A2’ to its right and ‘B1’ below it." }}
@@ -48,258 +90,416 @@
{{ .Get "In the 2002 series, the first letter of the serial number can be used to identify the country that issued the banknote. The following table shows which countries map to which codes." }}
</p>
- <table role="grid">
+ <div id="seperated-tables">
+ <table class="striped">
+ <thead>
+ <tr>
+ <th>{{ .GetC "Code" "Header/Label" }}</th>
+ <th>{{ .GetC "Country" "Header/Label" }}</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>D</td>
+ <td>{{ .GetC "Estonia" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>E</td>
+ <td>{{ .GetC "Slovakia" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>F</td>
+ <td>{{ .GetC "Malta" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>G</td>
+ <td>{{ .GetC "Cyprus" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>H</td>
+ <td>{{ .GetC "Slovenia" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>L</td>
+ <td>{{ .GetC "Finland" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>M</td>
+ <td>{{ .GetC "Portugal" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>N</td>
+ <td>{{ .GetC "Austria" "Place Name" }}</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <table class="striped">
+ <thead>
+ <tr>
+ <th>{{ .GetC "Code" "Header/Label" }}</th>
+ <th>{{ .GetC "Country" "Header/Label" }}</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>P</td>
+ <td>{{ .GetC "Netherlands" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>S</td>
+ <td>{{ .GetC "Italy" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>T</td>
+ <td>{{ .GetC "Ireland" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>U</td>
+ <td>{{ .GetC "France" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>V</td>
+ <td>{{ .GetC "Spain" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>X</td>
+ <td>{{ .GetC "Germany" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>Y</td>
+ <td>{{ .GetC "Greece" "Place Name" }}</td>
+ </tr>
+ <tr>
+ <td>Z</td>
+ <td>{{ .GetC "Belgium" "Place Name" }}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <table id="joint-table" class="striped">
<thead>
<tr>
- <th>{{ .Get "Code" }}</th>
- <th>{{ .Get "Country" }}</th>
+ <th>{{ .GetC "Code" "Header/Label" }}</th>
+ <th>{{ .GetC "Country" "Header/Label" }}</th>
</tr>
</thead>
<tbody>
<tr>
<td>D</td>
- <td>{{ .Get "Estonia" }}</td>
+ <td>{{ .GetC "Estonia" "Place Name" }}</td>
</tr>
<tr>
<td>E</td>
- <td>{{ .Get "Slovakia" }}</td>
+ <td>{{ .GetC "Slovakia" "Place Name" }}</td>
</tr>
<tr>
<td>F</td>
- <td>{{ .Get "Malta" }}</td>
+ <td>{{ .GetC "Malta" "Place Name" }}</td>
</tr>
<tr>
<td>G</td>
- <td>{{ .Get "Cyprus" }}</td>
+ <td>{{ .GetC "Cyprus" "Place Name" }}</td>
</tr>
<tr>
<td>H</td>
- <td>{{ .Get "Slovenia" }}</td>
+ <td>{{ .GetC "Slovenia" "Place Name" }}</td>
</tr>
<tr>
<td>L</td>
- <td>{{ .Get "Finland" }}</td>
+ <td>{{ .GetC "Finland" "Place Name" }}</td>
</tr>
<tr>
<td>M</td>
- <td>{{ .Get "Portugal" }}</td>
+ <td>{{ .GetC "Portugal" "Place Name" }}</td>
</tr>
<tr>
<td>N</td>
- <td>{{ .Get "Austria" }}</td>
+ <td>{{ .GetC "Austria" "Place Name" }}</td>
</tr>
<tr>
<td>P</td>
- <td>{{ .Get "Netherlands" }}</td>
+ <td>{{ .GetC "Netherlands" "Place Name" }}</td>
</tr>
<tr>
<td>S</td>
- <td>{{ .Get "Italy" }}</td>
+ <td>{{ .GetC "Italy" "Place Name" }}</td>
</tr>
<tr>
<td>T</td>
- <td>{{ .Get "Ireland" }}</td>
+ <td>{{ .GetC "Ireland" "Place Name" }}</td>
</tr>
<tr>
<td>U</td>
- <td>{{ .Get "France" }}</td>
+ <td>{{ .GetC "France" "Place Name" }}</td>
</tr>
<tr>
<td>V</td>
- <td>{{ .Get "Spain" }}</td>
+ <td>{{ .GetC "Spain" "Place Name" }}</td>
</tr>
<tr>
<td>X</td>
- <td>{{ .Get "Germany" }}</td>
+ <td>{{ .GetC "Germany" "Place Name" }}</td>
</tr>
<tr>
<td>Y</td>
- <td>{{ .Get "Greece" }}</td>
+ <td>{{ .GetC "Greece" "Place Name" }}</td>
</tr>
<tr>
<td>Z</td>
- <td>{{ .Get "Belgium" }}</td>
+ <td>{{ .GetC "Belgium" "Place Name" }}</td>
</tr>
</tbody>
</table>
<p>
- {{ .Get "The first letter of the printer code can be used to identify the specific printer at which the banknote was printed. The printer- and country codes do not need to line up; a banknote issued by a country will often be printed in another." }}
+ {{ .Get "The first letter of the printer code can be used to identify the specific printer at which the banknote was printed. The printer and country codes do not need to line up; a banknote issued by a country will often be printed in another." }}
</p>
- <table role="grid">
- <thead>
- <tr>
- <th>{{ .Get "Code" }}</th>
- <th>{{ .Get "Country" }}</th>
- <th>{{ .Get "Printer" }}</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>D</td>
- <td>{{ .Get "Finland" }}</td>
- <td>SETEC</td>
- </tr>
+ <div class="overflow-auto">
+ <table class="striped">
+ <thead>
+ <tr>
+ <th>{{ .GetC "Code" "Header/Label" }}</th>
+ <th>{{ .GetC "Country" "Header/Label" }}</th>
+ <th>
+ {{ .GetC "Printer" "Header/Label" }}<br>
+ <span class="translation">
+ {{ .GetC "Local Names" "Header/Label" }}
+ </span>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>D</td>
+ <td>{{ .GetC "Finland" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "SETEC" "Company Name" | toString)
+ (tuple "" "SETEC") }}
+ </tr>
+ <tr>
+ <td>E</td>
+ <td>{{ .GetC "France" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Oberthur" "Company Name" | toString)
+ (tuple "" "Oberthur") }}
+ </tr>
+ <tr>
+ <td>F</td>
+ <td>{{ .GetC "Austria" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Austrian Banknote and Security Printing" "Company Name" | toString)
+ (tuple "de" "Oesterreichische Banknoten- und Sicherheitsdruck") }}
+ </tr>
+ <tr>
+ <td>G</td>
+ <td>{{ .GetC "Netherlands" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Royal Joh. Enschedé" "Company Name" | toString)
+ (tuple "nl" "Koninklijke Joh. Enschedé") }}
+ </tr>
+ <tr>
+ <td>H</td>
+ <td>{{ .GetC "United Kingdom" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "De La Rue" "Company Name" | toString)
+ (tuple "" "De La Rue") }}
+ </tr>
+ <tr>
+ <td>J</td>
+ <td>{{ .GetC "Italy" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Bank of Italy" "Company Name" | toString)
+ (tuple "it" "Banca d’Italia") }}
+ </tr>
+ <tr>
+ <td>K</td>
+ <td>{{ .GetC "Ireland" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Central Bank of Ireland" "Company Name" | toString)
+ (tuple "ga" "Banc Ceannais na hÉireann")
+ (tuple "en" "Central Bank of Ireland") }}
+ </tr>
+ <tr>
+ <td>L</td>
+ <td>{{ .GetC "France" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Bank of France" "Company Name" | toString)
+ (tuple "fr" "Banque du France") }}
+ </tr>
+ <tr>
+ <td>M</td>
+ <td>{{ .GetC "Spain" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Royal Mint of Spain" "Company Name" | toString)
+ (tuple "es" "Fábrica Nacional de Moneda y Timbre") }}
+ </tr>
+ <tr>
+ <td>N</td>
+ <td>{{ .GetC "Greece" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Bank of Greece" "Company Name" | toString)
+ (tuple "gr" "Τράπεζα της Ελλάδος") }}
+ </tr>
+ <tr>
+ <td>P</td>
+ <td>{{ .GetC "Germany" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Giesecke+Devrient" "Company Name" | toString)
+ (tuple "de" "Giesecke+Devrient") }}
+ </tr>
+ <tr>
+ <td>R</td>
+ <td>{{ .GetC "Germany" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Federal Printing Office" "Company Name" | toString)
+ (tuple "de" "Bundesdruckerei") }}
+ </tr>
+ <tr>
+ <td>T</td>
+ <td>{{ .GetC "Belgium" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "National Bank of Belgium" "Company Name" | toString)
+ (tuple "nl" "Nationale Bank van België")
+ (tuple "fr" "Banque nationale de Belgique")
+ (tuple "de" "Belgische Nationalbank") }}
+ </tr>
+ <tr>
+ <td>U</td>
+ <td>{{ .GetC "Portugal" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Valora S.A." "Company Name" | toString)
+ (tuple "" "Valora S.A.") }}
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+
+ <h2>{{ .Get "Europa Series" }}</h2>
+ <p>
+ {{ .Get "In the Europa series the first letter of the serial number can be used to identify the printer that printed the banknote, just like the printer code. The following table shows which countries map to which codes." }}
+ </p>
+
+ <div class="overflow-auto">
+ <table class="striped">
+ <thead>
+ <tr>
+ <th>{{ .GetC "Code" "Header/Label" }}</th>
+ <th>{{ .GetC "Country" "Header/Label" }}</th>
+ <th>
+ {{ .GetC "Printer" "Header/Label" }}<br>
+ <span class="translation">
+ {{ .GetC "Local Names" "Header/Label" }}
+ </span>
+ </th>
+ </tr>
+ </thead>
<tr>
<td>E</td>
- <td>{{ .Get "France" }}</td>
- <td>Oberthur</td>
+ <td>{{ .GetC "France" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Oberthur" "Company Name" | toString)
+ (tuple "" "Oberthur") }}
</tr>
<tr>
<td>F</td>
- <td>{{ .Get "Austria" }}</td>
- <td>
- <span lang="de">
- Österreichische Banknoten- und Sicherheitsdruck GmbH
- </span>
- </td>
+ <td>{{ .GetC "Bulgaria" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Oberthur Fiduciaire AD" "Company Name" | toString)
+ (tuple "" "Oberthur Fiduciaire AD") }}
</tr>
<tr>
- <td>G</td>
- <td>{{ .Get "Netherlands" }}</td>
- <td><span lang="nl">Koninklijke Joh. Enschedé</span></td>
+ <td>M</td>
+ <td>{{ .GetC "Portugal" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Valora S.A." "Company Name" | toString)
+ (tuple "" "Valora S.A.") }}
</tr>
<tr>
- <td>H</td>
- <td>{{ .Get "United Kingdom" }}</td>
- <td>De La Rue</td>
+ <td>N</td>
+ <td>{{ .GetC "Austria" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Austrian Banknote and Security Printing" "Company Name" | toString)
+ (tuple "de" "Oesterreichische Banknoten- und Sicherheitsdruck") }}
</tr>
<tr>
- <td>J</td>
- <td>{{ .Get "Italy" }}</td>
- <td>{{ .Get "Bank of Italy" }}</td>
+ <td>P</td>
+ <td>{{ .GetC "Netherlands" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Royal Joh. Enschedé" "Company Name" | toString)
+ (tuple "nl" "Koninklijke Joh. Enschedé") }}
</tr>
<tr>
- <td>K</td>
- <td>{{ .Get "Ireland" }}</td>
- <td>{{ .Get "Central Bank of Ireland" }}</td>
+ <td>R</td>
+ <td>{{ .GetC "Germany" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Federal Printing Office" "Company Name" | toString)
+ (tuple "de" "Bundesdruckerei") }}
</tr>
<tr>
- <td>L</td>
- <td>{{ .Get "France" }}</td>
- <td>{{ .Get "Bank of France" }}</td>
+ <td>S</td>
+ <td>{{ .GetC "Italy" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Bank of Italy" "Company Name" | toString)
+ (tuple "it" "Banca d’Italia") }}
</tr>
<tr>
- <td>M</td>
- <td>{{ .Get "Spain" }}</td>
- <td>{{ .Get "Royal Mint of Spain" }}</td>
+ <td>T</td>
+ <td>{{ .GetC "Ireland" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Central Bank of Ireland" "Company Name" | toString)
+ (tuple "ga" "Banc Ceannais na hÉireann")
+ (tuple "en" "Central Bank of Ireland") }}
</tr>
<tr>
- <td>N</td>
- <td>{{ .Get "Greece" }}</td>
- <td>{{ .Get "Bank of Greece" }}</td>
+ <td>U</td>
+ <td>{{ .GetC "France" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Bank of France" "Company Name" | toString)
+ (tuple "fr" "Banque du France") }}
</tr>
<tr>
- <td>P</td>
- <td>{{ .Get "Germany" }}</td>
- <td>Giesecke+Devrient GmbH</td>
+ <td>V</td>
+ <td>{{ .GetC "Spain" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Royal Mint of Spain" "Company Name" | toString)
+ (tuple "es" "Fábrica Nacional de Moneda y Timbre") }}
</tr>
<tr>
- <td>R</td>
- <td>{{ .Get "Germany" }}</td>
- <td><span lang="de">Bundesdruckerei GmbH</span></td>
+ <td>W</td>
+ <td>{{ .GetC "Germany" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Giesecke+Devrient Leipzig" "Company Name" | toString)
+ (tuple "de" "Giesecke+Devrient Leipzig") }}
</tr>
<tr>
- <td>T</td>
- <td>{{ .Get "Belgium" }}</td>
- <td>{{ .Get "National Bank of Belgium" }}</td>
+ <td>X</td>
+ <td>{{ .GetC "Germany" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Giesecke+Devrient Munich" "Company Name" | toString)
+ (tuple "de" "Giesecke+Devrient München") }}
</tr>
<tr>
- <td>U</td>
- <td>{{ .Get "Portugal" }}</td>
- <td>Valora S.A.</td>
+ <td>Y</td>
+ <td>{{ .GetC "Greece" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "Bank of Greece" "Company Name" | toString)
+ (tuple "gr" "Τράπεζα της Ελλάδος") }}
</tr>
- </tbody>
- </table>
-
- <h2>{{ .Get "Europa Series" }}</h2>
- <p>
- {{ .Get "In the Europa series the first letter of the serial number can be used to identify the printer that printed the banknote, just like the printer code. The following table shows which countries map to which codes." }}
- </p>
- <table role="grid">
- <thead>
<tr>
- <th>{{ .Get "Code" }}</th>
- <th>{{ .Get "Country" }}</th>
- <th>{{ .Get "Printer" }}</th>
- </tr>
- </thead>
- <tr>
- <td>E</td>
- <td>{{ .Get "France" }}</td>
- <td>Oberthur</td>
- </tr>
- <tr>
- <td>F</td>
- <td>{{ .Get "Bulgaria" }}</td>
- <td>Oberthur Fiduciaire AD</td>
- </tr>
- <tr>
- <td>M</td>
- <td>{{ .Get "Portugal" }}</td>
- <td>Valora S.A.</td>
- </tr>
- <tr>
- <td>N</td>
- <td>{{ .Get "Austria" }}</td>
- <td>
- <span lang="de">
- Österreichische Banknoten- und Sicherheitsdruck GmbH
- </span>
- </td>
- </tr>
- <tr>
- <td>P</td>
- <td>{{ .Get "Netherlands" }}</td>
- <td><span lang="nl">Koninklijke Joh. Enschedé</span></td>
- </tr>
- <tr>
- <td>R</td>
- <td>{{ .Get "Germany" }}</td>
- <td><span lang="de">Bundesdruckerei GmbH</span></td>
- </tr>
- <tr>
- <td>S</td>
- <td>{{ .Get "Italy" }}</td>
- <td>{{ .Get "Bank of Italy" }}</td>
- </tr>
- <tr>
- <td>T</td>
- <td>{{ .Get "Ireland" }}</td>
- <td>{{ .Get "Central Bank of Ireland" }}</td>
- </tr>
- <tr>
- <td>U</td>
- <td>{{ .Get "France" }}</td>
- <td>{{ .Get "Bank of France" }}</td>
- </tr>
- <tr>
- <td>V</td>
- <td>{{ .Get "Spain" }}</td>
- <td>{{ .Get "Royal Mint of Spain" }}</td>
- </tr>
- <tr>
- <td>W</td>
- <td>{{ .Get "Germany" }}</td>
- <td>Giesecke+Devrient GmbH {{ .Get "Leipzig" }}</td>
- </tr>
- <tr>
- <td>X</td>
- <td>{{ .Get "Germany" }}</td>
- <td>Giesecke+Devrient GmbH {{ .Get "Munich" }}</td>
- </tr>
- <tr>
- <td>Y</td>
- <td>{{ .Get "Greece" }}</td>
- <td>{{ .Get "Bank of Greece" }}</td>
- </tr>
- <tr>
- <td>Z</td>
- <td>{{ .Get "Belgium" }}</td>
- <td>{{ .Get "National Bank of Belgium" }}</td>
- </tr>
- </table>
+ <td>Z</td>
+ <td>{{ .GetC "Belgium" "Place Name" }}</td>
+ {{ withTranslations "td"
+ (.GetC "National Bank of Belgium" "Company Name" | toString)
+ (tuple "nl" "Nationale Bank van België")
+ (tuple "fr" "Banque nationale de Belgique")
+ (tuple "de" "Belgische Nationalbank") }}
+ </tr>
+ </table>
+ </div>
</main>
{{ end }}
@@ -307,13 +507,14 @@
{{ $p := (index . 0) }}
{{ $d := (index . 1) }}
{{ $args := (map "N" $d) }}
-<details>
+<details name="printer-codes-1">
{{/* TRANSLATORS: As in ‘5 Euro Banknote’ */}}
<summary>{{ $p.GetN "{N} Euro" "{N} Euro" $d $args }}</summary>
- <img
- class="big"
- src={{ printf "/codes/%s-%03d.jpg" (index . 2) $d }}
- alt={{ $p.GetN "Printer code on a {N} euro bill" "Printer code on a {N} euro bill" $d $args }}
- >
+ <div class="design-container">
+ <img
+ src={{ printf "/codes/%s-%03d.jpg" (index . 2) $d }}
+ alt={{ $p.GetN "Printer code on a {N} euro bill" "Printer code on a {N} euro bill" $d $args }}
+ >
+ </div>
</details>
{{ end }} \ No newline at end of file
diff --git a/src/templates/banknotes.html.tmpl b/src/templates/banknotes.html.tmpl
index 7349dcf..8a50dfa 100644
--- a/src/templates/banknotes.html.tmpl
+++ b/src/templates/banknotes.html.tmpl
@@ -1,46 +1,52 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+
+<style>
+ #sections {
+ --button-min-width: 40ch;
+
+ article {
+ min-height: 100%;
+ }
+ }
+</style>
+{{ end }}
+
{{ define "content" }}
-<header>
+<header class="container">
{{ template "navbar" . }}
<h1>{{ .Get "Euro Banknotes" }}</h1>
</header>
-<main>
+<main class="container">
<p>
{{ .Get "On this section of the site you can find everything there is to know about the banknotes of the Eurozone." }}
</p>
<hr>
- <section>
- <div class="grid">
- <a class="no-deco" href="/banknotes/designs">
- <article>
- <header>
- <h3>{{ .Get "Designs" }}</h3>
- </header>
- <main>
- {{ .Get "View the different Euro-note designs!" }}
- </main>
- </article>
- </a>
- <a class="no-deco" href="/banknotes/codes">
- <article>
- <header>
- <h3>{{ .Get "Location Codes" }}</h3>
- </header>
- <main>
- {{ .Get "Find out where your notes were printed!" }}
- </main>
- </article>
- </a>
- <a class="no-deco" href="/banknotes/test">
- <article>
- <header>
- <h3>{{ .Get "Test Notes" }}</h3>
- </header>
- <main>
- {{ .Get "Learn about the special test notes!" }}
- </main>
- </article>
- </a>
- </div>
- </section>
+ <div id="sections" class="button-grid">
+ <a class="no-deco" href="/banknotes/designs">
+ <article>
+ <header>
+ <h3>{{ .Get "Designs" }}</h3>
+ </header>
+ {{ .Get "View the different Euro banknote designs" }}
+ </article>
+ </a>
+ <a class="no-deco" href="/banknotes/codes">
+ <article>
+ <header>
+ <h3>{{ .Get "Location Codes" }}</h3>
+ </header>
+ {{ .Get "Find out where your notes were printed" }}
+ </article>
+ </a>
+ <a class="no-deco" href="/banknotes/test">
+ <article>
+ <header>
+ <h3>{{ .Get "Test Notes" }}</h3>
+ </header>
+ {{ .Get "Learn about the special test notes" }}
+ </article>
+ </a>
+ </div>
</main>
{{ end }} \ No newline at end of file
diff --git a/src/templates/coins-designs-ad.html.tmpl b/src/templates/coins-designs-ad.html.tmpl
index 97d590f..cc68a91 100644
--- a/src/templates/coins-designs-ad.html.tmpl
+++ b/src/templates/coins-designs-ad.html.tmpl
@@ -1,3 +1,7 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
@@ -20,32 +24,37 @@
<dd>{{ .Get "Andorran landscapes, nature, fauna and flora" }}</dd>
<dt>{{ .Get "€0.10, €0.20 and €0.50" }}</dt>
<dd>{{ .Get "Andorra’s Romanesque art" }}</dd>
- <dt>{{ .Printer.Sprintf "{1e:m}" (map "1e" 1.00) }}</dt>
+ <dt>{{ .Printer.Ftom 1 }}</dt>
<dd>{{ .Get "Casa de la Vall" }}</dd>
</dl>
+ <!-- TODO: Can we find the other submissions? -->
<p>
- {{ .Get "The results of the design contest with a few modifications are what became the coins that entered circulation in 2014. While each set of denominations has its own design, all four designs prominently feature the country name ‘ANDORRA’ along the outer portion of the design with the year of issue written underneath." }}
+ {{ .Get "The results of the design contest with a few modifications are what became the coins that entered circulation in 2014. While each set of denominations has its own design, all four designs prominently feature the name of the Principality (‘ANDORRA’) along the outer portion of the design with the year of issue written underneath." }}
</p>
<p>
- {{ .Get "The Andorran 1-, 2-, and 5 euro cent coins all feature the same design of a Pyrenean chamois in the center of the coin with a golden eagle flying above. Both animals are native to Andorra as well as the surrounding regions of France and Spain." }}
+ {{ .Get "The Andorran 1c, 2c and 5c coins all feature the same design of a Pyrenean chamois in the center of the coin with a golden eagle flying above. Both animals are native to Andorra as well as the surrounding regions of France and Spain." }}
</p>
+
+ <div class="design-container">
+ <figure>
+ <img
+ alt="{{ .Get `Rejected Andorran design` }}"
+ src="/designs/ad-rejected.jpg"
+ style="width: unset;"
+ />
+ <figcaption>{{ .Get "The rejected Andorran design" }}</figcaption>
+ </figure>
+ </div>
+
<p>
- <!-- TODO: Can we find a photo of the rejected design with a source? -->
- {{ .Get "The Andorran golden cents feature the Romanesque church of Santa Coloma. The church is the oldest in Andorra, dating back to the 9th century and is a UNESCO World Heritage site. Originally these coins were planned to depict an image of Christ, but that plan failed to go through after objections from the European Commission on grounds of religious neutrality on August 2013." }}
+ {{ .Get "The Andorran 10c, 20c and 50c coins feature the Romanesque church of Santa Coloma. The church is the oldest in Andorra, dating back to the 9th century and is a UNESCO World Heritage site. Originally these coins were planned to depict an image of Christ, but that plan failed to go through after objections from the European Commission on grounds of religious neutrality on August 2013." }}
</p>
<p>
- {{ .Get "The 1 Euro coin features the Case de la Vall: the former headquarters of the General Council of Andorra. It was constructed in 1580 as a manor and tower defense by the Busquets family." }}
+ {{ .Get "The €1 coin features the Casa de la Vall: the former headquarters of the General Council of Andorra. It was constructed in 1580 as a manor and tower defense by the Busquets family." }}
</p>
<p>
- {{ .Get "Finally, the 2 Euro coin features the coat of arms of Andorra. The Andorran coat of arms is a grid of 4 other coats of arms which from top-to-bottom, left-to-right are:" }}
- <ul>
- <li>{{ .Get "The arms of the Bishop of Urgell" }}</li>
- <li>{{ .Get "The arms of the Count of Foix" }}</li>
- <li>{{ .Get "The arms of Catalonia" }}</li>
- <li>{{ .Get "The arms of the Viscounts of Béarn" }}</li>
- </ul>
- {{ .Get "The bottom of the coat of arms has the motto ‘{LatinStart:r}VIRTVS VNITA FORTIOR{LatinEnd:E}’ (English: ‘UNITED VIRTUE IS STRONGER’)."
- (map "LatinStart" `<span lang="la"><em>` "LatinEnd" "em,span") }}
+ {{ .Get "Finally, the €2 coin features the {Link:L}coat of arms of Andorra{-:E}."
+ (map "Link" (.Printer.Wikipedia "Coat of arms of Andorra")) }}
</p>
</main>
-{{ end }}
+{{ end }} \ No newline at end of file
diff --git a/src/templates/coins-designs-at.html.tmpl b/src/templates/coins-designs-at.html.tmpl
index 0393b6a..da9cd67 100644
--- a/src/templates/coins-designs-at.html.tmpl
+++ b/src/templates/coins-designs-at.html.tmpl
@@ -1,3 +1,7 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
@@ -5,7 +9,7 @@
</header>
<main>
<p>
- {{ .Get "The Austrian euro coins can be grouped into three different themes. The bronze coins feature Austrian flowers, the gold coins feature Austrian architecture, and the bimetalic coins feature famous Austrian people. All coins also feature an Austrian flag as well as the coins denomination. These coins together with the {Link:l}Greek euro coins{-:E} are the only coins that feature the denomination on both the common- and national-sides of the coin."
+ {{ .Get "The Austrian euro coins can be grouped into three different themes. The bronze coins feature Austrian flowers, the gold coins feature Austrian architecture and the bimetalic coins feature famous Austrian people. All coins also feature an Austrian flag as well as the coins denomination. These coins together with the {Link:l}Greek euro coins{-:E} are the only coins that feature the denomination on both the common and national sides of the coin."
(map "Link" "gr") }}
</p>
@@ -15,7 +19,7 @@
<img alt="{{ .Get `Austrian €0.05 coin` }}" src="/designs/at-005-1.avif">
</div>
<p>
- {{ .Get "The bronze coins feature the Alpine gentian, -edelweiss, and -primrose respectively, and were chosen to symbolize the role that Austria played in the development of EU environmental policy." }}
+ {{ .Get "The bronze coins feature the Alpine gentian, edelweiss and primrose respectively, and were chosen to symbolize the role that Austria played in the development of EU environmental policy." }}
</p>
<div class="design-container">
<img alt="{{ .Get `Austrian €0.10 coin` }}" src="/designs/at-010-1.avif">
@@ -23,14 +27,14 @@
<img alt="{{ .Get `Austrian €0.50 coin` }}" src="/designs/at-050-1.avif">
</div>
<p>
- {{ .Get "The €0.10 coin features St. Stephen’s Cathedral. It symbolises the Viennese Gothic architectural style dating to around the year 1160. The €0.20 coin features Belvedere Palace. This is an example of Baroque architecture and symbolises the national freedom and sovereignty of Austria. The final gold coin — the €0.50 coin — features the Secession Building: an exhibition hall in the Art Nouveau style." }}
+ {{ .Get "The €0.10 coin features St. Stephen’s Cathedral. It symbolises the Viennese Gothic architectural style dating to around the year 1160. The €0.20 coin features Belvedere Palace. This is an example of Baroque architecture and symbolises the national freedom and sovereignty of Austria. Finally, the €0.50 coin features the Secession Building: an exhibition hall in the Art Nouveau style." }}
</p>
<div class="design-container">
<img alt="{{ .Get `Austrian €1 coin` }}" src="/designs/at-100-1.avif">
<img alt="{{ .Get `Austrian €2 coin` }}" src="/designs/at-200-1.avif">
</div>
<p>
- {{ .Get "The two bimetallic coins feature the busts of the musical composer Wolfgang Amadeus Mozarts on the €1 coin, and the Austrian pacifist and Nobel Peace Prize winner Bertha von Suttner." }}
+ {{ .Get "The two bimetallic coins feature the busts of the musical composer Wolfgang Amadeus Mozart on the €1 coin, and the Austrian pacifist and Nobel Peace Prize winner Bertha von Suttner on the €2 coin." }}
</p>
</main>
-{{ end }}
+{{ end }} \ No newline at end of file
diff --git a/src/templates/coins-designs-be.html.tmpl b/src/templates/coins-designs-be.html.tmpl
index 54a2d9d..85746e6 100644
--- a/src/templates/coins-designs-be.html.tmpl
+++ b/src/templates/coins-designs-be.html.tmpl
@@ -1,3 +1,20 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+
+<style>
+ .portrait {
+ width: 30%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+
+ img {
+ width: 100%;
+ }
+ }
+</style>
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
@@ -19,14 +36,28 @@
>
</div>
<p>
- {{ .Get "Since 1999 Belgium has released three series of euro coins, with each series having a single design repeated on all denominations. Starting in 1999 the Belgian euro coins featured the portrait of King Albert II with the {Link:L}royal monogram{-:E} in the outer ring of the coins."
- (map "Link" "https://www.wikipedia.org/wiki/Royal_cypher") }}
+ {{ .Get "Since 1999 Belgium has released three series of euro coins, with each series having a single design repeated on all denominations. Starting in 1999 the Belgian euro coins featured the portrait of King Albert II with the {Link:L}royal monogram{-:E} in the outer ring of the coins."
+ (map "Link" (.Printer.Wikipedia "Royal cypher")) }}
</p>
+
+ <figure>
+ <div class="design-container">
+ <img
+ alt="{{ .Get `2008 portrait of King Albert II` }}"
+ src="/designs/be-portraits/2008.avif"
+ >
+ </div>
+ <figcaption>
+ {{ .Get "2008 portrait of King Albert II" }}<br>
+ <small>© brismike (<a target="_blank" href="https://creativecommons.org/licenses/by-nc/4.0/">CC BY-NC</a>)</small>
+ </figcaption>
+ </figure>
+
<p>
- {{ .Get "In 2008 a second series of coins was released featuring a slightly modified design in which the royal monogram was moved to the inner portion of the coin along with the year of mintage in order to comply with the European Commission’s guidelines. The country code ‘BE’ was also added to the design underneath the royal monogram." }}
+ {{ .Get "In 2008 a second series of coins was released featuring a slightly modified design in which the royal monogram was moved to the inner portion of the coin along with the year of mintage in order to comply with the European Commission’s guidelines. The country code ‘BE’ was also added to the design underneath the royal monogram. The 2008 redesign also saw the use of a slightly modified portrait of the King, but this design change was reverted in 2009." }}
</p>
<p>
- {{ .Get "After his accession to the throne, Belgium began a third series of coins in 2014 featuring the portrait of King Philippe. As is customary with coins bearing the portraits of monarchs, the direction in which the portrait faces was flipped to face right instead of left." }}
+ {{ .Get "After his accession to the throne in 2014, Belgium switched to a third series of coins featuring the portrait of King Philippe. As is customary with coins bearing the portraits of monarchs, the direction in which the portrait faces was flipped from the prior series to face right instead of left." }}
</p>
</main>
-{{ end }}
+{{ end }} \ No newline at end of file
diff --git a/src/templates/coins-designs-de.html.tmpl b/src/templates/coins-designs-de.html.tmpl
index 118477e..702b5fc 100644
--- a/src/templates/coins-designs-de.html.tmpl
+++ b/src/templates/coins-designs-de.html.tmpl
@@ -1,3 +1,7 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
@@ -24,40 +28,41 @@
</thead>
<tbody>
<tr>
- <td>{{ .Get "Berlin" }}</td>
+ <td>{{ .GetC "Berlin" "Place Name" }}</td>
<td>A</td>
</tr>
<tr>
- <td>{{ .Get "Munich" }}</td>
+ <td>{{ .GetC "Munich" "Place Name" }}</td>
<td>D</td>
</tr>
<tr>
- <td>{{ .Get "Stuttgart" }}</td>
+ <td>{{ .GetC "Stuttgart" "Place Name" }}</td>
<td>F</td>
</tr>
<tr>
- <td>{{ .Get "Karlsruhe" }}</td>
+ <td>{{ .GetC "Karlsruhe" "Place Name" }}</td>
<td>G</td>
</tr>
<tr>
- <td>{{ .Get "Hamburg" }}</td>
+ <td>{{ .GetC "Hamburg" "Place Name" }}</td>
<td>J</td>
</tr>
</tbody>
</table>
<p>
- {{ .Get "The bronze coins display an oak twig which is similar to the one found on the former Pfennig coins from the German Mark. The mint mark and year are located on the left- and right-hand sides of the stem." }}
+ {{ .Get "The 1c, 2c and 5c coins display an oak twig similar to that found on the former Pfennig coins of the German Mark (Germany’s pre-Euro currency). The mint mark and year are located on the left- and right-hand sides of the oak twig’s stem." }}
</p>
<p>
- {{ .Get "The gold coins feature the Brandenburg Gate, a symbol of Berlin and Germany as a whole, but also a symbol of German division and unity. The mint mark is located below the year." }}
+ {{ .Get "The 10c, 20c and 50c coins feature the Brandenburg Gate, a symbol of Berlin and of Germany as a whole, but also a symbol of German division and unity. The mint mark is located below the year." }}
</p>
<p>
- {{ .Get "The bimetallic coins feature an interpretation of the German Federal Eagle (German: ‘{GermanStart:r}Bundesadler{GermanEnd:E}’). The eagle is a common motif in German heraldry — including in the German coat of arms — and represents strength and freedom. The mint mark is located to the right of the year." $deargs }}
+ {{ .Get "The €1 and €2 coins feature an interpretation of the German Federal Eagle (German: ‘{GermanStart:r}Bundesadler{GermanEnd:E}’). The eagle is a common motif in German heraldry — including in the {Link:L}German coat of arms{-:E} — and represents strength and freedom. The mint mark is located to the right of the year."
+ (map "Link" (.Printer.Wikipedia "Coat of arms of Germany")) $deargs }}
</p>
<p>
<!-- TODO: Get a picture of the edge-inscription -->
{{ .Get "The €2 coin also features an edge-inscription of Germany’s national motto and incipit of Germany’s national anthem. It reads ‘{GermanStart:r}EINIGKEIT UND RECHT UND FREIHEIT{GermanEnd:E}’ (English: ‘UNITY AND JUSTICE AND FREEDOM’)." $deargs }}
</p>
</main>
-{{ end }}
+{{ end }} \ No newline at end of file
diff --git a/src/templates/coins-designs-ee.html.tmpl b/src/templates/coins-designs-ee.html.tmpl
index a6a62e9..ee648db 100644
--- a/src/templates/coins-designs-ee.html.tmpl
+++ b/src/templates/coins-designs-ee.html.tmpl
@@ -1,3 +1,54 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+
+<style>
+ @media (max-width: 500px) {
+ #ee-vote-table {
+ tr:first-child td:first-child {
+ border-top: var(--border-width) solid var(--table-border-color);
+ }
+
+ thead, tfoot {
+ display: none;
+ }
+ tbody, tr, td {
+ display: block;
+ }
+
+ tr {
+ &:nth-child(even) {
+ background-color: var(--table-row-stripped-background-color);
+ }
+
+ td:not(:first-child) {
+ padding-top: calc(var(--spacing) / 4);
+ }
+ td:not(:last-child) {
+ padding-bottom: 0;
+ border-bottom: none;
+ }
+ }
+
+ td {
+ padding-left: 50%;
+ position: relative;
+ text-align: left;
+
+ }
+
+ :is(td, span)::before {
+ content: attr(data-label);
+ position: absolute;
+ left: 0;
+ width: 50%;
+ padding-left: 2ch;
+ font-weight: bold;
+ }
+ }
+ }
+</style>
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
@@ -15,11 +66,11 @@
(map "EstonianStart" `<span lang="et"><em>` "EstonianEnd" "em,span") }}
</p>
<p>
- {{ .Get "The design of the Estonian euro coins was chosen as part of a {EVLink:L}Eurovision{-:E}-style public televote where it competed and won against 9 other designs."
- (map "EVLink" "https://en.wikipedia.org/wiki/Eurovision_Song_Contest" ) }}
+ {{ .Get "The design of the Estonian euro coins was chosen as part of a {Link:L}Eurovision{-:E}-style public televote where it competed and won against 9 other designs."
+ (map "Link" (.Printer.Wikipedia "Eurovision Song Contest")) }}
</p>
<p>
- {{ .Get "In June 2024 a public design competition was announced with a deadline for the 19th of October. In total 134 designs were submitted by the deadline and 10 designs were selected by a jury. These 10 designs were then voted on in a public vote over the course of one week. In total 45,453 people voted and the current design won with a total of 12,482 votes (27.46%)." }}
+ {{ .Get "In June 2004 a public design competition was announced with a deadline for the 19th of October. A total of 134 designs were submitted by the deadline and of these submissions, 10 were picked by a jury to partake in the public vote over the course of one week. In total, 45,453 people voted and the current design won with a total of 12,482 votes (27.46%)." }}
</p>
<p>
{{ .Get "The winner of the contest was awarded 50,000 KR (€3,196) while the other finalists were each awarded 20,000 KR (€1,278)." }}
@@ -28,126 +79,112 @@
<!-- TODO: Add images of the other designs: https://web.archive.org/web/20070704210956/http://www.eestipank.info/pub/et/majandus/euroopaliit/euro/kavand/_1kava.html -->
<!-- Good description of one of the designs: http://www.worldofcoins.eu/forum/index.php/topic,21902.15.html?PHPSESSID=pc4qnnd3ng4etv8fp75u41erb1 -->
- <table>
+ <table id="ee-vote-table">
<thead>
<tr>
<th data-numeric style="width: 1%">{{ .Get "Position" }}</th>
- <th>{{ .Get "Name" }}<br>{{ .Get "Translation" }}</th>
+ <th>
+ {{ .Get "Name" }}<br>
+ <span class="translation">{{ .Get "Translation" }}</span>
+ </th>
<th>{{ .Get "Author(s)" }}</th>
<th data-numeric>{{ .Get "Votes" }}</th>
- <th data-numeric>{{ .Get "Votes (%)" }}</th>
+ <th data-numeric>{{ .Get "Votes (%)" }}</th>
</tr>
</thead>
<tbody>
- {{ $args := (map "Break" "<br>") }}
+ {{ $args := map "Break" "<br>" }}
+ {{ $tag := printf `td data-label="%s"` (.Get "Name") }}
+ {{ $attr := printf `data-label="%s"` (.Get "Translation") }}
<tr>
- <td data-numeric>1</td>
- {{/* TRANSLATORS: This is a place name. If you’re translating for a latin-script language, translate this to ‘{Null}’, otherwise transliterate this into your respective alphabet. */}}
- <td>Hara 2{{ .Get "{Break:r}Hara 2" $args }}</td>
- <td>{{ .Get "Lembit Lõhmus" }}</td>
- <td data-numeric>{{ .Printer.Itoa 12482 }}</td>
- <td data-numeric>{{ .Printer.Ftoa 27.46 }}</td>
+ <td data-label="{{ .Get `Position` }}" data-numeric>1</td>
+ {{/* TRANSLATORS: Name of a coin design. Don’t translate unless you use a non-latin script */}}
+ {{ withTranslation $tag "et" "Hara 2"
+ (.Get "Hara 2") $attr }}
+ <td data-label="{{ .Get `Author(s)` }}">{{ .Get "Lembit Lõhmus" }}</td>
+ <td data-label="{{ .Get `Votes` }}" data-numeric>{{ .Printer.Itoa 12482 }}</td>
+ <td data-label="{{ .Get `Votes (%)` }}" data-numeric>{{ .Printer.Ftop 27.46 }}</td>
</tr>
<tr>
- <td data-numeric>2</td>
- <td>
- <span lang="et">Järjepidevus</span>
- {{/* TRANSLATORS: Estonian translators should replace the entire translation with ‘{Null}’ */}}
- {{ .Get "{Break:r}Consistency" $args }}
- </td>
- <td>{{ .Get "Tiit Jürna" }}</td>
- <td data-numeric>{{ .Printer.Itoa 7477 }}</td>
- <td data-numeric>{{ .Printer.Ftoa 16.45 }}</td>
+ <td data-label="{{ .Get `Position` }}" data-numeric>2</td>
+ {{ withTranslation $tag "et" "Järjepidevus"
+ (.Get "Consistency") $attr }}
+ <td data-label="{{ .Get `Author(s)` }}">{{ .Get "Tiit Jürna" }}</td>
+ <td data-label="{{ .Get `Votes` }}" data-numeric>{{ .Printer.Itoa 7477 }}</td>
+ <td data-label="{{ .Get `Votes (%)` }}" data-numeric>{{ .Printer.Ftop 16.45 }}</td>
</tr>
<tr>
- <td data-numeric>3</td>
- <td>
- <span lang="la">In corpore</span>
- {{ .Get "{Break:r}In the Body" $args }}
- </td>
- <td>{{ .Get "Jaan Meristo" }}</td>
- <td data-numeric>{{ .Printer.Itoa 7284 }}</td>
- <td data-numeric>{{ .Printer.Ftoa 16.03 }}</td>
+ <td data-label="{{ .Get `Position` }}" data-numeric>3</td>
+ {{ withTranslation $tag "la" "In corpore"
+ (.Get "In the Body") $attr }}
+ <td data-label="{{ .Get `Author(s)` }}">{{ .Get "Jaan Meristo" }}</td>
+ <td data-label="{{ .Get `Votes` }}" data-numeric>{{ .Printer.Itoa 7284 }}</td>
+ <td data-label="{{ .Get `Votes (%)` }}" data-numeric>{{ .Printer.Ftop 16.03 }}</td>
</tr>
<tr>
- <td data-numeric>4</td>
- <td>
- Tomson 5791
- {{/* TRANSLATORS: This name. If you’re translating for a latin-script language, translate this to ‘{Null}’, otherwise transliterate this into your respective alphabet. */}}
- {{ .Get "{Break:r}Tomson 5791" $args }}
- </td>
- <td>{{ .Get "Taavi Torim" }}</td>
- <td data-numeric>{{ .Printer.Itoa 6219 }}</td>
- <td data-numeric>{{ .Printer.Ftoa 13.68 }}</td>
+ <td data-label="{{ .Get `Position` }}" data-numeric>4</td>
+ {{/* TRANSLATORS: Name of a coin design. Don’t translate unless you use a non-latin script */}}
+ {{ withTranslation $tag "et" "Tomson 5791"
+ (.Get "Tomson 5791") $attr }}
+ <td data-label="{{ .Get `Author(s)` }}">{{ .Get "Taavi Torim" }}</td>
+ <td data-label="{{ .Get `Votes` }}" data-numeric>{{ .Printer.Itoa 6219 }}</td>
+ <td data-label="{{ .Get `Votes (%)` }}" data-numeric>{{ .Printer.Ftop 13.68 }}</td>
</tr>
<tr>
- <td data-numeric>5</td>
- <td>
- <span lang="et">Eesti keel</span>
- {{/* TRANSLATORS: Estonian translators should replace the entire translation with ‘{Null}’ */}}
- {{ .Get "{Break:r}Estonian" $args }}
- </td>
- <td>{{ .Get "Jaak Peep, Villem Valme" }}</td>
- <td data-numeric>{{ .Printer.Itoa 5997 }}</td>
- <td data-numeric>{{ .Printer.Ftoa 13.19 }}</td>
+ <td data-label="{{ .Get `Position` }}" data-numeric>5</td>
+ {{/* TRANSLATORS: Estonian Translators: ‘Estonian’ as in the language, not the nationality */}}
+ {{ withTranslation $tag "et" "Eesti keel"
+ (.GetC "Estonian" "Coin Design") $attr }}
+ <td data-label="{{ .Get `Author(s)` }}">{{ .Get "Jaak Peep, Villem Valme" }}</td>
+ <td data-label="{{ .Get `Votes` }}" data-numeric>{{ .Printer.Itoa 5997 }}</td>
+ <td data-label="{{ .Get `Votes (%)` }}" data-numeric>{{ .Printer.Ftop 13.19 }}</td>
</tr>
<tr>
- <td data-numeric>6</td>
- <td>261948</td>
- <td>{{ .Get "Mai Järmut, Villu Järmut" }}</td>
- <td data-numeric>{{ .Printer.Itoa 3036 }}</td>
- <td data-numeric>{{ .Printer.Ftoa 6.68 }}</td>
+ <td data-label="{{ .Get `Position` }}" data-numeric>6</td>
+ <td data-label="{{ .Get `Name` }}">261948</td>
+ <td data-label="{{ .Get `Author(s)` }}">{{ .Get "Mai Järmut, Villu Järmut" }}</td>
+ <td data-label="{{ .Get `Votes` }}" data-numeric>{{ .Printer.Itoa 3036 }}</td>
+ <td data-label="{{ .Get `Votes (%)` }}" data-numeric>{{ .Printer.Ftop 6.68 }}</td>
</tr>
<tr>
- <td data-numeric>7</td>
- <td>
- <span lang="et">Linnutee</span>
- {{/* TRANSLATORS: Estonian translators should replace the entire translation with ‘{Null}’ */}}
- {{ .Get "{Break:r}Bird Road" $args }}
- </td>
- <td>{{ .Get "Tiit Jürna" }}</td>
- <td data-numeric>{{ .Printer.Itoa 1323 }}</td>
- <td data-numeric>{{ .Printer.Ftoa 2.91 }}</td>
+ <td data-label="{{ .Get `Position` }}" data-numeric>7</td>
+ {{ withTranslation $tag "et" "Linnutee"
+ (.Get "Bird Road") $attr }}
+ <td data-label="{{ .Get `Author(s)` }}">{{ .Get "Tiit Jürna" }}</td>
+ <td data-label="{{ .Get `Votes` }}" data-numeric>{{ .Printer.Itoa 1323 }}</td>
+ <td data-label="{{ .Get `Votes (%)` }}" data-numeric>{{ .Printer.Ftop 2.91 }}</td>
</tr>
<tr>
- <td data-numeric>8</td>
- <td>
- <span lang="et">Leopardid-2</span>
- {{/* TRANSLATORS: Estonian translators should replace the entire translation with ‘{Null}’ */}}
- {{ .Get "{Break:r}Leopards-2" $args }}
- </td>
- <td>{{ .Get "Jaarno Ester" }}</td>
- <td data-numeric>{{ .Printer.Itoa 759 }}</td>
- <td data-numeric>{{ .Printer.Ftoa 1.67 }}</td>
+ <td data-label="{{ .Get `Position` }}" data-numeric>8</td>
+ {{ withTranslation $tag "et" "Leopardid-2"
+ (.Get "Leopards-2") $attr }}
+ <td data-label="{{ .Get `Author(s)` }}">{{ .Get "Jaarno Ester" }}</td>
+ <td data-label="{{ .Get `Votes` }}" data-numeric>{{ .Printer.Itoa 759 }}</td>
+ <td data-label="{{ .Get `Votes (%)` }}" data-numeric>{{ .Printer.Ftop 1.67 }}</td>
</tr>
<tr>
- <td data-numeric>9</td>
- <td>
- Nova
- {{/* TRANSLATORS: This name. If you’re translating for a latin-script language, translate this to ‘{Null}’, otherwise transliterate this into your respective alphabet. */}}
- {{ .Get "{Break:r}Nova" $args }}
- </td>
- <td>{{ .Get "Rene Haljasmäe" }}</td>
- <td data-numeric>{{ .Printer.Itoa 498 }}</td>
- <td data-numeric>{{ .Printer.Ftoa 1.1 }}</td>
+ <td data-label="{{ .Get `Position` }}" data-numeric>9</td>
+ {{/* TRANSLATORS: Name of a coin design. Don’t translate unless you use a non-latin script */}}
+ {{ withTranslation $tag "et" "Nova"
+ (.Get "Nova") $attr }}
+ <td data-label="{{ .Get `Author(s)` }}">{{ .Get "Rene Haljasmäe" }}</td>
+ <td data-label="{{ .Get `Votes` }}" data-numeric>{{ .Printer.Itoa 498 }}</td>
+ <td data-label="{{ .Get `Votes (%)` }}" data-numeric>{{ .Printer.Ftop 1.1 }}</td>
</tr>
<tr>
- <td data-numeric>10</td>
- <td>
- <span lang="et">Lill rukkis</span>
- {{/* TRANSLATORS: Estonian translators should replace the entire translation with ‘{Null}’ */}}
- {{ .Get "{Break:r}A Flower in the Rye" $args }}
- </td>
- <td>{{ .Get "Margus Kadarik" }}</td>
- <td data-numeric>{{ .Printer.Itoa 378 }}</td>
- <td data-numeric>{{ .Printer.Ftoa 0.83 }}</td>
+ <td data-label="{{ .Get `Position` }}" data-numeric>10</td>
+ {{ withTranslation $tag "et" "Lill rukkis"
+ (.Get "A Flower in the Rye") $attr }}
+ <td data-label="{{ .Get `Author(s)` }}">{{ .Get "Margus Kadarik" }}</td>
+ <td data-label="{{ .Get `Votes` }}" data-numeric>{{ .Printer.Itoa 378 }}</td>
+ <td data-label="{{ .Get `Votes (%)` }}" data-numeric>{{ .Printer.Ftop 0.83 }}</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="3">{{ .Get "Total" }}</th>
<th data-numeric>{{ .Printer.Itoa 45453 }}</th>
- <th data-numeric>{{ .Printer.Ftoa 100.0 }}</th>
+ <th data-numeric>{{ .Printer.Ftop 100.0 }}</th>
</tr>
</tfoot>
</table>
diff --git a/src/templates/coins-designs-hr.html.tmpl b/src/templates/coins-designs-hr.html.tmpl
index 01a391e..4175198 100644
--- a/src/templates/coins-designs-hr.html.tmpl
+++ b/src/templates/coins-designs-hr.html.tmpl
@@ -1,3 +1,7 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
@@ -18,21 +22,21 @@
$hrargs }}
</p>
<p>
- {{ .Get "The 1-, 2- and 5 euro cent coins were designed by Maja Škripelj and feature a motif of the letters ‘ⰘⰓ’ from the {Link:L}Glagolitic script{-:E} — an old Slavic script that saw use in Croatia up until the 19th century — representing Croatia’s country code (‘HR’ in the Latin alphabet)."
- (map "Link" "https://www.wikipedia.org/wiki/Glagolitic_script") }}
+ {{ .Get "The 1c, 2c and 5c coins were designed by Maja Škripelj and feature a motif of the letters ‘ⰘⰓ’ from the {Link:L}Glagolitic script{-:E} — an old Slavic script that saw use in Croatia up until the 19th century — representing Croatia’s country code (‘HR’ in the Latin alphabet)."
+ (map "Link" (.Printer.Wikipedia "Glagolitic script")) }}
</p>
<p>
- {{ .Get "The 10-, 20- and 50 euro cent coins were designed by Ivan Domagoj Račić and feature the portrait of the inventor and engineer {Link:L}Nikola Tesla{-:E}. The design of these coins caused controversy when they were first announced with the National Bank of Serbia claiming that it would be an appropriation of the cultural and scientific heritage of the Serbian people to feature the portrait of someone who ‘declared himself to be Serbian by origin’."
- (map "Link" "https://www.wikipedia.org/wiki/Nikola_Tesla") }}
+ {{ .Get "The 10c, 20c and 50c coins were designed by Ivan Domagoj Račić and feature the portrait of the inventor and engineer {Link:L}Nikola Tesla{-:E}. The design of these coins caused controversy when they were first announced with the National Bank of Serbia claiming that it would be an appropriation of the cultural and scientific heritage of the Serbian people to feature the portrait of someone who ‘declared himself to be Serbian by origin’."
+ (map "Link" (.Printer.Wikipedia "Nikola Tesla")) }}
</p>
<p>
- {{ .Get "The 1 euro coin was designed by Jagor Šunde, David Čemeljić and Fran Zekan and features a marten. The marten is the semi-official national animal of Croatia and the Kuna — their pre-Euro currency — was named after the marten (‘{CroatianStart:r}kuna zlatica{CroatianEnd:E}’ in Croatian)."
+ {{ .Get "The €1 coin was designed by Jagor Šunde, David Čemeljić and Fran Zekan and features a marten. The marten is the semi-official national animal of Croatia and the Kuna — their pre-Euro currency — was named after the marten (‘{CroatianStart:r}kuna zlatica{CroatianEnd:E}’ in Croatian)."
$hrargs }}
</p>
<p>
<!-- TODO: Include a photo of the edge inscription -->
- {{ .Get "The 2 euro coin was designed by Ivan Šivak and features the map of Croatia. The coin also has an edge-inscription that reads ‘{CroatianStart:r}O LIJEPA O DRAGA O SLATKA SLOBODO{CroatianEnd:E}’ (English: ‘OH BEAUTIFUL, OH DEAR, OH SWEET FREEDOM’) which is a line from the play {Link:L}Dubravka{-:E} by Ivan Gundulić."
- $hrargs (map "Link" "https://www.wikipedia.org/wiki/Dubravka_(drama)") }}
+ {{ .Get "The €2 coin was designed by Ivan Šivak and features the map of Croatia. The coin also has an edge-inscription that reads ‘{CroatianStart:r}O LIJEPA O DRAGA O SLATKA SLOBODO{CroatianEnd:E}’ (English: ‘OH BEAUTIFUL, OH DEAR, OH SWEET FREEDOM’) which is a line from the play {Link:L}Dubravka{-:E} by Ivan Gundulić."
+ $hrargs (map "Link" (.Printer.Wikipedia "Dubravka (drama)")) }}
</p>
</main>
-{{ end }}
+{{ end }} \ No newline at end of file
diff --git a/src/templates/coins-designs-nl.html.tmpl b/src/templates/coins-designs-nl.html.tmpl
index a801374..18f9efe 100644
--- a/src/templates/coins-designs-nl.html.tmpl
+++ b/src/templates/coins-designs-nl.html.tmpl
@@ -1,3 +1,7 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
@@ -26,16 +30,16 @@
/>
</div>
<p>
- {{ .Get "From the years 1999–2013 all Dutch euro coins featured the portrait of Queen Beatrix of the Netherlands. After her abdication from the throne in 2013 the designs of all denominations were changed to feature the portrait of the new King Willem-Alexander. After her abdication the direction in which the monarchs portrait faced was flipped; a tradition shared by the coins of many monarchies around the world." }}
+ {{ .Get "From the years 1999–2013 all Dutch euro coins featured the portrait of Queen Beatrix of the Netherlands. After her abdication from the throne in 2013 the designs of all denominations were changed to feature the portrait of the new King Willem-Alexander. After her abdication the direction in which the monarchs portrait faced was flipped; a tradition shared by the coins of many monarchies around the world." }}
</p>
<p>
<!-- TODO: Get a picture of the edge-inscription -->
- {{ .Get "Coins featuring both monarchs contain text reading ‘{DutchStart:r}BEATRIX KONINGIN DER NEDERLANDEN{DutchEnd:E}’ (English: ‘BEATRIX QUEEN OF THE NETHERLANDS’) and ‘{DutchStart:r}Willem-Alexander Koning der Nederlanden{DutchEnd:E}’ (English: ‘Willem-Alexander King of the Netherlands’) respectively. The €2 coins also feature an edge-inscription reading ‘{DutchStart:r}GOD ⋆ ZIJ ⋆ MET ⋆ ONS ⋆{DutchEnd:E}’ (English: ‘GOD ⋆ IS ⋆ WITH ⋆ US ⋆’)."
+ {{ .Get "Coins featuring both monarchs contain text reading ‘{DutchStart:r}BEATRIX KONINGIN DER NEDERLANDEN{DutchEnd:E}’ (English: ‘BEATRIX QUEEN OF THE NETHERLANDS’) and ‘{DutchStart:r}Willem-Alexander Koning der Nederlanden{DutchEnd:E}’ (English: ‘Willem-Alexander King of the Netherlands’) respectively. The €2 coins also feature an edge-inscription reading ‘{DutchStart:r}GOD ⋆ ZIJ ⋆ MET ⋆ ONS ⋆{DutchEnd:E}’ (English: ‘GOD ⋆ IS ⋆ WITH ⋆ US ⋆’)."
$nlargs }}
</p>
<p>
- {{ .Get "The €1 and €2 coins featuring King Willem-Alexander were minted with a much lower {Link:l}relief{-:E} than most euro coins of the same denomination. As a result it is not uncommon for these coins to appear worn after little use in circulation."
+ {{ .Get "The €1 and €2 coins featuring King Willem-Alexander were minted with a much lower {Link:l}relief{-:E} than most euro coins of the same denomination. As a result it is not uncommon for these coins to appear worn after little use in circulation."
(map "Link" "/jargon#relief") }}
</p>
</main>
-{{ end }}
+{{ end }} \ No newline at end of file
diff --git a/src/templates/coins-designs.html.tmpl b/src/templates/coins-designs.html.tmpl
index 8cd8c84..33b0841 100644
--- a/src/templates/coins-designs.html.tmpl
+++ b/src/templates/coins-designs.html.tmpl
@@ -1,16 +1,36 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+
+<style>
+ .country-grid {
+ --button-min-width: 20ch;
+
+ a {
+ display: flex;
+ padding-block: 1ch;
+
+ > :first-child {
+ text-align: left;
+ font-weight: bold;
+ width: calc(var(--pico-form-element-spacing-horizontal) + 2ch);
+ }
+ }
+ }
+</style>
+{{ end }}
+
{{ define "content" }}
-<header>
+<header class="container">
{{ template "navbar" . }}
<h1>{{ .Get "Euro Coin Designs" }}</h1>
</header>
-<main>
+<main class="container">
<p>
{{ .Get "Here you’ll be able to view all the coin designs for each country in the Eurozone. This section of the site doesn’t include minor varieties such as different mintmarks or errors; those are on the {Link:l}varieties{-:E} page."
(map "Link" "/coins/varieties") }}
</p>
<hr />
- <div class="country-grid">
- {{ $p := .Printer }}
+ <div class="button-grid country-grid">
{{ range .Countries }}
<a
class="outline"
@@ -18,9 +38,10 @@
role="button"
href="/coins/designs/{{ .Code }}"
>
- {{ $p.Get .Name }}
+ <span>{{ .Code | toUpper }}</span>
+ <span>{{ .Name }}</span>
</a>
{{ end }}
</div>
</main>
-{{ end }} \ No newline at end of file
+{{ end }}
diff --git a/src/templates/coins-mintages.html.tmpl b/src/templates/coins-mintages.html.tmpl
index 8df0868..7c041f3 100644
--- a/src/templates/coins-mintages.html.tmpl
+++ b/src/templates/coins-mintages.html.tmpl
@@ -1,136 +1,243 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+
+<style>
+ .mintage-table {
+ white-space: nowrap;
+
+ tr :is(th, td):first-child {
+ position: sticky;
+ left: 0;
+ }
+ }
+
+ label[for="country-dd"] { display: none; }
+ label[for="year-dd"] { display: none; }
+
+ form {
+ &:has(#country:checked) {
+ label[for="country-dd"] { display: unset; }
+ }
+ &:has(#year:checked) {
+ label[for="year-dd"] { display: unset; }
+ }
+ }
+</style>
+{{ end }}
+
{{ define "content" }}
-<header>
+<header class="container">
{{ template "navbar" . }}
<h1>{{ .Get "Euro Coin Mintages" }}</h1>
</header>
-<main>
+<main class="container">
<p>
{{ .Get "Here you’ll be able to view all the known mintages for all coins. You’ll also be able to filter on country, denomination, etc. If you have any mintage data that’s missing from our site, feel free to contact us." }}
</p>
- <hr />
+ <hr>
{{ if eq .Code "nl" }}
- <h2>{{ .Get "Additional Notes" }}</h2>
- <ul>
- <li>
- {{ .Get "Most coins from the years 2003–2016 are listed as NIFC coins while other popular sources such as Numista claim they were minted for circulation. For more information on why others are wrong, {Link:l}click here{-:E}."
+ <h2>{{ .Get "Additional Notes" }}</h2>
+ <ul>
+ <li>
+ {{ .Get "Most coins from the years 2003–2016 are listed as NIFC coins while other popular sources such as Numista claim they were minted for circulation. For more information on why others are wrong, {Link:l}click here{-:E}."
(map "Link" "#TODO") }}
- </li>
- </ul>
+ </li>
+ </ul>
{{ end }}
- <section>
- <form>
- <div class="grid">
- <label for="country-dd">
- {{ .Get "Country" }}
- <select id="country-dd" name="code">
- {{ $code := .Code }}
- {{ range .Countries }}
- <option
- value="{{ .Code }}"
- {{ if eq .Code $code }}
- selected
- {{ end }}
- >
- {{ .Name }}
- </option>
- {{ end }}
- </select>
- </label>
- <fieldset>
- {{ template "coin-type-radio"
- (tuple .Type "circ" (.Get "Circulation Coins")) }}
- {{ template "coin-type-radio"
- (tuple .Type "nifc" (.Get "NIFC / BU Sets")) }}
- {{ template "coin-type-radio"
- (tuple .Type "proof" (.Get "Proof Coins")) }}
- </fieldset>
- </div>
- <button type="submit">{{ .Get "Filter" }}</button>
- </form>
- <figure>
- <figcaption>{{ .Get "Standard Issue Coins" }}</figcaption>
- <table class="mintage-table" role="grid">
+ <form>
+ <div class="grid">
+ <fieldset>
+ <legend>{{ .GetC "Filter Method" "Header/Label" }}</legend>
+ {{ template "mintages/filter-radio"
+ (tuple .FilterBy "country" (.GetC "Country" "Header/Label")) }}
+ {{ template "mintages/filter-radio"
+ (tuple .FilterBy "year" (.GetC "Year" "Header/Label")) }}
+ </fieldset>
+
+ <label for="country-dd">
+ {{ .GetC "Country" "Header/Label" }}
+ <select id="country-dd" name="country">
+ {{ $code := .Code }}
+ {{ range .Countries }}
+ <option
+ value="{{ .Code }}"
+ {{ if eq .Code $code }}
+ selected
+ {{ end }}
+ >
+ {{ .Name }}
+ </option>
+ {{ end }}
+ </select>
+ </label>
+
+ <label for="year-dd">
+ {{ .GetC "Year" "Header/Label" }}
+ <select id="year-dd" name="year">
+ {{ $year := .Year }}
+ {{ range years }}
+ <option
+ value="{{ . }}"
+ {{ if eq . $year }}
+ selected
+ {{ end }}
+ >
+ {{ . }}
+ </option>
+ {{ end }}
+ </select>
+ </label>
+
+ <fieldset>
+ {{ template "mintages/coin-type-radio"
+ (tuple .Type "circ" (.Get "Circulation Coins")) }}
+ {{ template "mintages/coin-type-radio"
+ (tuple .Type "nifc" (.Get "NIFC / BU Sets")) }}
+ {{ template "mintages/coin-type-radio"
+ (tuple .Type "proof" (.Get "Proof Coins")) }}
+ </fieldset>
+ </div>
+ <button type="submit">{{ .GetC "Filter" "Header/Label" }}</button>
+ </form>
+ <figure>
+ <figcaption>{{ .Get "Standard Issue Coins" }}</figcaption>
+ <div class="overflow-auto">
+ {{ if eq .FilterBy "country" }}
+
+ <table class="mintage-table striped" role="grid">
<thead>
- <th>{{ .Get "Year" }}</th>
- <th>{{ .Printer.Sprintf "{N:m}" (map "N" 0.01) }}</th>
- <th>{{ .Printer.Sprintf "{N:m}" (map "N" 0.02) }}</th>
- <th>{{ .Printer.Sprintf "{N:m}" (map "N" 0.05) }}</th>
- <th>{{ .Printer.Sprintf "{N:m}" (map "N" 0.10) }}</th>
- <th>{{ .Printer.Sprintf "{N:m}" (map "N" 0.20) }}</th>
- <th>{{ .Printer.Sprintf "{N:m}" (map "N" 0.50) }}</th>
- <th>{{ .Printer.Sprintf "{N:m}" (map "N" 1.00) }}</th>
- <th>{{ .Printer.Sprintf "{N:m}" (map "N" 2.00) }}</th>
+ <th>{{ .GetC "Year" "Header/Label" }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.01 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.02 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.05 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.10 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.20 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.50 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 1.00 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 2.00 }}</th>
</thead>
<tbody>
{{ $p := .Printer }}
- {{ range .Mintages.Standard }}
+ {{ range .CountryMintages.Standard }}
<tr>
- <th scope="col">
+ <th scope="row">
{{- .Year -}}
{{- if ne .Mintmark "" -}}
&nbsp;<sub><small>{{ .Mintmark }}</small></sub>
{{- end -}}
</th>
{{ range .Mintages }}
- {{ if eq . -1 }}
- <td>{{ $p.Get "Unknown" }}</td>
- {{ else if eq . -2 }}
- <td class="error">{{ $p.Get "Error" }}</td>
- {{ else if eq . 0 }}
- <td>—</td>
- {{ else }}
- <td>{{ $p.Sprintf "{N}" (map "N" .) }}</td>
- {{ end }}
- </td>
+ {{ template "mintages/mintage-cell" (tuple . $p) }}
{{ end }}
</tr>
{{ end }}
</tbody>
</table>
+
+ {{ else if eq .FilterBy "year" }}
+
+ <table class="mintage-table striped" role="grid">
+ <thead>
+ <th>{{ .GetC "Country" "Header/Label" }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.01 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.02 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.05 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.10 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.20 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 0.50 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 1.00 }}</th>
+ <th data-numeric>{{ .Printer.Ftom 2.00 }}</th>
+ </thead>
+ <tbody>
+ {{ $p := .Printer }}
+ {{ range .YearMintages.Standard }}
+ <tr>
+ <th scope="row">
+ {{- .Country -}}
+ {{- if ne .Mintmark "" -}}
+ &nbsp;<sub><small>{{ .Mintmark }}</small></sub>
+ {{- end -}}
+ </th>
+ {{ range .Mintages }}
+ {{ template "mintages/mintage-cell" (tuple . $p) }}
+ {{ end }}
+ </tr>
+ {{ end }}
+ </tbody>
+ </table>
+ {{ end }}
+ </div>
+ </figure>
+
+ {{ if eq .FilterBy "country" }}
+ {{ if ne (len .CountryMintages.Commemorative) 0 }}
+ <figure>
+ <figcaption>{{ .Get "Commemorative Coins" }}</figcaption>
+ <table class="mintage-table striped" role="grid">
+ <thead>
+ <th>{{ .GetC "Year" "Header/Label" }}</th>
+ <th>{{ .GetC "Commemorated Topic" "Header/Label" }}</th>
+ <th data-numeric>{{ .GetC "Mintage" "Header/Label" }}</th>
+ </thead>
+ <tbody>
+ {{ $p := .Printer }}
+ {{ range .CountryMintages.Commemorative }}
+ <tr>
+ <th scope="row">
+ {{- .Year -}}
+ {{- if ne .Mintmark "" -}}
+ &nbsp;<sub><small>{{ .Mintmark }}</small></sub>
+ {{- end -}}
+ </th>
+ <!-- TODO: Translate commemorative names -->
+ <td>{{ .Name }}</td>
+ {{ with .Mintage }}
+ {{ template "mintages/mintage-cell" (tuple . $p) }}
+ {{ end }}
+ </tr>
+ {{ end }}
+ </tbody>
+ </table>
</figure>
- {{ if ne (len .Mintages.Commemorative) 0 }}
- <figure>
- <figcaption>{{ .Get "Commemorative Coins" }}</figcaption>
- <table class="mintage-table-cc" role="grid">
- <thead>
- <th>{{ .Get "Year" }}</th>
- <th>{{ .Get "Commemorated Issue" }}</th>
- <th>{{ .Get "Mintage" }}</th>
- </thead>
- <tbody>
- {{ $p := .Printer }}
- {{ range .Mintages.Commemorative }}
- <tr>
- <th scope="col">
- {{- .Year -}}
- {{- if ne .Mintmark "" -}}
- &nbsp;<sub><small>{{ .Mintmark }}</small></sub>
- {{- end -}}
- </th>
- <!-- TODO: Translate commemorative names -->
- <td>{{ .Name }}</td>
- {{ with .Mintage }}
- {{ if eq . -1 }}
- <td>{{ $p.Get "Unknown" }}</td>
- {{ else if eq . -2 }}
- <td class="error">{{ $p.Get "Error" }}</td>
- {{ else if eq . 0 }}
- <td>—</td>
- {{ else }}
- <td>{{ $p.Sprintf "{N}" (map "N" .) }}</td>
- {{ end }}
- {{ end }}
- </tr>
+ {{ end }}
+
+ {{ else if eq .FilterBy "year" }}
+
+ {{ if ne (len .YearMintages.Commemorative) 0 }}
+ <figure>
+ <figcaption>{{ .Get "Commemorative Coins" }}</figcaption>
+ <table class="mintage-table striped" role="grid">
+ <thead>
+ <th>{{ .GetC "Country" "Header/Label" }}</th>
+ <th>{{ .GetC "Commemorated Topic" "Header/Label" }}</th>
+ <th data-numeric>{{ .GetC "Mintage" "Header/Label" }}</th>
+ </thead>
+ <tbody>
+ {{ $p := .Printer }}
+ {{ range .YearMintages.Commemorative }}
+ <tr>
+ <th scope="row">
+ {{- .Country -}}
+ {{- if ne .Mintmark "" -}}
+ &nbsp;<sub><small>{{ .Mintmark }}</small></sub>
+ {{- end -}}
+ </th>
+ <!-- TODO: Translate commemorative names -->
+ <td>{{ .Name }}</td>
+ {{ with .Mintage }}
+ {{ template "mintages/mintage-cell" (tuple . $p) }}
{{ end }}
- </tbody>
- </table>
- </figure>
+ </tr>
+ {{ end }}
+ </tbody>
+ </table>
+ </figure>
{{ end }}
- </section>
+ {{ end }}
</main>
{{ end }}
-{{ define "coin-type-radio" }}
+{{ define "mintages/coin-type-radio" }}
<label for="{{ index . 1 }}">
<input
id="{{ index . 1 }}"
@@ -138,9 +245,39 @@
type="radio"
value="{{ index . 1 }}"
{{ if eq (index . 0) (index . 1) }}
- checked
+ checked
{{ end }}
/>
{{ index . 2 }}
</label>
-{{ end }} \ No newline at end of file
+{{ end }}
+
+{{ define "mintages/filter-radio" }}
+{{ $v := index . 1 }}
+<label for="{{ $v }}">
+ <input
+ name="filter-by"
+ type="radio"
+ value="{{ $v }}"
+ id="{{ $v }}"
+ {{ if eq (index . 0) $v }}
+ checked
+ {{ end }}
+ >
+ {{ index . 2 }}
+</label>
+{{ end }}
+
+{{ define "mintages/mintage-cell" }}
+{{ $v := index . 0 }}
+{{ $p := index . 1 }}
+{{ if eq $v -1 }}
+ <td data-numeric>{{ $p.Get "Unknown" }}</td>
+{{ else if eq $v -2 }}
+ <td data-numeric class="error">{{ $p.Get "Error" }}</td>
+{{ else if eq $v 0 }}
+ <td data-numeric>—</td>
+{{ else }}
+ <td data-numeric>{{ $p.Itoa $v }}</td>
+{{ end }}
+{{ end }}
diff --git a/src/templates/coins.html.tmpl b/src/templates/coins.html.tmpl
index 6fbdf15..ee36ed8 100644
--- a/src/templates/coins.html.tmpl
+++ b/src/templates/coins.html.tmpl
@@ -1,46 +1,52 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+
+<style>
+ #sections {
+ --button-min-width: 40ch;
+
+ article {
+ min-height: 100%;
+ }
+ }
+</style>
+{{ end }}
+
{{ define "content" }}
-<header>
+<header class="container">
{{ template "navbar" . }}
<h1>{{ .Get "Euro Coins" }}</h1>
</header>
-<main>
+<main class="container">
<p>
{{ .Get "On this section of the site you can find everything there is to know about the coins of the Eurozone." }}
</p>
<hr />
- <section>
- <div class="grid">
- <a class="no-deco" href="/coins/designs">
- <article>
- <header>
- <h3>{{ .Get "Designs" }}</h3>
- </header>
- <main>
- {{ .Get "View the 600+ different Euro-coin designs!" }}
- </main>
- </article>
- </a>
- <a class="no-deco" href="/coins/mintages">
- <article>
- <header>
- <h3>{{ .Get "Mintages" }}</h3>
- </header>
- <main>
- {{ .Get "View the mintage figures of all the Euro coins!" }}
- </main>
- </article>
- </a>
- <a class="no-deco" href="/coins/varieties">
- <article>
- <header>
- <h3>{{ .Get "Varieties" }}</h3>
- </header>
- <main>
- {{ .Get "View all the known Euro varieties!" }}
- </main>
- </article>
- </a>
- </div>
- </section>
+ <div id="sections" class="button-grid">
+ <a class="no-deco" href="/coins/designs">
+ <article>
+ <header>
+ <h3>{{ .Get "Designs" }}</h3>
+ </header>
+ {{ .Get "View the 600+ different Euro-coin designs" }}
+ </article>
+ </a>
+ <a class="no-deco" href="/coins/mintages">
+ <article>
+ <header>
+ <h3>{{ .Get "Mintages" }}</h3>
+ </header>
+ {{ .Get "View the mintage figures of all the Euro coins" }}
+ </article>
+ </a>
+ <a class="no-deco" href="/coins/varieties">
+ <article>
+ <header>
+ <h3>{{ .Get "Varieties" }}</h3>
+ </header>
+ {{ .Get "View all the known Euro varieties" }}
+ </article>
+ </a>
+ </div>
</main>
{{ end }} \ No newline at end of file
diff --git a/src/templates/collecting-crh.html.tmpl b/src/templates/collecting-crh.html.tmpl
index bbca883..0fe19a4 100644
--- a/src/templates/collecting-crh.html.tmpl
+++ b/src/templates/collecting-crh.html.tmpl
@@ -1,591 +1,542 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
-<header>
+<header class="container">
{{ template "navbar" . }}
- <h1>{{ .T "Coin Roll Hunting" }}</h1>
+ <h1>{{ .Get "Coin Roll Hunting" }}</h1>
</header>
-<main>
- <h2>{{ .T "What is Coin Roll Hunting?" }}</h2>
+<main class="container">
+ <h2>{{ .Get "What is ‘Coin Roll Hunting’?" }}</h2>
<p>
- {{ .T `
- Coin roll hunting is a popular method of coin collecting in which
- you withdrawal cash from your bank in the form of coins which you
- then search through to find new additions to your collection. Once
- you’ve searched through all your coins, you will typically deposit
- your left over coins at the bank and withdrawal new coins.
- ` }}
+ {{ .Get "Coin roll hunting is a popular method of coin collecting in which you withdraw cash from your bank in the form of coins and then search through those coins to find new additions to your collection. Once you’ve searched through all your coins, you will typically deposit your left over coins at the bank and withdraw new coins." }}
</p>
<p>
- {{ .T `
- This type of coin collecting is often called ‘Coin Roll Hunting’
- due to the fact that coins are often withdrawn in paper-wrapped
- rolls. You may however find that your coins come in plastic bags
- instead (common in countries like Ireland).
- ` }}
+ {{ .Get "This type of coin collecting is often called ‘coin roll hunting’ (abbreviated to ‘CRH’) due to the fact that banks will often provide you with coins in the form of paper-wrapped rolls. You may however find that your coins come in plastic bags instead (common in countries like Ireland)." }}
</p>
<p>
- {{ .T `
- Depending on your bank and branch, the process of obtaining coins
- may differ. Some banks require you speak to a teller, others have
- coin machines. Some banks may also require that you are a customer
- or even to have a business account. If you aren’t sure about if
- you can get coins we suggest you contact your bank, although
- further down this page we also have information about the
- withdrawal of coins in various countries and major banks.
- ` }}
+ {{ .Get "Depending on your bank and branch, the process of obtaining coins may differ. Some banks require you speak to a teller while others have coin machines. Some banks may also require that you are a customer or even that you have a business account. If you aren’t sure about if you can get coins we suggest you contact your bank, although further down this page we also have additional information about the withdrawal of coins in various countries and major banks." }}
</p>
- <h2>{{ .T "Getting Started" }}</h2>
+ <h2>{{ .Get "Getting Started" }}</h2>
<p>
- {{ .T `
- To get started with coin roll hunting you should first contact your
- bank or check their website to find details regarding coin
- withdrawal. You will then typically need to go to the bank to pick
- up your coins. Depending on your bank you may be able to
- withdrawal coins from a machine, although often you can pick up
- your coins from the banks tellers. You will also often need to pay
- a small fee for each roll, although some banks don’t charge fees.
- ` }}
+ {{ .Get "To get started with coin roll hunting you should first contact your bank or check their website to find details regarding coin withdrawal. You will then typically need to go to the bank to pick up your coins. Depending on your bank you may be able to withdraw coins from a machine. Most banks will charge you a small fee per roll and/or transaction." }}
</p>
<p>
- {{ .T `
- It is also important to find details regarding the deposit of
- coins. Depositing coins often also requires the payment of a fee
- — one which is typically more expensive than the withdrawal fees.
- If depositing your coins is too expensive you can always exchange
- your left over coins at shops for banknotes. It is often cheaper
- (or even free) to deposit banknotes.
- ` }}
+ {{ .Get "It is also important to find details regarding the deposit of coins. Depositing coins often also requires the payment of a fee — one which is typically more expensive than the withdrawal fees. If depositing your coins is too expensive you can always exchange your left over coins at shops for banknotes. It is often cheaper (or even free) to deposit banknotes." }}
</p>
<p>
- {{ .T `
- In some countries such as Austria it is even common to be able to
- withdrawal new coins from your account by exchanging the left over
- coins you already have.
- ` }}
+ {{ .Get "In some countries such as Austria it is even common to be able to withdraw new coins from your account using other coins." }}
</p>
- <h2>{{ .T "Country-Specific Details" }}</h2>
+ <h2>{{ .Get "Country-Specific Details" }}</h2>
<p>
- {{ .T `
- Below you can find all sorts of country-specific information we
- have regarding obtaining coin rolls. We lack a lot of information
- for many of the countries, so if you have any additional
- information such as your banks fees, the availability of coin roll
- machines, etc. feel free to contact us! You can find our contact
- information %shere%s.`
- `<a href="/about" target="_blank">` `</a>` | safe
- }}
+ {{ .Get "Below you can find country-specific details we have regarding obtaining coin rolls. We lack a lot of information for many of the countries, so if you have any additional information such as your banks fees, the availability of coin roll machines, etc. feel free to contact us! You can find our contact information {Link:l}here{-:E}."
+ (map "Link" "/about") }}
</p>
<p>
- {{ .T `
- Be aware of the face that the information below is prone to being
- outdated, and as such may not reflect the current reality.
- ` }}
+ {{ .Get "Be aware of the fact that the information below may be outdated or inaccurate. Many of the details are self-reported." }}
</p>
- {{ $p := .Printer }}
- {{ range .Countries }}
- <details id={{ .Code }}>
- <summary>{{ $p.T .Name }}</summary>
- {{ if eq .Code "ad" }}
- <p>
- {{ $p.T `
- Coin rolls can be obtained from Andbank, Crèdit Andorrà, and
- MoraBanc. All three of these banks require that you are a
- customer to get rolls. There have however been reports of
- individuals managing to get rolls without any fees and without
- being a customer by simply asking kindly at the bank.
- ` }}
- </p>
- {{ else if eq .Code "at" }}
- <p>
- {{ $p.T `
- The Austrian National Bank does not distribute circulated rolls
- but sells rolls of commemorative coins at face value on release
- as well as uncirculated rolls for all denominations.
- ` }}
- </p>
-
- <h3>Bank Austria</h3>
- <p>
- {{ $p.T `
- There is a fee of %s per roll. Rolls can be purchased with
- cash at machines. These machines are available to everyone,
- but not in all branches. Look for the ‘Münzrollengeber’ filter
- option %shere%s.`
- ($p.M 0.20)
- `<a
- href="https://filialen.bankaustria.at/de/"
- target="_blank"
- >`
- `</a>` | safe
- }}
- </p>
-
- <h3>Erste Bank</h3>
- <p>
- {{ $p.T `
- There is a fee of %s per roll. You must be a customer to use
- machines to get rolls. Rolls have no fees when purchased at
- counters, but counters redirect you to machines if they work;
- counters accept cash. You must present an Erste Bank card to
- buy rolls from machines, but you can pay with cash.`
- ($p.M 0.10)
- }}
- </p>
-
- <p>
- {{ $p.T `
- Depositing coins is free for up to %s a day, at which point you
- pay 1%% for any additional deposited coins. You must also be a
- customer. Depositing coins is free for all Erste Bank
- customers at Dornbirner Sparkasse with no limit.`
- ($p.M 100)
- }}
- </p>
-
- <h3>Raiffeisenbank</h3>
- <p>
- {{ $p.T `
- There is a fee of %s per roll if you aren’t a customer, and %s
- otherwise. Coin deposits are free if you’re a customer.`
- ($p.M 1.00) ($p.M 0.30)
- }}
- </p>
-
- <h3>Volksbank</h3>
- <p>
- {{ $p.T `
- Reportedly fee-less with no need of being a customer, but this
- is unconfirmed.
- ` }}
- </p>
- {{ else if eq .Code "be" }}
- <h3>Argenta</h3>
- <p>
- {{ $p.T "There is a %s fee with no limit on the number of rolls."
- ($p.M 1.50)
- }}
- </p>
-
- <h3>{{ $p.T "Belgian Central Bank" }}</h3>
- <p>
- {{ $p.T `
- You can visit the Belgian Central Bank in Brussels as an EU
- citizen. You can order coin rolls for no fee up to %s in
- value. They seem to distribute uncirculated coins (no
- commemoratives).`
- ($p.M 2000)
- }}
- </p>
-
- <h3>KBC</h3>
- <p>
- {{ $p.T `
- Free for customers but getting coin rolls is still difficult
- sometimes. Non-customers cannot get rolls.
- ` }}
- </p>
-
- <h3>Belfius</h3>
- <p>
- {{ $p.T `
- Free for customers when you order through their online
- platform.
- ` }}
- </p>
- {{ else if eq .Code "cy" }}
- <h3>{{ $p.T "Bank of Cyprus" }}</h3>
- <p>
- {{ $p.T `
- At the Bank of Cyprus it is possible to buy bags of coins
- without being a customer, and without paying any additional
- fees. Depending on the branch you visit you may have coin roll
- machine available. Do note that the bags provided by the Bank
- of Cyprus are around twice as large as usual with %s bags
- containing 50 coins and the other denomination bags containing
- 100 coins.`
- ($p.M 2.00)
- }}
- </p>
- {{ else if eq .Code "de" }}
- <p>
- {{ $p.T `
- Coin roll availability may vary across banks and branches, as
- well as the price. You must be a customer to purchase coin
- rolls unless specified otherwise.
- ` }}
- </p>
-
- <h3>{{ $p.T "German Federal Bank (Deutsche Bundesbank)" }}</h3>
- <p>
- {{ $p.T `
- You can obtain regular- and commemorative coins for face value
- including 5-, 10-, and 20 euro coins. You do not need to be a
- customer although depending on your branch you may need to make
- an appointment. The purchase of coins can only be done with
- cash.
- ` }}
- </p>
-
- <h3>Deutsche Post</h3>
- <p>
- {{ $p.T `
- Hand-rolled coin rolls can be obtained with no additional fees.
- ` }}
- </p>
-
- <h3>Sparkasse</h3>
- <p>
- {{ $p.T `
- Coin rolls can be obtained for a fee of %s–%s per roll. The
- amount varies per branch.`
- ($p.M 0.50) ($p.M 1.50)
- }}
- </p>
-
- <h3>Volksbank</h3>
- <p>
- {{ $p.T `
- Coin rolls can be obtained for a fee of %s per roll.`
- ($p.M 0.25)
- }}
- </p>
- {{ else if eq .Code "ee" }}
- <p>
- {{ $p.T `
- Obtaining coin rolls in Estonia is typically quite difficult,
- and often expensive. You also often need to make an
- appointment in advance.
- ` }}
- </p>
-
- <h3>{{ $p.T "Central Bank of Estonia Museum" }}</h3>
- <p>
- {{ $p.T `
- You can purchase commemorative coins (even those released years
- ago) at face value. It is also an interesting museum to visit
- in general.
- ` }}
- </p>
- {{ else if eq .Code "es" }}
- <h3>Banco Santander</h3>
- <p>{{ $p.T "Coin rolls are free but you must be a customer." }}</p>
-
- <h3>{{ $p.T "Bank of Spain" }}</h3>
- <p>
- {{ $p.T `
- You can purchase individual coins and commemorative coin rolls
- (even those of other countries). You can watch %shere%s to see
- how to do it.`
- `<a
- href="https://youtu.be/QRFuD6olH80?t=135"
- target="_blank"
- >`
- `</a>` | safe
- }}
- </p>
-
- <h3>BBVA</h3>
- <dl>
- <dt>Alicante</dt>
- <dd>
- {{ $p.T `
- Coin rolls have a fee of %s for 5 rolls. This seems to
- vary by region.`
- ($p.M 2.00)
- }}
- </dd>
- <dt>Madrid</dt>
- <dd>{{ $p.T "Coin rolls have no fees." }}</dd>
- </dl>
-
- <h3>{{ $p.T "La Caixa" }}</h3>
- <p>
- {{ $p.T `
- Coin rolls have no fees and can be purchased with cash. You do
- not need to be a customer, although this needs to be
- re-verified.
- ` }}
- </p>
- {{ else if eq .Code "fi" }}
- <p>
- {{ $p.T `
- Finland has no coin roll machines, but you can find vending
- machines or coin exchange machines (albeit they are rare).
- ` }}
- </p>
-
- <h3>Aktia</h3>
- <p>{{ $p.T "Coin rolls can be obtained with no fees." }}</p>
-
- <h3>{{ $p.T "Bank of Finland" }}</h3>
- <p>
- {{ $p.T `
- It is probably not possible to obtain coin rolls, but this is
- not confirmed.
- ` }}
- </p>
- {{ else if eq .Code "fr" }}
- <p>
- {{ $p.T `
- Coin roll machines are uncommon, only some banks have them and
- you need to be a customer. You may also need to order them in
- advance.
- ` }}
- </p>
-
- <h3>Caisse d’Épargne</h3>
- <p>
- {{ $p.T `
- Coin rolls can be obtained with no fee. You must be a
- customer.
- ` }}
- </p>
-
- <h3>CIC {{ $p.T "and" }} Crédit Mutuel</h3>
- <p>
- {{ $p.T `
- Free coin rolls if you are a customer or %s per roll if you are
- not a customer. There are coin roll machines.`
- ($p.M 1.00)
- }}
- </p>
-
- <h3>Crédit Agricole</h3>
- <p>
- {{ $p.T `
- Coin rolls can be obtained with no fee. You must be a
- customer.
- ` }}
- </p>
-
- <h3>Le Crédit Lyonnais (LCL)</h3>
- <p>
- {{ $p.T `
- There are coin roll machines but it is not yet known if you
- need to be a customer or if there are fees.
- ` }}
- </p>
- {{ else if eq .Code "gr" }}
- <h3>{{ $p.T "Bank of Greece (Τράπεζα της Ελλάδος)" }}</h3>
- <p>
- {{ $p.T `
- Fee-less coin rolls for everyone (you will need to show ID).
- The latest commemorative coins are also sold for face value.
- ` }}
- </p>
-
- <h3>Piraeus Bank</h3>
- <p>
- {{ $p.T `
- Fee-less coin bags for everyone (no ID necessary). Smaller
- denominations are often not given out, and the coin bags you
- recieve are very large (there are reports of %s bags containing
- 250 coins).`
- ($p.M 1.00)
- }}
- </p>
- {{ else if eq .Code "ie" }}
- <p>
- {{ $p.T `
- In general, coin rolls are available at banks with a fee of %s
- per roll; rolls could potentially have no fee if you only need
- a few.`
- ($p.M 1.00)
- }}
- </p>
- {{ else if eq .Code "it" }}
- <h3>Banca Cambiano</h3>
- <p>
- {{ $p.T `
- There are coin roll machines but it is unknown if you need to
- be a customer or if there are additional fees.
- ` }}
- </p>
-
- <h3>{{ $p.T "Bank of Italy" }}</h3>
- <p>
- {{ $p.T "Coin rolls are available to everyone." }}
- </p>
- {{ else if eq .Code "lt" }}
- <h3>ExchangeLT</h3>
- <p>{{ $p.T "Works, but with very high fees (5%% of cost)." }}</p>
-
- <h3>Top Exchange</h3>
- <p>
- {{ $p.T "Fee of %s per roll of 2 euro coins." ($p.M 2.00) }}
- </p>
-
- <h3>Lietuvos Bankas</h3>
- <p>
- {{ $p.T `
- As far as we are aware, Lietuvos Bankas only distributes coin
- rolls to businesses.
- ` }}
- </p>
-
- <p>
- {{ $p.T `
- It may be worth checking out payout machines to exchange
- banknotes into coins.
- ` }}
- </p>
- {{ else if eq .Code "lu" }}
- <h3>
- {{ $p.T "Luxembourgish Central Bank (Banque Centrale du Luxembourg)" }}
- </h3>
- <p>
- {{ $p.T `
- We currently have no information regarding regular coins,
- however their webshop sells commemorative coins (for a high
- premium, but better than most resellers). Commemorative coins
- are also available for purchase in-person.
- ` }}
- </p>
-
- <h3>Dexia-Bank</h3>
- <p>
- {{ $p.T `
- You should be able to get coin rolls with no additional fees.
- ` }}
- </p>
- {{ else if eq .Code "lv" }}
- <p>
- {{ $p.T `
- In general coin rolls are sold with a fee of %s per roll, but
- we’re lacking a lot of information.`
- ($p.M 0.60)
- }}
- </p>
- {{ else if eq .Code "mt" }}
- <h3>{{ $p.T "Bank of Valletta and HSBC Bank Malta" }}</h3>
- <p>
- {{ $p.T `
- You can get rolls for a fee of %s per roll. You must order
- coin rolls through their online platform, and you must be a
- customer.`
- ($p.M 0.30)
- }}
- </p>
- {{ else if eq .Code "nl" }}
- <p>
- {{ $p.T `
- Banks in the Netherlands do not carry cash, and as such it’s
- not possible to obtain rolls from bank tellers. Obtaining
- coins from the Dutch Central Bank (De Nederlandsche Bank) is
- also not possible. If you want to obtain coin rolls you need
- to use a Geldmaat coin roll machine which can be found in
- specific branches of GAMMA and Karwei. Geldmaat offers a map
- on their website where you can search for branches with these
- machines; you can find that map %shere%s.`
- `<a
- href="https://www.locatiewijzer.geldmaat.nl/nl/"
- target="_blank"
- >`
- `</a>` | safe
- }}
- </p>
-
- <p>
- {{ $p.T `
- In order to be able to use a Geldmaat coin machine, you must be
- a customer of either ABN AMRO, ING, or Rabobank. You also
- cannot pay by cash, only card payments are allowed. All three
- banks charge a withdrawal fee for getting coin rolls, which are
- detailed in the list below.
- ` }}
- </p>
-
- <dl>
- <dt>ABN AMRO</dt>
- <dd>{{ $p.T "%s per roll." ($p.M 0.30) }}</dd>
-
- <dt>ING</dt>
- <dd>
- {{ $p.T "Base fee of %s + %s per roll."
- ($p.M 7.00) ($p.M 0.35)
- }}
- </dd>
-
- <dt>Rabobank</dt>
- <dd>
- {{ $p.T "Base fee of %s + %s per roll."
- ($p.M 7.00) ($p.M 0.50)
- }}
- </dd>
- </dl>
-
- <p>
- {{ $p.T `
- One- and two-cent coins have been removed from circulation and
- cannot be obtained.
- ` }}
- </p>
- {{ else if eq .Code "pt" }}
- <h3>Banco Comercial Português</h3>
- <p>
- {{ $p.T `
- Coin bags are sold with no additional fees to bank customers.
- ` }}
- </p>
-
- <h3>{{ $p.T "Bank of Portugal (Banco de Portugal)" }}</h3>
- <p>
- {{ $p.T `
- Coin bags are sold with no additional fees to everyone.
- ` }}
- </p>
- {{ else if eq .Code "si" }}
- <p>
- {{ $p.T "In general there is a %s fee for coin rolls." ($p.M 1.20) }}
- </p>
-
- <h3>{{ $p.T "Bank of Slovenia (Banka Slovenije)" }}</h3>
- <p>
- {{ $p.T `
- You can purchase commemorative coins for face value, and coin
- rolls are sold with no fees to everyone.
- ` }}
- </p>
- {{ else if eq .Code "sk" }}
- <h3>{{ $p.T "National Bank of Slovakia (Národná banka Slovenska)" }}</h3>
- <p>
- {{ $p.T `
- You may be able to get uncirculated rolls, but this is not yet
- confirmed.
- ` }}
- </p>
-
- <h3>Tatra Banka</h3>
- <p>
- {{ $p.T `
- You can get an unlimited number of rolls for a %s fee. You
- must be a customer of the bank.`
- ($p.M 5.00)
- }}
- </p>
- {{ else if eq .Code "va" }}
- <p>
- {{ $p.T `
- Ask the Pope nicely and he’ll probably give you some Vatican
- coins for free.
- ` }}
- </p>
- {{ else }}
- <p>
- {{ $p.T `
- We currently have no information regarding coin roll hunting in
- %s.`
- ($p.T .Name)
- }}
- </p>
+ <article>
+ {{ $p := .Printer }}
+ {{ $countries := .Countries }}
+ {{ range $i, $c := $countries }}
+ <details id="{{ $c.Code }}" name="country">
+ <summary>{{ $c.Name }}</summary>
+ {{ if eq $c.Code "ad" }}
+ <p>
+ {{ $p.Get "Coin rolls can be obtained from Andbank, Creand and MoraBanc. All three of these banks require that you are a customer to get rolls, however there have been reports of individuals managing to get rolls without any fees and without being a customer by simply asking kindly at the bank." }}
+ </p>
+ {{ else if eq $c.Code "at" }}
+ {{/* TRANSLATORS: The OeNB prefers ‘Oe’ over ‘Ö’ */}}
+ {{ withTranslations "h3"
+ ($p.GetC "Austrian National Bank" "Company Name")
+ (tuple "de" "Oesterreichische Nationalbank") }}
+ <p>
+ {{ $p.Get "The Austrian National Bank does not distribute circulated rolls but sells rolls of commemorative coins at face value on release as well as uncirculated rolls for all denominations." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank Austria" "Company Name")
+ (tuple "de" "Bank Austria") }}
+ <p>
+ {{ $link := ifElse (eq $p.Language "de")
+ "https://filialen.bankaustria.at/de"
+ "https://filialen.bankaustria.at/en" }}
+ {{/* TRANSLATORS: On the German page the filter is called ‘Münzrollengeber’. For other languages we link to the English site, so mention the English filter name surrounded by ‘{EnglishStart:r}’ and ‘{EnglishEnd:E}’, and also translate it in parenthesis to your language. For example the Swedish page might say: ‘”{EnglishStart:r}coin roll dispenser{EnglishEnd:E}” (svenska: ”myntrullsautomat”)’ */}}
+ {{ $p.Get "There is a fee of €0.20 per roll which can be purchased with cash at machines. These machines are available to everyone but not in all branches. Look for the ‘coin roll dispenser’ filter option {Link:L}here{-:E}."
+ (map "Link" $link "EnglishStart"
+ `<span lang="en"><em>` "EnglishEnd" "em,span") | safe }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Erste Bank" "Company Name")
+ (tuple "de" "Erste Bank") }}
+ <p>
+ {{ $p.Get "There is a fee of €0.10 per roll. You must be a customer to use machines to get rolls. Rolls have no fees when purchased at counters, but you will probably be redirected to the machines if they work. You must present an Erste Bank card to buy rolls from machines, however payment in cash is still accepted." }}
+ </p>
+
+ <p>
+ {{ $p.Get "Depositing coins is free up to €100 a day, at which point you pay 1% for any additionally deposited coins. You must also be a customer. Depositing coins is free for all Erste Bank customers at Dornbirner Sparkasse with no limit." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Raiffeisen Bank" "Company Name")
+ (tuple "de" "Raiffeisen Bank") }}
+ <p>
+ {{ $p.Get "There is a fee of €1 per roll if you aren’t a customer and €0.30 otherwise. Coin deposits are free for customers." }}
+ </p>
+
+ {{ else if eq $c.Code "be" }}
+
+ {{ withTranslations "h3"
+ ($p.GetC "National Bank of Belgium" "Company Name")
+ (tuple "nl" "Nationale Bank van België")
+ (tuple "fr" "Banque nationale de Belgique")
+ (tuple "de" "Belgische Nationalbank") }}
+ <p>
+ {{ $p.Get "You can visit the National Bank of Belgium in Brussels as an EU citizen. You can order coin rolls for no fee up to €2000 in value. They seem to distribute only uncirculated coins and no commemoratives." }}
+ </p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "Argenta" "Company Name")
+ (tuple "" "Argenta") }}
+ <p>
+ {{ $p.Get "There is a €1.50 fee per transaction with no limit on the number of rolls you may take." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "KBC Bank" "Company Name")
+ (tuple "" "KBC Bank") }}
+ <p>
+ {{ $p.Get "Rolls can be obtained with no fee by customers only" }}
+ </p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "Belfius" "Company Name")
+ (tuple "" "Belfius") }}
+ <p>
+ {{ $p.Get "Rolls can be obtained with no fee when you order through their online platform." }}
+ </p>
+
+ {{ else if eq $c.Code "cy" }}
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of Cyprus" "Company Name")
+ (tuple "el" "Τράπεζα Κύπρου")
+ (tuple "tr" "Kıbrıs Bankası") }}
+ <p>
+ {{ $p.Get "At the Bank of Cyprus it is possible to buy bags of coins without being a customer, and without paying any additional fees. Depending on the branch you visit there may be a coin roll machine available. Do note that the bags provided by the Bank of Cyprus are much larger than what is typically found elsewhere in the Eurozone with €2.00 bags containing 50 coins and the other denomination bags containing 100 coins." }}
+ </p>
+
+ {{ else if eq $c.Code "de" }}
+
+ <p>
+ {{ $p.Get "Coin roll availability and their related fees may vary across banks and branches. Unless specified otherwise, you must be a customer to purchase coin rolls." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "German Federal Bank" "Company Name")
+ (tuple "de" "Deutsche Bundesbank") }}
+ <p>
+ {{ $p.Get "You can obtain regular and commemorative coins for face value including 5-, 10- and 20 euro coins. You do not need to be a customer although depending on your branch you may need to make an appointment. The purchase of coins can only be done with cash." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "German Post" "Company Name")
+ (tuple "de" "Deutsche Post") }}
+ <p>
+ {{ $p.Get "Hand-rolled coin rolls can be obtained with no additional fees." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Sparkasse" "Company Name")
+ (tuple "de" "Sparkasse") }}
+ <p>
+ {{ $p.Get "Coin rolls can be obtained for a fee of €0.50–€1.50 per roll. The amount varies per branch." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Volksbank" "Company Name")
+ (tuple "de" "Volksbank") }}
+ <p>
+ {{ $p.Get "Coin rolls can be obtained for a fee of €0.25 per roll." }}
+ </p>
+
+ {{ else if eq $c.Code "ee" }}
+
+ <p>
+ {{ $p.Get "Obtaining coin rolls in Estonia is typically quite difficult and often expensive. You also generally need to make an appointment in advance." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of Estonia Museum" "Company Name")
+ (tuple "et" "Eesti Panga muuseum") }}
+ <p>
+ {{ $p.Get "You can purchase commemorative coins — including those released years ago — for face value." }}
+ </p>
+
+ {{ else if eq $c.Code "es" }}
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of Spain" "Company Name")
+ (tuple "es" "Banco de España") }}
+ <p>
+ {{ $p.Get "You can purchase individual coins and commemorative coin rolls (even those of other countries). You can watch a video {Link:L}here{-:E} to see how to do it."
+ (map "Link" "https://youtu.be/QRFuD6olH80?t=135") | safe }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Royal Mint of Spain" "Company Name")
+ (tuple "es" "Fábrica Nacional de Moneda y Timbre") }}
+ <p>TODO</p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Santander Bank" "Company Name")
+ (tuple "es" "Banco Santander") }}
+ <p>{{ $p.Get "Coin rolls are free but you must be a customer." }}</p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "BBVA" "Company Name")
+ (tuple "es" "BBVA") }}
+ <dl>
+ {{/* TRANSLATORS: City in Spain */}}
+ <dt>{{ $p.Get "Alicante" }}</dt>
+ <dd>
+ {{ $p.Get "Coin rolls have a fee of €2 for 5 rolls. This seems to vary by location." }}
+ </dd>
+ <dt>{{ $p.Get "Madrid" }}</dt>
+ <dd>{{ $p.Get "Coin rolls have no fees." }}</dd>
+ </dl>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "La Caixa" "Company Name")
+ (tuple "es" "La Caixa") }}
+ <p>
+ {{ $p.Get "Coin rolls have no fees and can be purchased with cash. You allegedly do not need to be a customer, but this needs to be verified." }}
+ </p>
+
+ {{ else if eq $c.Code "fi" }}
+
+ <p>
+ {{ $p.Get "Finland has no coin roll machines, but you can find vending machines or coin exchange machines that accept cash (although they can be rather rare)." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of Finland" "Company Name")
+ (tuple "fi" "Suomen Pankki")
+ (tuple "sv" "Finlands Bank") }}
+ <p>
+ {{ $p.Get "It is probably not possible to obtain coin rolls, but this is not confirmed." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Mint of Finland" "Company Name")
+ (tuple "fi" "Suomen Rahapaja")
+ (tuple "sv" "Myntverket i Finland") }}
+ <p>{{ $p.Get "The Mint of Finland ceased all operations in late 2024 but still sells coins on their website." }}</p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "Aktia Bank" "Company Name")
+ (tuple "fi" "Aktia Pankki")
+ (tuple "sv" "Aktia Bank") }}
+ <p>{{ $p.Get "Coin rolls used to be obtainable without fees, however you can no longer obtain rolls." }}</p>
+
+ {{ else if eq $c.Code "fr" }}
+
+ <p>
+ {{ $p.Get "Coin roll machines are uncommon, only some banks have them and you typically need to be a customer. You may also need to order coin rolls in advance." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of France" "Company Name")
+ (tuple "fr" "Banque du France") }}
+ <p>TODO</p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "Caisse d’Épargne" "Company Name")
+ (tuple "fr" "Caisse d’Épargne") }}
+ <p>{{ $p.Get "Coin rolls can be obtained with no fee. You must be a customer." }}</p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "CIC" "Company Name")
+ (tuple "fr" "CIC") }}
+ <p>
+ {{ $p.Get "Free coin rolls if you are a customer or €1 per roll if you are not a customer. There are coin roll machines." }}
+ </p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "Crédit Mutuel" "Company Name")
+ (tuple "fr" "Crédit Mutuel") }}
+ <p>
+ {{ $p.Get "Free coin rolls if you are a customer or €1 per roll if you are not a customer. There are coin roll machines." }}
+ </p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "Crédit Agricole" "Company Name")
+ (tuple "fr" "Crédit Agricole") }}
+ <p>{{ $p.Get "Coin rolls can be obtained with no fee. You must be a customer." }}</p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "LCL" "Company Name")
+ (tuple "fr" "LCL") }}
+ <p>
+ {{ $p.Get "There are coin roll machines but it is not yet known if you need to be a customer or if there are fees." }}
+ </p>
+
+ {{ else if eq $c.Code "gr" }}
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of Greece" "Company Name")
+ (tuple "gr" "Τράπεζα της Ελλάδος") }}
+ <p>
+ {{ $p.Get "{EmphStart:r}NOTE{EmphEnd:E}: The Bank of Greece (Greece’s central bank) is NOT the same as the National Bank of Greece (a commercial bank)."
+ (map "EmphStart" `<strong>` "EmphEnd" "strong") | safe }}
+ </p>
+ <p>
+ {{ $p.Get "Coin rolls can be obtained with no fee, but you may need to present your ID. The latest commemorative coins are also sold for face value." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Piraeus Bank" "Company Name")
+ (tuple "gr" "Τράπεζα Πειραιώς") }}
+ <p>
+ {{ $p.Get "Coin bags are available without fees for everyone. Smaller denominations are often not given out, and the coin bags you recieve are very large (there are reports of €1 bags containing 250 coins)." }}
+ </p>
+
+ {{ else if eq $c.Code "hr" }}
+
+ <p>
+ {{ $p.Get "We currently have no information regarding coin roll hunting in Croatia." }}
+ </p>
+
+ {{ else if eq $c.Code "ie" }}
+
+ <p>
+ {{ $p.Get "In general, coin rolls are available at banks with a fee of €1 per roll; rolls could potentially have no fee if you only need a few." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Central Bank of Ireland" "Company Name")
+ (tuple "ga" "Banc Ceannais na hÉireann")
+ (tuple "en" "Central Bank of Ireland") }}
+ <p>TODO</p>
+
+ {{ else if eq $c.Code "it" }}
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of Italy" "Company Name")
+ (tuple "it" "Banca d’Italia") }}
+ <p>
+ {{ $p.Get "Coin rolls are available to everyone." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Banca di Cambiano" "Company Name")
+ (tuple "it" "Banca di Cambiano") }}
+ <p>
+ {{ $p.Get "There are coin roll machines but it is unknown if you need to be a customer or if there are additional fees." }}
+ </p>
+
+ {{ else if eq $c.Code "lt" }}
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of Lithuania" "Company Name")
+ (tuple "en" "Lietuvos bankas") }}
+ <p>
+ {{ $p.Get "Allegedly, coin rolls are only available for businesses, but this needs additional confirmation." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "ExchangeLT" "Company Name")
+ (tuple "en" "ExchangeLT") }}
+ <p>
+ {{ $p.Get "Coin rolls are available with a fee of 5%." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Top Exchange" "Company Name")
+ (tuple "en" "Top Exchange") }}
+ <p>
+ {{ $p.Get "Fee of €2 per roll of 2 euro coins." }}
+ </p>
+
+ {{ else if eq $c.Code "lu" }}
+
+ {{ withTranslations "h3"
+ ($p.GetC "Central Bank of Luxembourg" "Company Name")
+ (tuple "lb" "Zentralbank vu Lëtzebuerg")
+ (tuple "fr" "Banque centrale du Luxembourg")
+ (tuple "de" "Luxemburger Zentralbank") }}
+ <p>
+ {{ $p.Get "We currently have no information regarding regular coins, however their webshop sells commemorative coins. Commemorative coins are also available for purchase in-person." }}
+ </p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "Dexia" "Company Name")
+ (tuple "fr" "Dexia") }}
+ <p>
+ {{ $p.Get "You should be able to get coin rolls with no additional fees." }}
+ </p>
+
+ {{ else if eq $c.Code "lv" }}
+
+ <p>
+ {{ $p.Get "In general coin rolls are sold with for fee of €0.60 per roll, but we’re lacking a lot of information." }}
+ </p>
+
+ {{ else if eq $c.Code "mc" }}
+
+ <p>
+ {{ $p.Get "We currently have no information regarding coin roll hunting in Monaco." }}
+ </p>
+
+ {{ else if eq $c.Code "mt" }}
+
+ {{ withTranslations "h3"
+ ($p.GetC "Central Bank of Malta" "Company Name")
+ (tuple "mt" "Bank Ċentrali ta’ Malta") }}
+ <p>TODO</p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of Valletta" "Company Name")
+ (tuple "en" "Bank of Valletta") }}
+ <p>
+ {{ $p.Get "You can get rolls for a fee of €0.30 per roll. You must order coin rolls through their online platform, and you must be a customer." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "HSBC Bank Malta" "Company Name")
+ (tuple "en" "HSBC Bank Malta") }}
+ <p>
+ {{ $p.Get "You can get rolls for a fee of €0.30 per roll. You must order coin rolls through their online platform, and you must be a customer." }}
+ </p>
+
+ {{ else if eq $c.Code "nl" }}
+
+
+ <p>
+ {{ $link := ifElse (eq $p.Language "nl")
+ "https://www.locatiewijzer.geldmaat.nl/nl"
+ "https://www.locatiewijzer.geldmaat.nl/en" }}
+ {{ $p.Get "Banks in the Netherlands do not carry cash, and as such it’s not possible to obtain rolls from bank tellers. If you want to obtain coin rolls you need to use a Geldmaat coin roll machine which can be found in specific branches of GAMMA and Karwei. Geldmaat offers a map on their website where you can search for branches with these machines; you can find that map {Link:L}here{-:E}. Coin rolls are only available to customers of the banks listed below."
+ (map "Link" $link) | safe }}
+ </p>
+
+ <p>
+ {{ $p.Get "1- and 2 cent coins have been removed from circulation and cannot be obtained." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "The Dutch Central Bank" "Company Name")
+ (tuple "nl" "De Nederlandsche Bank") }}
+ <p>
+ {{ $p.Get "Obtaining coins from the Dutch Central Bank is not possible." }}
+ </p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "ABN AMRO" "Company Name")
+ (tuple "nl" "ABN AMRO") }}
+ <p>
+ {{ $p.Get "Coin rolls are available for a fee of €0.30 per roll. You must withdraw between 10–20 rolls." }}
+ </p>
+
+ {{/* TRANSLATORS: Name of a bank */}}
+ {{ withTranslations "h3"
+ ($p.GetC "ING" "Company Name")
+ (tuple "nl" "ING") }}
+ <p>
+ {{ $p.Get "Coin rolls are available for a fee of €7 + €0.35 per roll." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Rabobank" "Company Name")
+ (tuple "nl" "Rabobank") }}
+ <p>
+ {{ $p.Get "Coin rolls are available for a fee of €7 + €0.50 per roll." }}
+ </p>
+
+ {{ else if eq $c.Code "pt" }}
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of Portugal" "Company Name")
+ (tuple "pt" "Banco de Portugal") }}
+ <p>
+ {{ $p.Get "Coin bags are sold with no additional fees to everyone." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Banco Comercial Português" "Company Name")
+ (tuple "pt" "Banco Comercial Português") }}
+ <p>
+ {{ $p.Get "Coin bags are sold with no additional fees to bank customers." }}
+ </p>
+
+ {{ else if eq $c.Code "si" }}
+
+ <p>
+ {{ $p.Get "In general there is a €1.20 fee for coin rolls." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Bank of Slovenia" "Company Name")
+ (tuple "sl" "Banka Slovenije") }}
+ <p>
+ {{ $p.Get "You can purchase commemorative coins for face value, and coin rolls are sold with no fees to everyone." }}
+ </p>
+
+ {{ else if eq $c.Code "sk" }}
+
+ {{ withTranslations "h3"
+ ($p.GetC "National Bank of Slovakia" "Company Name")
+ (tuple "sk" "Národná banka Slovenska") }}
+ <p>
+ {{ $p.Get "You may be able to get uncirculated rolls, but this is not yet confirmed." }}
+ </p>
+
+ {{ withTranslations "h3"
+ ($p.GetC "Tatra banka" "Company Name")
+ (tuple "sk" "Tatra banka") }}
+ <p>
+ {{ $p.Get "You can get an unlimited number of rolls for a €5 fee. You must be a customer of the bank." }}
+ </p>
+
+ {{ else if eq $c.Code "sm" }}
+
+ <p>
+ {{ $p.Get "We currently have no information regarding coin roll hunting in San Marino." }}
+ </p>
+
+ {{ else if eq $c.Code "va" }}
+
+ <p>
+ {{ $p.Get "Ask the Pope nicely and he’ll probably give you some Vatican coins for free." }}
+ </p>
+
+ {{ end }}
+ </details>
+ {{ if ne (plus1 $i) (len $countries) }}
+ <hr>
+ {{ end }}
{{ end }}
- </details>
- {{ end }}
+ </article>
</main>
{{ end }} \ No newline at end of file
diff --git a/src/templates/collecting-storage.html.tmpl b/src/templates/collecting-storage.html.tmpl
index 8d29667..25150d4 100644
--- a/src/templates/collecting-storage.html.tmpl
+++ b/src/templates/collecting-storage.html.tmpl
@@ -1,3 +1,7 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
@@ -60,7 +64,7 @@
Coin capsules are plastic capsules you can put your coin in.
They offer good protection to your coins, while still
allowing you to view all parts of your coin easily, including
- the edge engravings and -inscriptions. Capsules are also far
+ the edge engravings and inscriptions. Capsules are also far
more durable than flips, and can be opened and closed
repeatedly allowing for them to be reused. This isn’t really
possible with flips.
diff --git a/src/templates/collecting-vending.html.tmpl b/src/templates/collecting-vending.html.tmpl
index 2bfea22..fa5a72c 100644
--- a/src/templates/collecting-vending.html.tmpl
+++ b/src/templates/collecting-vending.html.tmpl
@@ -1,3 +1,7 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
<header>
{{ template "navbar" . }}
diff --git a/src/templates/collecting.html.tmpl b/src/templates/collecting.html.tmpl
index aacb442..d8ecf18 100644
--- a/src/templates/collecting.html.tmpl
+++ b/src/templates/collecting.html.tmpl
@@ -1,76 +1,61 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+
+<style>
+ #sections {
+ --button-min-width: 40ch;
+
+ article {
+ min-height: 100%;
+ }
+ }
+</style>
+{{ end }}
+
{{ define "content" }}
-<header>
+<header class="container">
{{ template "navbar" . }}
- <h1>{{ .T "Euro Coin Collecting" }}</h1>
+ <h1>{{ .Get "Euro Coin Collecting" }}</h1>
</header>
-<main>
+<main class="container">
<p>
- {{ .T `
- On this section of the site you can find everything there is
- to know about collecting Euro coins. If this is a hobby that
- interests you, join the Discord server linked at the top of
- the page!
- ` }}
+ {{ .Get "On this section of the site you can find everything there is to know about collecting Euro coins. If this is a hobby that interests you, join the Discord server linked at the top of the page!" }}
</p>
<hr>
- <section>
- <div class="grid">
- <a class="no-deco" href="/collecting/crh">
- <article>
- <header>
- <h3>{{ .T "Coin Roll Hunting" }}</h3>
- </header>
- <main>
- {{ .T `
- Learn about collecting coins from coin rolls!
- ` }}
- </main>
- </article>
- </a>
- <a class="no-deco" href="/collecting/storage">
- <article>
- <header>
- <h3>{{ .T "Coin Storage" }}</h3>
- </header>
- <main>
- {{ .T `
- Learn about the different methods to storing
- your collection!
- `}}
- </main>
- </article>
- </a>
- <!-- TODO: Implement the shop hunting page -->
- <a class="no-deco" href="#">
- <article>
- <header>
- <h3>{{ .T "Shop Hunting" }}</h3>
- </header>
- <main>
- {{ .T `
- Learn about how to collect coins from
- shop-keepers and other people who deal in
- cash!
- ` }}
- </main>
- </article>
- </a>
- </div>
- <div class="grid">
- <a class="no-deco" href="/collecting/vending">
- <article>
- <header>
- <h3>{{ .T "Vending Machine Hunting" }}</h3>
- </header>
- <main>
- {{ .T `
- Learn about collecting coins from vending
- machines!
- ` }}
- </main>
- </article>
- </a>
- </div>
- </section>
+ <div id="sections" class="button-grid">
+ <a class="no-deco" href="/collecting/crh">
+ <article>
+ <header>
+ <h3>{{ .Get "Coin Roll Hunting" }}</h3>
+ </header>
+ {{ .Get "Learn about collecting coins from coin rolls" }}
+ </article>
+ </a>
+ <a class="no-deco" href="/collecting/storage">
+ <article>
+ <header>
+ <h3>{{ .Get "Coin Storage" }}</h3>
+ </header>
+ {{ .Get "Learn about the different methods to storing your collection" }}
+ </article>
+ </a>
+ <!-- TODO: Implement the shop hunting page -->
+ <a class="no-deco" href="#">
+ <article>
+ <header>
+ <h3>{{ .Get "Shop Hunting" }}</h3>
+ </header>
+ {{ .Get "Learn about how to collect coins from shops" }}
+ </article>
+ </a>
+ <a class="no-deco" href="/collecting/vending">
+ <article>
+ <header>
+ <h3>{{ .Get "Vending Machine Hunting" }}</h3>
+ </header>
+ {{ .Get "Learn about collecting coins from vending machines" }}
+ </article>
+ </a>
+ </div>
</main>
{{ end }} \ No newline at end of file
diff --git a/src/templates/index.html.tmpl b/src/templates/index.html.tmpl
index da35043..d560c64 100644
--- a/src/templates/index.html.tmpl
+++ b/src/templates/index.html.tmpl
@@ -1,9 +1,14 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+{{ end }}
+
{{ define "content" }}
-<header>
+<header class="container">
{{ template "navbar" . }}
<hgroup>
<h1>{{ .Get "The Euro Cash Wiki" }}</h1>
<p>
+ <!-- TODO: Just make this one translation -->
{{/* TRANSLATORS: Beginning of sentence, as in ‘United in …’ */}}
{{ .Get "United in" }}
<del>{{ .Get "diversity" }}</del>
@@ -11,7 +16,7 @@
</p>
</hgroup>
</header>
-<main>
+<main class="container">
<!-- TODO(2026): s/26/27/; Welcome Bulgaria! -->
<p>
{{ .Get "Welcome to the Euro Cash Wiki! This sites aims to be a resource for you to discover everything there is to know about the coins and banknotes of the Euro, a currency that spans 26 countries and 350 million people. We also have dedicated sections of the site for collectors." }}
diff --git a/src/templates/jargon.html.tmpl b/src/templates/jargon.html.tmpl
index 0dd1947..593a169 100644
--- a/src/templates/jargon.html.tmpl
+++ b/src/templates/jargon.html.tmpl
@@ -1,114 +1,72 @@
+{{ define "header" }}
+{{ template "header-navbar" . }}
+
+<style>
+ dt > a:target {
+ background-color: var(--pico-mark-background-color);
+ }
+</style>
+{{ end }}
+
{{ define "content" }}
-<header>
+
+<header class="container">
{{ template "navbar" . }}
- <h1>{{ .T "Euro Cash Jargon" }}</h1>
+ <h1>{{ .Get "Euro Cash Jargon" }}</h1>
</header>
-<main>
+<main class="container">
<p>
- {{ .T `
- Both on this website and in other euro-cash-related forums there
- are many terms you will come across that you may not immediately
- understand. This page will hopefully get you up to speed with the
- most important and frequently-used terminology.
- ` }}
+ {{ .Get "Both on this website and in other related forums you will come across many terms that you may not be familiar with. This page will hopefully get you up to speed with the most important and frequently-used terminology." }}
</p>
<p>
- {{ .T `
- All terms defined below can be used as clickable links which
- highlight the selected term. It is recommended to use these links
- when sharing this page with others, so that the relevant terms are
- highlighted.
- ` }}
+ {{ .Get "All terms defined below can be used as clickable links which highlight the selected term. It is recommended to use these links when sharing this page with others, so that the relevant terms are highlighted." }}
</p>
<hr />
- <!-- TODO: Sort these jargon entries in alphabetical order according to
- the users locale -->
- <h2>{{ .T "General Terms" }}</h2>
+ <!-- TODO: Sort these jargon entries in alphabetical order according
+ to the users locale -->
+ <h2>{{ .Get "General Terms" }}</h2>
<dl>
- {{ template "jargon/dt" (tuple "au" (.T "AU — Almost Uncirculated")) }}
+ {{ template "jargon/dt" (tuple "au" (.Get "AU — Almost Uncirculated")) }}
<dd>
- {{ .T `
- AU coins are coins that are in extremely good condition as a
- result of limited use in circulation. Unlike the term ‘UNC’, this
- term is a description of the coins quality, not its usage. AU
- coins often appear to retain most of their original luster as
- well as possessing little-to-no scratches or other forms of
- post-mint damage (PMD).
- ` }}
+ {{ .Get "AU coins are coins that are in extremely good condition as a result of limited use in circulation. Unlike the term ‘UNC’, this term is a description of the coins quality, not its usage. AU coins often appear to retain most of their original luster as well as possessing little to no scratches or other forms of post-mint damage (PMD)." }}
</dd>
- {{ template "jargon/dt" (tuple "bu" (.T "BU — Brilliantly Uncirculated")) }}
+
+ {{ template "jargon/dt" (tuple "bu" (.Get "BU — Brilliantly Uncirculated")) }}
<dd>
- {{ .T `
- BU is a general term to refer to coins from coincards and
- -sets. These are different from UNC coins in that they are
- typically handled with more care during the minting process and
- are struck with higher-quality dies than the coins minted for
- coin rolls resulting in a higher-quality end product. You may
- also see these coins referred to by the French term ‘fleur de
- coin’.
- ` }}
+ {{ .Get "BU is a general term to refer to coins from coincards and sets. These are different from UNC coins in that they are typically handled with more care during the minting process and are struck with higher-quality dies than coins minted for general circulation, resulting in a higher-quality coin." }}
</dd>
- {{ template "jargon/dt" (tuple "nifc" (.T "NIFC — Not Intended For Circulation")) }}
+
+ {{ template "jargon/dt" (tuple "nifc" (.Get "NIFC — Not Intended For Circulation")) }}
<dd>
<p>
- {{ .T `
- NIFC coins are coins minted without the intention of being put
- into general circulation. These coins are typically minted with
- the purpose of being put into coincards or coin-sets to be sold
- to collectors. Occasionally they are also handed out to
- collectors for face value at banks.
- ` }}
+ {{ .Get "NIFC coins are coins minted without the intention of being put into general circulation. These coins are typically minted with the purpose of being put into coincards or sets to be sold to collectors. Occasionally they are also handed out to collectors for face value at banks." }}
</p>
<p>
- {{ .T `
- While uncommon, NIFC coins are occasionally found in
- circulation. This can happen for a variety of reasons such as
- someone depositing their coin collection (known as a
- ‘collection dump’), or a collector’s child spending their rare
- coins on an ice cream. Some coin mints have also been known to
- put NIFC coins that have gone unsold for multiple years into
- circulation.
- ` }}
+ {{ .Get "While uncommon, NIFC coins are occasionally found in circulation. This can happen for a variety of reasons such as someone depositing their coin collection (known as a ‘collection dump’) or a collector’s child spending their rare coins on an ice cream. Some coin mints have also been known to put NIFCs that have gone unsold for multiple years into circulation." }}
</p>
</dd>
- {{ template "jargon/dt" (tuple "pmd" (.T "PMD — Post-Mint Damage")) }}
+
+ {{ template "jargon/dt" (tuple "pmd" (.Get "PMD — Post-Mint Damage")) }}
<dd>
- {{ .T `
- Post-mint damage is any damage that a coin has sustained outside
- of the minting process, such as through being dropped on the
- ground, hit against a table, etc.
- ` }}
+ {{ .Get "Post-mint damage is any damage that a coin has sustained outside of the minting process, such as through being dropped on the ground, hit against a table, etc." }}
</dd>
- {{ template "jargon/dt" (tuple "relief" (.T "Relief")) }}
+
+ {{ template "jargon/dt" (tuple "relief" (.Get "Relief")) }}
<dd>
- {{ `
- Relief is a term that is used to describe how 3-dimensional a
- coin is. Coins with a higher relief have designs that make
- greater use of the 3rd dimension while coins with lower relief
- have designs that appear more flat.
- ` }}
+ {{ "Relief is a term that is used to describe how 3-dimensional a coin is. Coins with a higher relief have designs that make greater use of the 3rd dimension while coins with lower relief have designs that appear more flat." }}
</dd>
- {{ template "jargon/dt" (tuple "unc" (.T "UNC — Uncirculated")) }}
+
+ {{ template "jargon/dt" (tuple "unc" (.Get "UNC — Uncirculated")) }}
<dd>
- {{ .T `
- Uncirculated coins are coins that have never been used in a
- monetary exchange. The term ‘UNC’ is often mistakenly used to
- refer to coins in very good condition, but this is incorrect. A
- coin in poor condition that has never been circulated is still
- considered an ‘UNC’ coin.
- ` }}
+ {{ .Get "Uncirculated coins are coins that have never been used in a monetary exchange. The term ‘UNC’ is often mistakenly used to refer to coins in very good condition, but this is incorrect. A coin in poor condition that has never been circulated is still considered an ‘UNC’ coin." }}
</dd>
</dl>
- <h2>{{ .T "Collector-Specific Terms" }}</h2>
+
+ <h2>{{ .Get "Collector-Specific Terms" }}</h2>
<dl>
- {{ template "jargon/dt" (tuple "crh" (.T "CRH — Coin Roll Hunting")) }}
+ {{ template "jargon/dt" (tuple "crh" (.Get "CRH — Coin Roll Hunting")) }}
<dd>
- {{ .T `
- Coin roll hunting is a general term for the activity of searching
- through coin rolls and -bags to find coins for a collection. Coin
- rolls and bags are often obtained at banks or coin roll
- machines.
- ` }}
+ {{ .Get "Coin roll hunting is a general term for the activity of collecting coins by searching through coin rolls and bags. Coin rolls and bags are often obtained at banks or coin roll machines." }}
</dd>
</dl>
</main>
@@ -116,8 +74,8 @@
{{ define "jargon/dt" }}
<dt>
- <a id={{ index . 0 }} href=#{{ index . 0 }}>
+ <a id="{{ index . 0 }}" href="#{{ index . 0 }}">
{{ index . 1 }}
</a>
</dt>
-{{ end }}
+{{ end }} \ No newline at end of file
diff --git a/src/templates/language.html.tmpl b/src/templates/language.html.tmpl
index a79e30c..c3bfa94 100644
--- a/src/templates/language.html.tmpl
+++ b/src/templates/language.html.tmpl
@@ -1,22 +1,36 @@
{{ define "header" }}
-<style>
- *:has(> .lang-fade-in-out) {
- line-height: 1.1;
- }
+{{ template "header-navbar" . }}
+<style>
.lang-fade-in-out {
- opacity: 0.5;
transition: opacity 1s;
&.hide {
opacity: 0;
}
}
+
+ .lang-grid {
+ --button-min-width: 22ch;
+
+ button {
+ display: flex;
+ align-items: center;
+ padding-block: 1ch;
+ text-align: left;
+
+ > :first-child {
+ font-size: 2em;
+ font-weight: 600; /* Between normal and bold */
+ min-width: calc(var(--pico-form-element-spacing-horizontal) + 2ch);
+ }
+ }
+ }
</style>
<script>
(() => {
- let i = 0;
+ let i = -1;
let nodes;
const Δt = 5000; /* Total time a text is shown */
const Δf = 1000; /* Fade duration */
@@ -24,7 +38,7 @@
{{ $save := . }}
{{ $ps := .Printers }}
{{ range locales }}
- {{ if (and .Enabled (ne .Bcp $save.Printer.Bcp)) }}
+ {{ if (and .Enabledp (ne .Bcp $save.Printer.Bcp)) }}
[
"{{ .Bcp }}",
{{ $p := (index $ps .Bcp) }}
@@ -36,78 +50,71 @@
{{ end }}
];
- const updateTexts = () => {
- nodes.forEach((n, j) => {
- const [lang, ...strs] = texts[i];
- n.lang = lang;
- n.textContent = strs[j];
- n.classList.remove("hide");
- });
- };
-
const change = () => {
nodes.forEach(n => n.classList.add("hide"));
setTimeout(() => {
i = (i + 1) % texts.length;
- updateTexts();
+ nodes.forEach((n, j) => {
+ const [lang, ...strs] = texts[i];
+ n.lang = lang;
+ n.textContent = strs[j];
+ n.classList.remove("hide");
+ });
}, Δf);
};
document.addEventListener("DOMContentLoaded", _ => {
nodes = $$('.lang-fade-in-out');
- updateTexts();
- /* When you first do a page load there is no fade-in for the initial
- text, so we want to trigger a fade-out Δf milliseconds earlier */
- setTimeout(() => {
- change();
- setInterval(change, Δt);
- }, Δt - Δf);
+ change();
+ setInterval(change, Δt);
});
})();
</script>
{{ end }}
{{ define "content" }}
-<header>
+<header class="container">
{{ template "navbar" . }}
<h1>
{{ .Get "Select Your Language" }}
- <br><span class="lang-fade-in-out"></span>
+ <br><span class="lang-fade-in-out translation">&nbsp;</span>
</h1>
</header>
-<main>
+<main class="container">
<h2>
{{ .Get "Eurozone Languages" }}
- <br><span class="lang-fade-in-out"></span>
+ <br><span class="lang-fade-in-out translation">&nbsp;</span>
</h2>
- {{ template "langgrid" true }}
+ {{ template "langgrid" (tuple .Printer true) }}
<h2>
{{ .Get "Other Languages" }}
- <br><span class="lang-fade-in-out"></span>
+ <br><span class="lang-fade-in-out translation">&nbsp;</span>
</h2>
- {{ template "langgrid" false }}
+ {{ template "langgrid" (tuple .Printer false) }}
</main>
{{ end }}
{{ define "langgrid" }}
-{{ $ez := . }}
+{{ $p := index . 0 }}
+{{ $ez := index . 1 }}
<form action="/language" method="POST">
- <div class="lang-grid">
+ <div class="button-grid lang-grid">
{{ range locales }}
- {{ if eq $ez .Eurozone }}
+ {{ if eq $ez .Eurozonep }}
<button
type="submit"
name="locale"
- value={{ .Bcp }}
- {{ if not .Enabled }}
+ value="{{ .Bcp }}"
+ {{ if not .Enabledp }}
disabled
{{ end }}
>
- <span
- lang={{ .Bcp }}
- data-code={{ .Language | toUpper }}
- >
- {{ .Name }}
+ <span>{{ .Language | toUpper }}</span>
+ <span lang="{{ .Bcp }}">
+ {{ .Name }}<br>
+ <span lang="{{ $p.Bcp }}" class="translation">
+ {{ $p.GetC .Name "Language Name" }}
+ </span>
</span>
</button>
{{ end }}