From 4c3e7b610ddc84d64ed04a25166226bcaf74ef96 Mon Sep 17 00:00:00 2001 From: Mao Nakamoto <41178744+maonakamoto@users.noreply.github.com> Date: Wed, 26 Aug 2026 02:48:53 +0200 Subject: [PATCH] fix(home): the homepage said the same thing three times MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Found by opening the live site at 390px and 1280px rather than by reading it. At 1280 the page was 5824px tall and 2893px of that — half of it — was three consecutive sections answering the same question: "3 Bereiche, ein Prinzip" 886px computers · technicians · ai "Drei Wege — Was möchtest du tun?" 726px shop · repair · learn "5 Wege, ein Ziel" (pillars) 1281px hardware · technicians · software · training · adoption "Techniker finden" was a CTA in all three. And the divisions card for `technicians` read "Jemanden finden, der es repariert" — word for word the pillars headline. The same sentence, twice, on one page. That is my own doing: the pillars section landed without removing what it replaced. On a phone the result was 8442px and fifteen cards across four consecutive grids, which is the "elements look very bad" complaint in measurable form — not token drift (the design audit found none) but four identical rhythms in a row with nothing to break them. Both replaced sections are gone. Divisions stay the brand SSOT and still render in the hero rail directly above, the footer column, the nav and the /ai page — they simply do not need a card grid competing with the section that says what evig does. The page is now hero → pillars → community → close. Two more defects the browser caught that no grep would have: - The tab read "evig – evig — Intelligenz, für alle bezahlbar … | evig". The org name three times: the layout appends "| evig" through its title template, meta.title itself opened with "evig —", and page.tsx prefixed "evig – " on top. The template owns the name now; the title is the descriptive half only, and short enough to survive search truncation. - The closing CTA still asked "Brauchst du ein Gerät, das länger hält?" and sent everyone to the shop — durability framing, and the wrong question to end a page about access to intelligence. It closes on the thesis instead: the cheapest way into AI is a good used machine, with the broken-device path named in the note underneath. Checked and NOT changed: no horizontal overflow at 390px (scrollWidth 375 vs innerWidth 390), and the five console errors were ERR_NETWORK_CHANGED / ERR_NAME_NOT_RESOLVED on RSC prefetches — this session's network, not the site. CLAUDE.md updated: it documented a homepage divisions section that no longer exists, with a note not to reinstate the grid. npm run verify green: lint, umlauts, chrome, docs, compliance, typecheck, 7746 tests, production build. Co-Authored-By: Claude Opus 5 (1M context) --- CLAUDE.md | 14 +++-- messages/de.json | 35 ++---------- messages/en.json | 35 ++---------- messages/es.json | 35 ++---------- messages/fr.json | 35 ++---------- messages/it.json | 35 ++---------- messages/ja.json | 35 ++---------- messages/ko.json | 35 ++---------- messages/ru.json | 35 ++---------- src/app/[locale]/page.tsx | 113 ++++++-------------------------------- 10 files changed, 75 insertions(+), 332 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 2e7fbac5d..fcfefcda0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -30,11 +30,15 @@ one thing evig is for. They now live as projects on orangecat.ch ("Building for the Ruin", "Healthspan and Preservation"). Do not reintroduce them. Rules: -- **`EVIG_DIVISIONS` is the only list.** The homepage hero rail, the homepage - divisions section (including its **count** — via ICU `{count}`, never a - number typed into a message), the footer column, the nav entries and the - division pages all derive from it. Never hardcode a wordmark: it is composed - as `${ORG.name} ${id}`. +- **`EVIG_DIVISIONS` is the only list.** The homepage hero rail, the footer + column, the nav entries and the division pages all derive from it. Never + hardcode a wordmark: it is composed as `${ORG.name} ${id}`. +- **The homepage has no divisions card grid** (removed 2026-08-25). It + restated the hero rail directly above it, and its `technicians` card + headline was word-for-word the pillars section's — the same sentence twice + on one page. Divisions are how the org is *named*; `EVIG_PILLARS` says what + it *does*, and that is what the homepage owes a first-time visitor. Do not + reinstate the grid. - **A division is a lens, not a second storefront.** `computers` and `technicians` point at the surfaces that already serve them. Only add a `DIVISION_PAGES` entry when a division has no home; then it renders through the shared diff --git a/messages/de.json b/messages/de.json index d8c78f0ea..dd202c09c 100644 --- a/messages/de.json +++ b/messages/de.json @@ -340,7 +340,7 @@ }, "home": { "meta": { - "title": "evig — Intelligenz, für alle bezahlbar | Technik, Reparatur & Linux in der Schweiz", + "title": "Intelligenz, für alle bezahlbar — Geräte, Reparatur, Linux", "description": "Gebrauchte Notebooks und Hardware, die für echte Arbeit reicht. Reparatur und IT-Hilfe in der Nähe, Linux und offene Software, Workshops und Begleitung bei KI und Robotik.", "keywords": "gebrauchte Laptops, Notebook für KI, GPU gebraucht, Computer Reparatur Schweiz, Techniker finden, Linux Installation, Open Source, KI Weiterbildung, KI und Robotik im Betrieb, Zürich, Basel, Luzern" }, @@ -353,29 +353,6 @@ "ctaDiscover": "Reparatur finden", "positioning": "KI für alle · Geräte, Hilfe, Ausbildung · Zürich" }, - "actions": { - "eyebrow": "DREI WEGE", - "heading": "Was möchtest du tun?", - "subtitle": "Kaufen, reparieren lassen, lernen oder mitmachen — der Einstieg richtet sich nach dem, was du gerade brauchst.", - "sell": { - "label": "01 / SHOP", - "title": "Refurbished IT kaufen?", - "subtitle": "Geprüfte Geräte aus dem evig Shop — lokal, transparent und sofort einsatzbereit.", - "primaryLabel": "Zum Shop" - }, - "repair": { - "label": "02 / REPARATUR", - "title": "Computer kaputt?", - "subtitle": "Techniker und Werkstätten in deiner Nähe helfen — oder biete selbst Reparaturen an.", - "primaryLabel": "Techniker finden" - }, - "learn": { - "label": "03 / WORKSHOPS", - "title": "Etwas Neues lernen?", - "subtitle": "Praxisnahe Workshops zu Linux, Hardware-Reparatur, Programmierung und KI.", - "primaryLabel": "Workshops ansehen" - } - }, "community": { "eyebrow": "MITMACHEN", "heading": "Werde Teil der Community", @@ -402,11 +379,11 @@ } }, "finalCta": { - "eyebrow": "BEREIT?", - "heading": "Brauchst du ein Gerät, das länger hält?", - "subtitle": "Im Shop findest du geprüfte refurbished IT. Wenn etwas kaputt ist, führt dich die Reparatur-Suche zu passenden Technikern und Werkstätten.", - "button": "Zum Shop", - "note": "Geräte spenden bleibt möglich unter Mitmachen." + "eyebrow": "ANFANGEN", + "heading": "Der günstigste Zugang zu KI ist ein gutes gebrauchtes Gerät", + "subtitle": "Ein Notebook, das jemand geprüft und richtig eingerichtet hat, kann am Tag der Übergabe das, wofür du es geholt hast — ohne neu gekauft werden zu müssen.", + "button": "Geräte ansehen", + "note": "Etwas ist kaputt? Technikerinnen und Techniker in der Nähe findest du über die IT-Hilfe." }, "jsonld": { "description": "Bezahlbarer Zugang zu KI und Robotik: geprüfte gebrauchte Hardware, Reparatur und IT-Hilfe, Linux und offene Software, Weiterbildung und Begleitung von Organisationen.", diff --git a/messages/en.json b/messages/en.json index ff15a8634..310612ce4 100644 --- a/messages/en.json +++ b/messages/en.json @@ -340,7 +340,7 @@ }, "home": { "meta": { - "title": "evig — Intelligence, affordable for everyone | Tech, repair & Linux in Switzerland", + "title": "Intelligence everyone can afford — devices, repair, Linux", "description": "Used laptops and hardware good enough for real work. Repair and IT help nearby, Linux and open software, workshops and support for adopting AI and robotics.", "keywords": "used laptops, laptop for AI, second-hand GPU, computer repair Switzerland, find a technician, Linux installation, open source, AI training, AI and robotics adoption, Zurich, Basel, Lucerne" }, @@ -353,29 +353,6 @@ "lede": "Curated tech, AI and robotics at fair prices — plus repair that's truly within reach.", "ctaDonate": "Explore tech" }, - "actions": { - "heading": "What would you like to do?", - "sell": { - "title": "Need refurbished IT?", - "subtitle": "Verified devices from the evig shop — local, transparent, and ready to use.", - "primaryLabel": "Go to shop", - "label": "01 / SHOP" - }, - "repair": { - "title": "Computer broken?", - "subtitle": "Technicians and workshops near you can help — or offer repairs yourself.", - "primaryLabel": "Find technicians", - "label": "02 / REPAIR" - }, - "learn": { - "title": "Want to learn something new?", - "subtitle": "Hands-on workshops on Linux, hardware repair, programming and AI.", - "primaryLabel": "View workshops", - "label": "03 / WORKSHOPS" - }, - "eyebrow": "THREE WAYS", - "subtitle": "Buy, repair, learn, or contribute — start with the job you need done today." - }, "community": { "heading": "Join the Community", "subtitle": "Use it, contribute, or support — every bit counts.", @@ -412,11 +389,11 @@ "service3Desc": "Training, retraining, and support for adopting AI and robotics in organisations" }, "finalCta": { - "eyebrow": "READY?", - "heading": "Need a device built to last?", - "subtitle": "The shop has verified refurbished IT. If something is broken, repair search connects you with suitable technicians and workshops.", - "button": "Go to shop", - "note": "Device donations still live under Get involved." + "eyebrow": "GET STARTED", + "heading": "The cheapest way into AI is a good used machine", + "subtitle": "A laptop somebody tested and set up properly can do what you got it for on the day you receive it — without having to be built again.", + "button": "See devices", + "note": "Something broken? Find a technician near you through IT help." }, "newsletter": { "title": "Stay up to date", diff --git a/messages/es.json b/messages/es.json index 660d6c6cc..50f598c6d 100644 --- a/messages/es.json +++ b/messages/es.json @@ -2093,7 +2093,7 @@ }, "home": { "meta": { - "title": "evig — Inteligencia, asequible para todos | Tecnología, reparación y Linux en Suiza", + "title": "Inteligencia al alcance de todos: dispositivos, reparación, Linux", "description": "Portátiles y hardware de segunda mano que sirven para trabajar de verdad. Reparación y ayuda informática cerca, Linux y software abierto, talleres y acompañamiento con IA y robótica.", "keywords": "portátiles de segunda mano, portátil para IA, GPU de segunda mano, reparación de ordenadores Suiza, encontrar técnico, instalación de Linux, código abierto, formación en IA, adopción de IA y robótica, Zúrich, Basilea, Lucerna" }, @@ -2106,29 +2106,6 @@ "lede": "Tecnología seleccionada, IA y robótica a precios justos, más una reparación realmente accesible.", "ctaDonate": "Descubrir tecnología" }, - "actions": { - "heading": "¿Qué quieres hacer?", - "sell": { - "title": "¿Tienes un dispositivo viejo?", - "subtitle": "Véndelo o regálalo en 2 minutos — gratis y sin comisiones.", - "primaryLabel": "Explorar el mercado", - "label": "01 / MERCADO" - }, - "repair": { - "title": "¿Ordenador averiado?", - "subtitle": "Técnicos cerca de ti te ayudan — o tú mismo ofrece reparaciones.", - "primaryLabel": "Buscar ayuda", - "label": "02 / AYUDA IT" - }, - "learn": { - "title": "¿Quieres aprender algo nuevo?", - "subtitle": "Talleres prácticos de Linux, reparación de hardware, programación e IA.", - "primaryLabel": "Ver talleres", - "label": "03 / TALLERES" - }, - "eyebrow": "TRES CAMINOS", - "subtitle": "Ya quieras deshacerte de un dispositivo viejo, comprar uno asequible o ayudar con reparaciones — estás en el lugar correcto." - }, "community": { "heading": "Únete a la comunidad", "subtitle": "Ya sea usando, colaborando o apoyando — cada aportación cuenta.", @@ -2165,11 +2142,11 @@ "service3Desc": "Formación, reciclaje profesional y acompañamiento en su adopción" }, "finalCta": { - "eyebrow": "¿LISTO?", - "heading": "Dale una segunda vida a tu ordenador.", - "subtitle": "5 minutos de esfuerzo. Lo recogemos. Recibes un recibo de donación. Tu dispositivo termina con alguien que lo necesita.", - "button": "Donar un dispositivo", - "note": "Donar dispositivos sigue siendo posible en Participar." + "eyebrow": "EMPEZAR", + "heading": "La vía más barata hacia la IA es una buena máquina de segunda mano", + "subtitle": "Un portátil que alguien ha probado y configurado bien puede hacer aquello para lo que lo buscabas desde el día que lo recibes, sin necesidad de fabricarlo de nuevo.", + "button": "Ver dispositivos", + "note": "¿Algo averiado? Encuentra un técnico cerca de ti a través de la ayuda informática." }, "newsletter": { "title": "Mantente informado/a", diff --git a/messages/fr.json b/messages/fr.json index 91f6b24eb..02849bbe0 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -339,7 +339,7 @@ }, "home": { "meta": { - "title": "evig — L'intelligence, abordable pour tous | Technique, réparation et Linux en Suisse", + "title": "L'intelligence à la portée de tous : appareils, réparation, Linux", "description": "Des portables et du matériel d'occasion qui suffisent pour du vrai travail. Réparation et aide informatique à proximité, Linux et logiciels libres, ateliers et accompagnement sur l'IA et la robotique.", "keywords": "portables d'occasion, portable pour l'IA, GPU d'occasion, réparation d'ordinateurs Suisse, trouver un technicien, installation Linux, open source, formation IA, adoption de l'IA et de la robotique, Zurich, Bâle, Lucerne" }, @@ -352,29 +352,6 @@ "lede": "Une technologie sélectionnée, de l'IA et de la robotique à des prix justes — plus une réparation vraiment accessible.", "ctaDonate": "Découvrir la technologie" }, - "actions": { - "heading": "Que souhaitez-vous faire?", - "sell": { - "title": "Un vieux appareil à donner?", - "subtitle": "Vendez-le ou donnez-le en 2 minutes — gratuitement et sans frais.", - "primaryLabel": "Découvrir la marketplace", - "label": "01 / MARCHÉ" - }, - "repair": { - "title": "Ordinateur en panne?", - "subtitle": "Des techniciens près de chez vous aident — ou proposez vous-même des réparations.", - "primaryLabel": "Trouver de l'aide", - "label": "02 / AIDE IT" - }, - "learn": { - "title": "Envie d'apprendre?", - "subtitle": "Ateliers pratiques sur Linux, réparation hardware, programmation et IA.", - "primaryLabel": "Voir les ateliers", - "label": "03 / ATELIERS" - }, - "eyebrow": "TROIS VOIES", - "subtitle": "Que vous souhaitiez vous débarrasser d'un vieil appareil, en acheter un abordable ou aider aux réparations — vous êtes au bon endroit." - }, "community": { "heading": "Rejoignez la communauté", "subtitle": "Utiliser, contribuer ou soutenir — chaque geste compte.", @@ -411,11 +388,11 @@ "service3Desc": "Formation, reconversion et accompagnement lors de leur mise en place" }, "finalCta": { - "eyebrow": "PRÊT ?", - "heading": "Donnez une seconde vie à votre ordinateur.", - "subtitle": "5 minutes d'effort. Nous le récupérons. Vous recevez un reçu fiscal. Votre appareil finit chez quelqu'un qui en a besoin.", - "button": "Faire don d'un appareil", - "note": "Le don d’appareils reste possible via Participer." + "eyebrow": "COMMENCER", + "heading": "La voie la moins chère vers l'IA est une bonne machine d'occasion", + "subtitle": "Un portable que quelqu'un a testé et correctement configuré fait ce pour quoi vous l'avez pris dès le jour où vous le recevez, sans avoir à être fabriqué une seconde fois.", + "button": "Voir les appareils", + "note": "Quelque chose est cassé ? Trouvez une technicienne ou un technicien près de chez vous via l'aide informatique." }, "newsletter": { "title": "Restez informé", diff --git a/messages/it.json b/messages/it.json index 1ddf51397..ea939a828 100644 --- a/messages/it.json +++ b/messages/it.json @@ -2093,7 +2093,7 @@ }, "home": { "meta": { - "title": "evig — L'intelligenza, alla portata di tutti | Tecnologia, riparazione e Linux in Svizzera", + "title": "Intelligenza alla portata di tutti: dispositivi, riparazione, Linux", "description": "Portatili e hardware usati che bastano per lavorare sul serio. Riparazione e aiuto informatico vicino a te, Linux e software aperto, laboratori e accompagnamento su IA e robotica.", "keywords": "portatili usati, portatile per IA, GPU usata, riparazione computer Svizzera, trovare un tecnico, installazione Linux, open source, formazione IA, adozione di IA e robotica, Zurigo, Basilea, Lucerna" }, @@ -2106,29 +2106,6 @@ "lede": "Tecnologia selezionata, IA e robotica a prezzi equi — e una riparazione davvero accessibile.", "ctaDonate": "Scopri la tecnologia" }, - "actions": { - "heading": "Cosa vuoi fare?", - "sell": { - "title": "Hai un vecchio dispositivo?", - "subtitle": "Vendilo o regalalo in 2 minuti — gratis e senza commissioni.", - "primaryLabel": "Scopri il mercato", - "label": "01 / MERCATO" - }, - "repair": { - "title": "Computer guasto?", - "subtitle": "I tecnici vicino a te sono pronti ad aiutare — o offri tu stesso riparazioni.", - "primaryLabel": "Trova aiuto", - "label": "02 / AIUTO IT" - }, - "learn": { - "title": "Vuoi imparare qualcosa di nuovo?", - "subtitle": "Workshop pratici su Linux, riparazione hardware, programmazione e IA.", - "primaryLabel": "Vedi i workshop", - "label": "03 / WORKSHOP" - }, - "eyebrow": "TRE STRADE", - "subtitle": "Che tu voglia disfarti di un vecchio dispositivo, comprarne uno conveniente o aiutare con le riparazioni — sei nel posto giusto." - }, "community": { "heading": "Entra a far parte della community", "subtitle": "Che tu voglia usare, contribuire o sostenere — ogni apporto conta.", @@ -2165,11 +2142,11 @@ "service3Desc": "Formazione, riqualificazione e accompagnamento nella loro introduzione" }, "finalCta": { - "eyebrow": "PRONTO?", - "heading": "Dai una seconda vita al tuo computer.", - "subtitle": "5 minuti di sforzo. Lo ritiriamo noi. Ricevi una ricevuta di donazione. Il tuo dispositivo finisce a chi ne ha bisogno.", - "button": "Dona un dispositivo", - "note": "Donare dispositivi resta possibile in Partecipa." + "eyebrow": "INIZIARE", + "heading": "La via più economica verso l'IA è una buona macchina usata", + "subtitle": "Un portatile che qualcuno ha testato e configurato bene fa ciò per cui lo hai preso già dal giorno in cui lo ricevi, senza dover essere costruito una seconda volta.", + "button": "Vedi i dispositivi", + "note": "Qualcosa si è rotto? Trova un tecnico vicino a te tramite l'aiuto informatico." }, "newsletter": { "title": "Rimani aggiornato", diff --git a/messages/ja.json b/messages/ja.json index 6c45156f0..084bc1f98 100644 --- a/messages/ja.json +++ b/messages/ja.json @@ -2093,7 +2093,7 @@ }, "home": { "meta": { - "title": "evig — 知性を、すべての人に手の届く価格で | スイスのテクノロジー・修理・Linux", + "title": "誰もが手の届く知能 — 端末、修理、Linux", "description": "本当の仕事に足りる中古ノートとハードウェア。近くで見つかる修理と IT の手助け、Linux とオープンなソフトウェア、ワークショップ、そして AI とロボティクス導入の伴走。", "keywords": "中古ノートパソコン, AI 向けノート, 中古 GPU, パソコン修理 スイス, 技術者を探す, Linux インストール, オープンソース, AI 研修, AI とロボティクスの導入, チューリッヒ, バーゼル, ルツェルン" }, @@ -2106,29 +2106,6 @@ "lede": "厳選したテクノロジー、AI、ロボティクスを適正価格で。そして、本当に手の届く修理も。", "ctaDonate": "テクノロジーを見る" }, - "actions": { - "heading": "何をしたいですか?", - "sell": { - "title": "古いデバイスはありますか?", - "subtitle": "2分で無料出品 — 手数料なし。", - "primaryLabel": "マーケットを見る", - "label": "01 / マーケット" - }, - "repair": { - "title": "パソコンが壊れましたか?", - "subtitle": "近くの技術者が手伝います — または自分で修理を提供する。", - "primaryLabel": "サポートを探す", - "label": "02 / ITサポート" - }, - "learn": { - "title": "新しいことを学びたいですか?", - "subtitle": "Linux、ハードウェア修理、プログラミング、AIの実践ワークショップ。", - "primaryLabel": "ワークショップを見る", - "label": "03 / ワークショップ" - }, - "eyebrow": "3つの道", - "subtitle": "古いデバイスを手放したい、手頃なものを買いたい、修理を手伝いたい — どんな目的でも、ここが正しい場所です。" - }, "community": { "heading": "コミュニティの一員になる", "subtitle": "利用する、協力する、支援する — すべての貢献が大切です。", @@ -2165,11 +2142,11 @@ "service3Desc": "導入にあたっての研修、学び直し、そして伴走" }, "finalCta": { - "eyebrow": "準備はいい?", - "heading": "あなたのコンピュータに第二の命を。", - "subtitle": "5分の手間で。私たちが引き取ります。寄付証明書を受け取れます。あなたのデバイスは必要としている人のもとへ。", - "button": "デバイスを寄付", - "note": "デバイスの寄付は「参加する」から引き続き可能です。" + "eyebrow": "はじめる", + "heading": "AI へのいちばん安い入り口は、良質な中古の一台です", + "subtitle": "誰かが検査し、きちんと設定したノートなら、受け取った日から、それを求めた目的を果たせます。もう一度つくり直す必要はありません。", + "button": "端末を見る", + "note": "壊れましたか? IT の手助けから、近くの技術者を探せます。" }, "newsletter": { "title": "最新情報をお届け", diff --git a/messages/ko.json b/messages/ko.json index 6c6099078..e660e19ac 100644 --- a/messages/ko.json +++ b/messages/ko.json @@ -2093,7 +2093,7 @@ }, "home": { "meta": { - "title": "evig — 지능을, 모두가 누릴 수 있는 가격으로 | 스위스의 기술·수리·리눅스", + "title": "누구나 감당할 수 있는 지능 — 기기, 수리, 리눅스", "description": "진짜 일에 충분한 중고 노트북과 하드웨어. 가까운 곳의 수리와 IT 도움, 리눅스와 열린 소프트웨어, 워크숍, 그리고 AI와 로보틱스 도입 동행.", "keywords": "중고 노트북, AI용 노트북, 중고 GPU, 컴퓨터 수리 스위스, 기술자 찾기, 리눅스 설치, 오픈소스, AI 교육, AI와 로보틱스 도입, 취리히, 바젤, 루체른" }, @@ -2106,29 +2106,6 @@ "lede": "엄선한 기술과 AI, 로보틱스를 합리적인 가격에. 그리고 정말로 손닿는 곳에 있는 수리까지.", "ctaDonate": "기술 둘러보기" }, - "actions": { - "heading": "무엇을 하시겠어요?", - "sell": { - "title": "오래된 기기가 있으신가요?", - "subtitle": "2분 안에 판매하거나 나눠드리세요 — 무료, 수수료 없음.", - "primaryLabel": "마켓플레이스 둘러보기", - "label": "01 / 마켓플레이스" - }, - "repair": { - "title": "컴퓨터가 고장났나요?", - "subtitle": "가까운 기술자가 도움을 드립니다 — 또는 직접 수리를 제공해 보세요.", - "primaryLabel": "도움 찾기", - "label": "02 / IT 지원" - }, - "learn": { - "title": "새로운 것을 배우고 싶으신가요?", - "subtitle": "Linux, 하드웨어 수리, 프로그래밍, AI에 관한 실습 워크숍.", - "primaryLabel": "워크숍 보기", - "label": "03 / 워크숍" - }, - "eyebrow": "세 가지 길", - "subtitle": "오래된 장치를 처분하고 싶거나, 저렴한 장치를 사고 싶거나, 수리를 돕고 싶다면 — 제대로 찾아오셨습니다." - }, "community": { "heading": "커뮤니티의 일원이 되세요", "subtitle": "이용하든, 돕든, 지원하든 — 모든 기여가 중요합니다.", @@ -2165,11 +2142,11 @@ "service3Desc": "도입을 위한 교육, 재교육, 그리고 동행" }, "finalCta": { - "eyebrow": "준비됐나요?", - "heading": "컴퓨터에 두 번째 생명을 주세요.", - "subtitle": "5분만 투자하세요. 저희가 수거합니다. 기부 영수증을 받습니다. 당신의 장치가 필요한 사람의 손에 들어갑니다.", - "button": "장치 기부하기", - "note": "기기 기부는 ‘참여하기’에서 계속 가능합니다." + "eyebrow": "시작하기", + "heading": "AI로 가는 가장 저렴한 길은 좋은 중고 한 대입니다", + "subtitle": "누군가 검사하고 제대로 설정해 둔 노트북은 받는 날부터 당신이 필요로 한 일을 해냅니다. 다시 만들어질 필요 없이.", + "button": "기기 보기", + "note": "고장 났나요? IT 도움에서 가까운 기술자를 찾을 수 있습니다." }, "newsletter": { "title": "최신 소식 받기", diff --git a/messages/ru.json b/messages/ru.json index 99dfa3add..92eaa3e52 100644 --- a/messages/ru.json +++ b/messages/ru.json @@ -343,7 +343,7 @@ }, "home": { "meta": { - "title": "evig — Интеллект, доступный каждому | Техника, ремонт и Linux в Швейцарии", + "title": "Интеллект по карману каждому — устройства, ремонт, Linux", "description": "Подержанные ноутбуки и железо, которых хватает для настоящей работы. Ремонт и помощь с техникой поблизости, Linux и открытые программы, мастерские и сопровождение при внедрении ИИ и робототехники.", "keywords": "подержанные ноутбуки, ноутбук для ИИ, б/у видеокарта, ремонт компьютеров Швейцария, найти мастера, установка Linux, открытый код, обучение ИИ, внедрение ИИ и робототехники, Цюрих, Базель, Люцерн" }, @@ -356,29 +356,6 @@ "ctaDiscover": "Найти ремонт", "positioning": "ИИ для всех · Устройства, помощь, обучение · Цюрих" }, - "actions": { - "eyebrow": "ТРИ ПУТИ", - "heading": "Что-то ищете? Хотите помочь?", - "subtitle": "Хотите ли вы избавиться от старого устройства, купить недорогое или помочь с ремонтом — вы попали по адресу.", - "sell": { - "label": "01 / МАРКЕТПЛЕЙС", - "title": "Осталось старое устройство?", - "subtitle": "Продайте или подарите его за 2 минуты. Бесплатно, без комиссий и посредников.", - "primaryLabel": "Открыть маркетплейс" - }, - "repair": { - "label": "02 / IT-ПОМОЩЬ", - "title": "Сломался компьютер?", - "subtitle": "Техники из сообщества помогут — быстро, честно, на месте. Или предложите свои услуги по ремонту.", - "primaryLabel": "Найти помощь" - }, - "learn": { - "label": "03 / ВОРКШОПЫ", - "title": "Хотите научиться новому?", - "subtitle": "Практические воркшопы по Linux, ремонту оборудования, программированию и ИИ. Маленькие группы, личный подход, hands-on.", - "primaryLabel": "Посмотреть воркшопы" - } - }, "community": { "eyebrow": "ПРИНЯТЬ УЧАСТИЕ", "heading": "Станьте частью сообщества.", @@ -405,11 +382,11 @@ } }, "finalCta": { - "eyebrow": "ГОТОВЫ?", - "heading": "Подарите своему компьютеру вторую жизнь.", - "subtitle": "5 минут вашего времени. Мы приедем за устройством. Вы получите квитанцию о пожертвовании. Ваше устройство достанется тому, кому оно нужно.", - "button": "Пожертвовать устройство", - "note": "Пожертвовать устройство по-прежнему можно в разделе «Принять участие»." + "eyebrow": "НАЧАТЬ", + "heading": "Самый дешёвый путь к ИИ — хорошая подержанная машина", + "subtitle": "Ноутбук, который кто-то проверил и правильно настроил, справится с тем, ради чего вы его взяли, уже в день передачи — и его не пришлось делать заново.", + "button": "Посмотреть устройства", + "note": "Что-то сломалось? Мастера поблизости — через помощь с техникой." }, "jsonld": { "description": "Посильный доступ к ИИ и робототехнике: проверенное подержанное железо, ремонт и помощь с техникой, Linux и открытые программы, обучение и сопровождение организаций.", diff --git a/src/app/[locale]/page.tsx b/src/app/[locale]/page.tsx index 51cc3ce6c..7a6afd0a6 100644 --- a/src/app/[locale]/page.tsx +++ b/src/app/[locale]/page.tsx @@ -7,7 +7,7 @@ import { ORG } from '@/config/org' import { safeJsonLd } from '@/lib/seo/json-ld' import { ROUTES } from '@/config/routes' import { JOURNEY_ENTRYPOINTS } from '@/config/customer-journeys' -import { EVIG_DIVISIONS, DIVISION_STATUS_STYLE } from '@/config/divisions' +import { EVIG_DIVISIONS } from '@/config/divisions' import { EVIG_PILLARS } from '@/config/pillars' const OG_LOCALE_MAP: Record = { @@ -25,7 +25,11 @@ export async function generateMetadata({ params }: { params: Promise<{ locale: s const t = await getTranslations({ locale, namespace: 'home' }) return { - title: `${ORG.name} – ${t('meta.title')}`, + // The layout already appends "| evig" via its title template, and + // meta.title used to start with "evig —" as well, so the tab read + // "evig – evig — … | evig". The org name belongs to the template; this + // string is only the descriptive half. + title: t('meta.title'), description: t('meta.description'), // Keywords are language-specific prose, so they belong in the message // files like every other sentence — they used to be a German array frozen @@ -54,29 +58,6 @@ export default async function Home() { const t = await getTranslations('home') const tDivisions = await getTranslations('divisions') const tPillars = await getTranslations('pillars') - const actionCards = [ - { - label: t('actions.sell.label'), - title: t('actions.sell.title'), - body: t('actions.sell.subtitle'), - ctaLabel: t('actions.sell.primaryLabel'), - ctaHref: JOURNEY_ENTRYPOINTS.orgShop, - }, - { - label: t('actions.repair.label'), - title: t('actions.repair.title'), - body: t('actions.repair.subtitle'), - ctaLabel: t('actions.repair.primaryLabel'), - ctaHref: JOURNEY_ENTRYPOINTS.itHelpRequest, - }, - { - label: t('actions.learn.label'), - title: t('actions.learn.title'), - body: t('actions.learn.subtitle'), - ctaLabel: t('actions.learn.primaryLabel'), - ctaHref: '/workshops', - }, - ] const communityCards = [ { title: t('community.use.title'), body: t('community.use.desc'), href: ROUTES.public.shop, ctaLabel: t('community.use.cta') }, @@ -152,76 +133,18 @@ export default async function Home() { - {/* ── The evig divisions (SSOT: config/divisions.ts) ─────────── - First section under the hero: before we ask anyone to do - something, the page says what this organisation actually is. */} -
-
-
- {tDivisions('overview.eyebrow')} -

- {/* The count is data, not copy — it follows EVIG_DIVISIONS. */} - {tDivisions('overview.heading', { count: EVIG_DIVISIONS.length })} -

-

{tDivisions('overview.subtitle')}

-
- -
- {EVIG_DIVISIONS.map((division) => ( - -
- {division.wordmark} - - {tDivisions(`status.${division.status}` as never)} - -
-

- {tDivisions(`items.${division.id}.tagline` as never)} -

-

- {tDivisions(`items.${division.id}.description` as never)} -

- - {tDivisions(`items.${division.id}.cta` as never)} → - - - ))} -
-
-
- - {/* ── Three primary actions ──────────────────────────────────── */} -
-
-
-
- {t('actions.eyebrow')} -

{t('actions.heading')}

-
-

- {t('actions.subtitle')} -

-
- -
- {actionCards.map((card) => ( -
-
{card.label}
-

{card.title}

-

{card.body}

- - {card.ctaLabel} → - -
- ))} -
-
-
+ {/* Two sections stood here and both said what the pillars section below + now says. The divisions grid restated the hero rail as cards — its + `technicians` card headline was VERBATIM the pillars' "Jemanden + finden, der es repariert", the same sentence twice on one page — and + the "Drei Wege" grid was a third framing of the same choices, with + "Techniker finden" appearing as a CTA in all three. + + Together they were 1612px of desktop and 2442px of phone spent + repeating the answer. Divisions remain the brand SSOT and still + render in the hero rail above, the footer column, the nav and the + /ai page; they just do not need a card grid competing with the + section that states what evig actually does. */} {/* ── The five pillars (SSOT: config/pillars.ts) ─────────────── This replaced two bands that told the circular-IT story of the