From 066865b84993a34615bbdad1ac9c1711bca3d413 Mon Sep 17 00:00:00 2001 From: Alexej Rotar Date: Mon, 13 Nov 2023 19:08:44 +0100 Subject: [PATCH] setup internationalization --- .eleventy.js | 26 ++- includes/layouts/base/main.njk | 10 +- sites/angestoepselt/{ => de}/404.md | 0 sites/angestoepselt/{ => de}/arbeiten.md | 0 .../{ => de}/computer-beantragen/index.md | 0 .../computer-beantragen/organisation.md | 0 .../{ => de}/computer-beantragen/privat.md | 0 .../{ => de}/computer-reparieren.md | 0 .../{ => de}/datenschutzhinweis.md | 0 sites/angestoepselt/de/de.json | 3 + sites/angestoepselt/{ => de}/feed/feed.njk | 0 .../angestoepselt/{ => de}/feed/htaccess.njk | 0 sites/angestoepselt/{ => de}/feed/json.njk | 0 .../{ => de}/hardware-spenden/index.md | 0 .../{ => de}/hardware-spenden/organisation.md | 0 .../{ => de}/hardware-spenden/privat.md | 0 sites/angestoepselt/{ => de}/impressum.md | 0 sites/angestoepselt/{ => de}/index.md | 2 +- .../angestoepselt/{ => de}/kontakt/fehler.md | 0 .../angestoepselt/{ => de}/kontakt/fertig.md | 0 sites/angestoepselt/{ => de}/kontakt/index.md | 0 .../angestoepselt/{ => de}/kontakt/problem.md | 0 .../{ => de}/mitmachen/beitreten.md | 0 .../angestoepselt/{ => de}/mitmachen/index.md | 0 .../2017-04-12-computer-sind-mein-leben.md | 0 .../2017-06-11-run-auf-angestoepselt.md | 0 .../2017-06-22-suedwest-ansturm-alte-pcs.md | 0 ...12-18-studierende-foerdern-progammierer.md | 0 ...2018-07-10-tuefteln-und-dabei-gutes-tun.md | 0 .../2020-03-01-greenpeace-magazin.md | 0 .../neuigkeiten/2020-11-01-geo-magazin.md | 0 .../neuigkeiten/2021-10-20-neue-homepage.md | 0 .../2022-06-12-umsonst-und-draussen.md | 0 .../neuigkeiten/2023-03-01-blattgruen.md | 0 .../neuigkeiten/2023-03-17-tvmainfranken.md | 0 .../neuigkeiten/2023-03-26-nerdhorizons.md | 0 .../neuigkeiten/2023-03-31-iweltspende.md | 0 .../{ => de}/neuigkeiten/index.njk | 2 +- .../{ => de}/neuigkeiten/neuigkeiten.json | 0 sites/angestoepselt/{ => de}/spenden.md | 0 .../{ => de}/ueber-uns/andere.md | 0 .../angestoepselt/{ => de}/ueber-uns/index.md | 0 .../{ => de}/ueber-uns/partner.md | 0 .../{ => de}/ueber-uns/satzung.md | 0 sites/angestoepselt/en/arbeiten.md | 73 ++++++++ .../en/computer-beantragen/index.md | 90 +++++++++ .../en/computer-beantragen/organisation.md | 81 +++++++++ .../en/computer-beantragen/privat.md | 121 +++++++++++++ sites/angestoepselt/en/computer-reparieren.md | 15 ++ sites/angestoepselt/en/datenschutzhinweis.md | 120 ++++++++++++ sites/angestoepselt/en/en.json | 3 + sites/angestoepselt/en/feed/feed.njk | 29 +++ sites/angestoepselt/en/feed/htaccess.njk | 6 + sites/angestoepselt/en/feed/json.njk | 32 ++++ .../en/hardware-spenden/index.md | 89 +++++++++ .../en/hardware-spenden/organisation.md | 102 +++++++++++ .../en/hardware-spenden/privat.md | 65 +++++++ sites/angestoepselt/en/impressum.md | 76 ++++++++ sites/angestoepselt/en/index.md | 171 ++++++++++++++++++ sites/angestoepselt/en/kontakt/fehler.md | 15 ++ sites/angestoepselt/en/kontakt/fertig.md | 36 ++++ sites/angestoepselt/en/kontakt/index.md | 74 ++++++++ sites/angestoepselt/en/kontakt/problem.md | 47 +++++ sites/angestoepselt/en/mitmachen/beitreten.md | 127 +++++++++++++ sites/angestoepselt/en/mitmachen/index.md | 78 ++++++++ .../2017-04-12-computer-sind-mein-leben.md | 11 ++ .../2017-06-11-run-auf-angestoepselt.md | 68 +++++++ .../2017-06-22-suedwest-ansturm-alte-pcs.md | 11 ++ ...12-18-studierende-foerdern-progammierer.md | 12 ++ ...2018-07-10-tuefteln-und-dabei-gutes-tun.md | 11 ++ .../2020-03-01-greenpeace-magazin.md | 14 ++ .../en/neuigkeiten/2020-11-01-geo-magazin.md | 15 ++ .../neuigkeiten/2021-10-20-neue-homepage.md | 24 +++ .../2022-06-12-umsonst-und-draussen.md | 14 ++ .../en/neuigkeiten/2023-03-01-blattgruen.md | 16 ++ .../neuigkeiten/2023-03-17-tvmainfranken.md | 13 ++ .../en/neuigkeiten/2023-03-26-nerdhorizons.md | 20 ++ .../en/neuigkeiten/2023-03-31-iweltspende.md | 18 ++ sites/angestoepselt/en/neuigkeiten/index.njk | 47 +++++ .../en/neuigkeiten/neuigkeiten.json | 5 + sites/angestoepselt/en/spenden.md | 86 +++++++++ sites/angestoepselt/en/ueber-uns/andere.md | 20 ++ sites/angestoepselt/en/ueber-uns/index.md | 120 ++++++++++++ sites/angestoepselt/en/ueber-uns/partner.md | 65 +++++++ sites/angestoepselt/en/ueber-uns/satzung.md | 118 ++++++++++++ 85 files changed, 2191 insertions(+), 10 deletions(-) rename sites/angestoepselt/{ => de}/404.md (100%) rename sites/angestoepselt/{ => de}/arbeiten.md (100%) rename sites/angestoepselt/{ => de}/computer-beantragen/index.md (100%) rename sites/angestoepselt/{ => de}/computer-beantragen/organisation.md (100%) rename sites/angestoepselt/{ => de}/computer-beantragen/privat.md (100%) rename sites/angestoepselt/{ => de}/computer-reparieren.md (100%) rename sites/angestoepselt/{ => de}/datenschutzhinweis.md (100%) create mode 100644 sites/angestoepselt/de/de.json rename sites/angestoepselt/{ => de}/feed/feed.njk (100%) rename sites/angestoepselt/{ => de}/feed/htaccess.njk (100%) rename sites/angestoepselt/{ => de}/feed/json.njk (100%) rename sites/angestoepselt/{ => de}/hardware-spenden/index.md (100%) rename sites/angestoepselt/{ => de}/hardware-spenden/organisation.md (100%) rename sites/angestoepselt/{ => de}/hardware-spenden/privat.md (100%) rename sites/angestoepselt/{ => de}/impressum.md (100%) rename sites/angestoepselt/{ => de}/index.md (99%) rename sites/angestoepselt/{ => de}/kontakt/fehler.md (100%) rename sites/angestoepselt/{ => de}/kontakt/fertig.md (100%) rename sites/angestoepselt/{ => de}/kontakt/index.md (100%) rename sites/angestoepselt/{ => de}/kontakt/problem.md (100%) rename sites/angestoepselt/{ => de}/mitmachen/beitreten.md (100%) rename sites/angestoepselt/{ => de}/mitmachen/index.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2017-04-12-computer-sind-mein-leben.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2017-06-11-run-auf-angestoepselt.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2017-06-22-suedwest-ansturm-alte-pcs.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2017-12-18-studierende-foerdern-progammierer.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2018-07-10-tuefteln-und-dabei-gutes-tun.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2020-03-01-greenpeace-magazin.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2020-11-01-geo-magazin.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2021-10-20-neue-homepage.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2022-06-12-umsonst-und-draussen.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2023-03-01-blattgruen.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2023-03-17-tvmainfranken.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2023-03-26-nerdhorizons.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/2023-03-31-iweltspende.md (100%) rename sites/angestoepselt/{ => de}/neuigkeiten/index.njk (95%) rename sites/angestoepselt/{ => de}/neuigkeiten/neuigkeiten.json (100%) rename sites/angestoepselt/{ => de}/spenden.md (100%) rename sites/angestoepselt/{ => de}/ueber-uns/andere.md (100%) rename sites/angestoepselt/{ => de}/ueber-uns/index.md (100%) rename sites/angestoepselt/{ => de}/ueber-uns/partner.md (100%) rename sites/angestoepselt/{ => de}/ueber-uns/satzung.md (100%) create mode 100644 sites/angestoepselt/en/arbeiten.md create mode 100644 sites/angestoepselt/en/computer-beantragen/index.md create mode 100644 sites/angestoepselt/en/computer-beantragen/organisation.md create mode 100644 sites/angestoepselt/en/computer-beantragen/privat.md create mode 100644 sites/angestoepselt/en/computer-reparieren.md create mode 100644 sites/angestoepselt/en/datenschutzhinweis.md create mode 100644 sites/angestoepselt/en/en.json create mode 100755 sites/angestoepselt/en/feed/feed.njk create mode 100644 sites/angestoepselt/en/feed/htaccess.njk create mode 100644 sites/angestoepselt/en/feed/json.njk create mode 100644 sites/angestoepselt/en/hardware-spenden/index.md create mode 100644 sites/angestoepselt/en/hardware-spenden/organisation.md create mode 100644 sites/angestoepselt/en/hardware-spenden/privat.md create mode 100644 sites/angestoepselt/en/impressum.md create mode 100644 sites/angestoepselt/en/index.md create mode 100644 sites/angestoepselt/en/kontakt/fehler.md create mode 100644 sites/angestoepselt/en/kontakt/fertig.md create mode 100644 sites/angestoepselt/en/kontakt/index.md create mode 100644 sites/angestoepselt/en/kontakt/problem.md create mode 100644 sites/angestoepselt/en/mitmachen/beitreten.md create mode 100644 sites/angestoepselt/en/mitmachen/index.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2017-04-12-computer-sind-mein-leben.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2017-06-11-run-auf-angestoepselt.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2017-06-22-suedwest-ansturm-alte-pcs.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2017-12-18-studierende-foerdern-progammierer.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2018-07-10-tuefteln-und-dabei-gutes-tun.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2020-03-01-greenpeace-magazin.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2020-11-01-geo-magazin.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2021-10-20-neue-homepage.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2022-06-12-umsonst-und-draussen.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2023-03-01-blattgruen.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2023-03-17-tvmainfranken.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2023-03-26-nerdhorizons.md create mode 100644 sites/angestoepselt/en/neuigkeiten/2023-03-31-iweltspende.md create mode 100644 sites/angestoepselt/en/neuigkeiten/index.njk create mode 100644 sites/angestoepselt/en/neuigkeiten/neuigkeiten.json create mode 100644 sites/angestoepselt/en/spenden.md create mode 100644 sites/angestoepselt/en/ueber-uns/andere.md create mode 100644 sites/angestoepselt/en/ueber-uns/index.md create mode 100644 sites/angestoepselt/en/ueber-uns/partner.md create mode 100644 sites/angestoepselt/en/ueber-uns/satzung.md diff --git a/.eleventy.js b/.eleventy.js index 724fd46..64a0e20 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -8,6 +8,7 @@ const Image = require('@11ty/eleventy-img'); const markdownIt = require('markdown-it'); const markdownItAnchor = require('markdown-it-anchor'); const markdownItAttrs = require('markdown-it-attrs'); +const { EleventyI18nPlugin } = require('@11ty/eleventy'); function hyphenize(input) { return input @@ -27,6 +28,9 @@ module.exports = function (eleventyConfig) { eleventyConfig.addPlugin(pluginRss); eleventyConfig.addPlugin(pluginSyntaxHighlight); eleventyConfig.addPlugin(pluginNavigation); + eleventyConfig.addPlugin(EleventyI18nPlugin, { + defaultLanguage: "de", + }); eleventyConfig.setDataDeepMerge(true); @@ -56,20 +60,36 @@ module.exports = function (eleventyConfig) { } eleventyConfig.addFilter('filterTagList', filterTagList); + // Create separate collections for the different locales + function sortByLocales(items) { + return items.reduce((sorted, item) => ({ + ...sorted, + [`${item.page.lang}`]: [ + ...(sorted[item.page.lang] ?? []), + item + ], + }), {}) + } + // Build collections for the top and bottom navigation - the first one // contains the main sites and the latter contains legal pages. eleventyConfig.addCollection('topNavigation', (collection) => { - return collection + const topNavigation = collection .getAll() .filter((item) => !(item.data.tags || []).includes('legal')); + return sortByLocales(topNavigation); }); + eleventyConfig.addCollection('bottomNavigation', (collection) => { - return collection + const bottomNavigation = collection .getAll() .filter((item) => (item.data.tags || []).includes('legal')); + return sortByLocales(bottomNavigation); }); + eleventyConfig.addCollection('posts', (collection) => { - return collection.getAll().filter((item) => item.data.layout === 'post'); + const posts = collection.getAll().filter((item) => item.data.layout === 'post'); + return sortByLocales(posts); }); // diff --git a/includes/layouts/base/main.njk b/includes/layouts/base/main.njk index 61488d5..c1eb06d 100644 --- a/includes/layouts/base/main.njk +++ b/includes/layouts/base/main.njk @@ -1,5 +1,5 @@ - + {{ title or metadata.title }} @@ -34,7 +34,7 @@