diff options
author | Alan Pearce | 2024-02-20 20:02:36 +0000 |
---|---|---|
committer | Alan Pearce | 2024-02-20 20:02:36 +0000 |
commit | 333e97f135264c3c220063b2b64bf4dc0b508f34 (patch) | |
tree | fda555ec02ad606d42d089b01107cbfead01f68d | |
parent | 5a936b5c413b541c5523da6b4ebdc46f996f7360 (diff) | |
parent | fa345b1d1e11cc66ed92605382887fd4367ef97a (diff) | |
download | zola-bearblog-333e97f135264c3c220063b2b64bf4dc0b508f34.tar.lz zola-bearblog-333e97f135264c3c220063b2b64bf4dc0b508f34.tar.zst zola-bearblog-333e97f135264c3c220063b2b64bf4dc0b508f34.zip |
Merge pull request 'Basic multilingual site' (#10) from multilingual into main
Reviewed-on: https://codeberg.org/alanpearce/zola-bearblog/pulls/10
-rw-r--r-- | config.toml | 33 | ||||
-rw-r--r-- | content/_index.de.md | 23 | ||||
-rw-r--r-- | content/bear.de.md | 15 | ||||
-rw-r--r-- | content/blog/_index.de.md | 3 | ||||
-rw-r--r-- | content/zola.de.md | 36 | ||||
-rw-r--r-- | netlify.toml | 2 | ||||
-rw-r--r-- | templates/footer.html | 2 | ||||
-rw-r--r-- | templates/header.html | 1 | ||||
-rw-r--r-- | templates/language_switcher.html | 12 | ||||
-rw-r--r-- | templates/nav.html | 16 | ||||
-rw-r--r-- | templates/section.html | 8 | ||||
-rw-r--r-- | templates/taxonomy_list.html | 2 | ||||
-rw-r--r-- | templates/taxonomy_single.html | 2 |
13 files changed, 145 insertions, 10 deletions
diff --git a/config.toml b/config.toml index bd675af..92637f3 100644 --- a/config.toml +++ b/config.toml @@ -13,6 +13,29 @@ taxonomies = [ {name = "tags", feed = true}, ] +default_language = "en" + +[translations] +no_posts = "No posts yet" +remove_filter = "Remove filter" +filtering_for = "Filtering for" +made_with = "Made with" + +[languages.de] +title = "Zola ʕ•ᴥ•ʔ Bear Blog" +description = "Ein Zola-theme basiert auf Bear Blog." + +taxonomies = [ + {name = "categories", feed = true}, + {name = "tags", feed = true}, +] + +[languages.de.translations] +no_posts = "Keine Einträge" +remove_filter = "Filter entfernen" +filtering_for = "Filtern nach" +made_with = "Erstellt mit" + [markdown] # Whether to do syntax highlighting # Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola @@ -21,19 +44,29 @@ highlight_code = true [extra] date_format="%d %b, %Y" webserver_sends_csp_headers=true +language_switcher=true + +translations = [ + { code="en", name="English" }, + { code="de", name="Deutsch" }, +] [[extra.main_menu]] name = "Home" +name_de = "Startseite" url = "/" [[extra.main_menu]] name = "Bear" +name_de = "Bear" url = "@/bear.md" [[extra.main_menu]] name = "Zola" +name_de = "Zola" url = "@/zola.md" [[extra.main_menu]] name = "Blog" +name_de = "Blog" url = "@/blog/_index.md" diff --git a/content/_index.de.md b/content/_index.de.md new file mode 100644 index 0000000..cdcad42 --- /dev/null +++ b/content/_index.de.md @@ -0,0 +1,23 @@ ++++ ++++ +# Eine himmlische Verbindung + +Es gibt eine Krise der Website-Fettleibigkeit. Aufgeblähte Websites voller Skripte, Werbung und Tracker bremsen deine Leser jedes Mal aus, wenn sie versuchen, deine gut gestalteten Inhalte zu lesen. + +Zola Bear Blog ist alles, was du brauchst, um eine fantastische und optimierte Website oder einen Blog zu erstellen. Es funktioniert perfekt auf **jedem** Anzeigegerät. Alles, worauf du dich konzentrieren müssen, ist das Schreiben guter Inhalte. + +[Zum ursprünglichen Bear-Blog](https://bearblog.dev/). + +--- + +Was passiert, wenn du den weltweit schnellsten und leichtesten Generator für statische Websites mit einem Design-Theme kombinieren, das dir kostenlose, unkomplizierte und superschnelle Blogging-Funktionen bietet? + +**Benutze dieses Theme und finde es heraus!** + +Erstellt mit 💚 von [Alan Pearce](https://alanpearce.eu). + +--- + +Veröffentliche einfach deine Inhalte online, bau ein Publikum auf und halte deine Seiten klein, schnell und **für Suchmaschinen optimiert**. + +Jede Seite ist ~5kb groß, und du kannst dein Blog selbst **hosten**. diff --git a/content/bear.de.md b/content/bear.de.md new file mode 100644 index 0000000..b9a1f3e --- /dev/null +++ b/content/bear.de.md @@ -0,0 +1,15 @@ ++++ +title = "Bear" ++++ + +Webseite: [https://bearblog.dev](https://bearblog.dev) + +Es gibt eine Krise der Website-Fettleibigkeit. Aufgeblähte Websites voller Skripte, Werbung und Tracker bremsen deine Leser jedes Mal aus, wenn sie versuchen, deine gut gestalteten Inhalte zu lesen. + +Zola Bear Blog ist alles, was du brauchst, um eine fantastische und optimierte Website oder einen Blog zu erstellen. Es funktioniert perfekt auf **jedem** Anzeigegerät. Alles, worauf du dich konzentrieren müssen, ist das Schreiben guter Inhalte. + +Bear macht es einfach, Inhalte online zu veröffentlichen und ein Publikum aufzubauen, während die Seiten klein, schnell und **für Suchmaschinen optimiert** bleiben. + +Jede Seite ist ~5kb. + +Weitere Informationen und Beiträge unter [GitHub](https://github.com/HermanMartinus/bearblog). diff --git a/content/blog/_index.de.md b/content/blog/_index.de.md new file mode 100644 index 0000000..34651ab --- /dev/null +++ b/content/blog/_index.de.md @@ -0,0 +1,3 @@ ++++ +title = "Blog" ++++ diff --git a/content/zola.de.md b/content/zola.de.md new file mode 100644 index 0000000..204f790 --- /dev/null +++ b/content/zola.de.md @@ -0,0 +1,36 @@ ++++ +title = "Zola" ++++ +## Keine Abhängigkeiten + +Zola wird als einzelne ausführbare Datei mit Sass-Kompilierung, Syntax +Syntaxhervorhebung, Inhaltsverzeichnis und vielen anderen Funktionen, die +die normalerweise das Einrichten einer Entwicklungsumgebung oder das Hinzufügen einiger +JavaScript-Bibliotheken zu deiner Website. + +## Rasend schnell + +Die durchschnittliche Website wird in weniger als einer Sekunde erstellt, einschließlich +Sass-Kompilierung und Syntaxhervorhebung. + +## Skalierbar + +Zola rendert deine gesamte Website als statische Dateien, was es trivial macht +jede Art von Datenverkehr zu bewältigen, ohne dass du dich um die +ohne sich um die Verwaltung eines Servers oder einer Datenbank kümmern zu müssen. + +## Einfach zu bedienen + +Von der CLI bis zur Template-Engine ist alles so konzipiert, dass es +intuitiv. Verlasse dich jedoch nicht auf mein Wort, sondern schaue in die Dokumentation +und überzeug dich selbst. + +## Flexibel + +Zola geht dir aus dem Weg, damit du dich auf deine Inhalte konzentrieren kannst, sei es ein +Blog, eine Wissensdatenbank, eine Landing Page oder eine Kombination aus beidem. + +## Erweitertes Markdown + +Zola verfügt über Shortcodes und interne Links, die das Schreiben von +deine Inhalte zu schreiben. diff --git a/netlify.toml b/netlify.toml index 59e0094..dc69016 100644 --- a/netlify.toml +++ b/netlify.toml @@ -22,4 +22,4 @@ command = "zola build --base-url $DEPLOY_PRIME_URL" X-XSS-Protection = "1; mode=block" Referrer-Policy = "strict-origin-when-cross-origin" Strict-Transport-Security = "max-age=63072000; includeSubdomains" - Content-Security-Policy = "default-src 'none'; img-src 'self'; object-src 'none'; script-src 'none'; style-src 'sha256-PfqYdfojK4X5lEpBXpUr/pJgf8BZ0tVvD+shnG3tM/E='; form-action 'none'; base-uri 'self'; frame-ancestors 'none'" + Content-Security-Policy = "default-src 'none'; img-src 'self'; object-src 'none'; script-src 'none'; style-src 'sha256-5K5tkbXKXWE7Xcs3HIt98Y+XOWAAsdSyGzixGECKPcA='; form-action 'none'; base-uri 'self'; frame-ancestors 'none'" diff --git a/templates/footer.html b/templates/footer.html index c952a93..6d4f0f7 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -1,5 +1,5 @@ <footer> {%- if not config.extra.hide_made_with_line %} - Made with <a href="https://codeberg.org/alanpearce/zola-bearblog">Zola ʕ•ᴥ•ʔ Bear</a> + {{ trans(key="made_with", lang=lang) }} <a href="https://codeberg.org/alanpearce/zola-bearblog">Zola ʕ•ᴥ•ʔ Bear</a> {%- endif %} </footer> diff --git a/templates/header.html b/templates/header.html index f92e903..6e56025 100644 --- a/templates/header.html +++ b/templates/header.html @@ -1,4 +1,5 @@ <header> + {% include "language_switcher.html" %} <a href="{{ get_url(path="@/_index.md", lang=lang) }}" class="title"> <h1>{{ config.title }}</h1> </a> diff --git a/templates/language_switcher.html b/templates/language_switcher.html new file mode 100644 index 0000000..3968c73 --- /dev/null +++ b/templates/language_switcher.html @@ -0,0 +1,12 @@ +{% if config.extra.language_switcher %} + <nav class="lang"> + {%- set language_agnostic_path = current_path | default(value="/") | replace(from='/' ~ lang ~ '/', to = '/') | trim_start_matches(pat = '/') -%} + {%- for tr in config.extra.translations %} + {%- if tr.code == lang %} + <strong>{{ tr.name }}</strong> + {%- else %} + <a href="{{ get_url(path=language_agnostic_path, lang=tr.code) ~ "/" }}" hreflang="{{ tr.code }}">{{ tr.name }}</a> + {%- endif %} + {%- endfor %} + </nav> +{% endif %} diff --git a/templates/nav.html b/templates/nav.html index a71652e..ba9f543 100644 --- a/templates/nav.html +++ b/templates/nav.html @@ -1,9 +1,21 @@ +{% set current_lang = config.default_language %} +{% if page %} + {% set current_lang = page.lang %} +{% elif section %} + {% set current_lang = section.lang %} +{% endif %} {%- if config.extra.main_menu %} {%- for item in config.extra.main_menu %} + {% if current_lang == config.default_language %} + {% set title = item.name %} + {% else %} + {% set language_key = 'name_' ~ current_lang %} + {% set title = item[language_key] %} + {% endif %} {%- if item.url is matching("https?://") %} - <a href="{{ item.url }}">{{ item.name }}</a> + <a href="{{ item.url }}">{{ title }}</a> {%- else %} - <a href="{{ get_url(path=item.url, lang=lang )}}">{{ item.name }}</a> + <a href="{{ get_url(path=item.url, lang=lang )}}">{{ title }}</a> {%- endif %} {%- endfor %} {%- endif -%} diff --git a/templates/section.html b/templates/section.html index f3c218a..9560719 100644 --- a/templates/section.html +++ b/templates/section.html @@ -3,9 +3,9 @@ {% block main %} <main> {%- if taxonomy.term %} - <h3 class="filter">Filtering for "{{ section.title }}"</h3> + <h3 class="filter">{{ trans(key="filtering_for",lang=lang)}} "{{ section.title }}"</h3> <small> - <a href="{{ get_url(path="@/blog/_index.md", lang=lang) }}">Remove filter</a> + <a href="{{ get_url(path="@/blog/_index.md", lang=lang) }}">{{ trans(key="remove_filter", lang=lang) }}</a> </small> {%- endif %} <ul class="blog-posts"> @@ -22,13 +22,13 @@ </li> {% else %} <li> - No posts yet + {{ trans(key="no_posts", lang=lang) }} </li> {% endfor %} </ul> <small> <div> - {% set tags = get_taxonomy(kind="tags") %} + {% set tags = get_taxonomy(kind="tags", lang=lang) %} {% for post in tags.items %} <a href="{{ post.permalink }}">#{{ post.name }}</a> {% endfor %} diff --git a/templates/taxonomy_list.html b/templates/taxonomy_list.html index 98b8fc9..4b4e08a 100644 --- a/templates/taxonomy_list.html +++ b/templates/taxonomy_list.html @@ -5,7 +5,7 @@ <h1>{{ taxonomy.name | capitalize }}</h1> <small> <div> - {% set tags = get_taxonomy(kind="tags") %} + {% set tags = get_taxonomy(kind="tags", lang=lang) %} {% for post in tags.items %} <a href="{{ post.permalink }}">#{{ post.name }}</a> {% endfor %} diff --git a/templates/taxonomy_single.html b/templates/taxonomy_single.html index 0f640a2..a8ca536 100644 --- a/templates/taxonomy_single.html +++ b/templates/taxonomy_single.html @@ -22,7 +22,7 @@ </li> {% else %} <li> - No posts yet + {{ trans(key="no_posts", lang=lang) }} </li> {% endfor %} </ul> |