Files
felhom.eu/documentation/audits/website-refresh-2026-10-08/tools/en_index.py
T
admin 67b3fd23d1
gates / gates (push) Failing after 13m1s
website refresh: true numbers (56 apps), claims checked against the capability map, ten missing apps, an English twin of every public page (public, choice B), 404 page; site gates 13-18 + 11 decoys; R-902 opened
Part A: claim table documentation/audits/website-refresh-2026-10-08/claims.md; "100% open source" corrected
from the licence read; unbacked claims cut (firewall, RAID, snapshots, new-machine restore, self-managed
mode, household VPN, "never lost"). Part B: dawarich, docmost, grimmory, homebox, karakeep, mealie, metube,
radicale, recipe-importer, sparkyfitness cards; plant-it and wger cut (not offered). Part C: /en/ twins,
nav language switch, hreflang both ways, sitemap with xhtml:link, og-image-en.png. Part D: site_gates.py
twins/lang/same-apps/no-Hungarian/FAQ-JSON-LD/tail. Operator ruling 9 + choice B in 10-localisation.md §11,
§10.7. Register: R-902 (contact mailer source in no repo); R-813, R-784, R-559 annotated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-08 08:29:17 +02:00

196 lines
22 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""/en/ — the English twin of index.html, made by replacing every Hungarian string of the FINAL Hungarian page,
so the two pages keep the same structure. Every replacement must match (sub1 counts)."""
import re, sys
sys.path.insert(0, __file__.rsplit("/", 1)[0])
from common import *
from en_common import *
s = read("index.html")
HEAD = [
('<html lang="hu">', '<html lang="en">'),
('content="Otthoni szerver a saját otthonodban: fényképek, dokumentumok, médiatár. 56 telepíthető alkalmazás, háromszintű automatikus mentés, magyar vagy angol nyelvű vezérlőpult. Most zárt teszt indul."',
'content="A home server in your own home in Hungary: photos, documents, media. 56 apps to install, automatic backups on three levels, a dashboard in English or Hungarian. A closed test is starting now."'),
("<title>Felhom.eu — Saját felhőd, saját szabályaid | Otthoni szerver szolgáltatás</title>",
"<title>Felhom.eu — Your own cloud, your own rules | A home server service in Hungary</title>"),
('content="otthoni szerver, saját felhő, self-hosting, Google Drive alternatíva, iCloud alternatíva, adatvédelem, nyílt forráskódú, szerver telepítés, szerver üzemeltetés, Nextcloud, Immich, Magyarország"',
'content="home server, own cloud, self-hosting, Google Drive alternative, iCloud alternative, privacy, open source, server installation, server management, Nextcloud, Immich, Hungary"'),
('<link rel="canonical" href="https://felhom.eu/">', '<link rel="canonical" href="https://felhom.eu/en/">'),
('<meta property="og:url" content="https://felhom.eu/">', '<meta property="og:url" content="https://felhom.eu/en/">'),
('<meta property="og:title" content="Felhom.eu — Saját felhőd, saját szabályaid">', '<meta property="og:title" content="Felhom.eu — Your own cloud, your own rules">'),
('<meta property="og:description" content="Otthoni szerver a te otthonodban: fényképek, dokumentumok, médiatár — automatikus mentéssel, és egy helyreállítási kóddal, amit csak te ismersz. Most zárt teszt indul.">',
'<meta property="og:description" content="A home server in your own home in Hungary: photos, documents, media — with automatic backups and a recovery code only you know. A closed test is starting now.">'),
('<meta property="og:image" content="https://felhom.eu/assets/og-image.png">', '<meta property="og:image" content="https://felhom.eu/assets/og-image-en.png">'),
('<meta property="og:image:alt" content="Felhom.eu — Saját felhőd, saját szabályaid. Zárt teszt indul.">', '<meta property="og:image:alt" content="Felhom.eu — Your own cloud, your own rules. Closed test starting.">'),
('<meta property="og:locale" content="hu_HU">', '<meta property="og:locale" content="en_GB">'),
('<meta name="twitter:title" content="Felhom.eu — Saját felhőd, saját szabályaid">', '<meta name="twitter:title" content="Felhom.eu — Your own cloud, your own rules">'),
('<meta name="twitter:description" content="Otthoni szerver a te otthonodban: fényképek, dokumentumok, médiatár — automatikus mentéssel, és egy helyreállítási kóddal, amit csak te ismersz.">',
'<meta name="twitter:description" content="A home server in your own home in Hungary: photos, documents, media — with automatic backups and a recovery code only you know.">'),
('<meta name="twitter:image" content="https://felhom.eu/assets/og-image.png">', '<meta name="twitter:image" content="https://felhom.eu/assets/og-image-en.png">'),
('"description": "Professzionális otthoni szerver telepítés és üzemeltetés Magyarországon.",', '"description": "Professional home server installation and management in Hungary.",'),
('"name": "Magyarország"', '"name": "Hungary"'),
('"serviceType": ["Szerver telepítés", "Szerver üzemeltetés", "Self-hosting"],', '"serviceType": ["Server installation", "Server management", "Self-hosting"],'),
]
BODY = [
("<h1>Saját felhőd,<br><span>saját szabályaid</span></h1>", "<h1>Your own cloud,<br><span>your own rules</span></h1>"),
("<p>Professzionális otthoni szerver telepítés és üzemeltetés. Te irányítasz, mi segítünk.</p>",
"<p>Professional home server installation and management, for households in Hungary. You are in charge; we help.</p>"),
('<a href="#zart-teszt" class="cta-button">Jelentkezem tesztelőnek →</a>', '<a href="#closed-test" class="cta-button">I want to be a tester →</a>'),
('alt="Felhom.eu - Otthoni szerver szolgáltatás"', 'alt="Felhom.eu - home server service"'),
('id="mit-tud"', 'id="what-it-does"'),
("<h2>Mit tud <span>a doboz ma?</span></h2>", "<h2>What the box <span>does today</span></h2>"),
("<p>Nem terv, nem ígéret — ezek ma működő funkciók egy éles Felhom dobozon</p>", "<p>Not a plan, not a promise — these work today on a live Felhom box</p>"),
("Fényképek, dokumentumok, média</h3>", "Photos, documents, media</h3>"),
("<p>A telefonod fotói automatikusan feltöltődnek a saját gépedre. A beszkennelt papírjaidat a rendszer felismeri és kereshetővé teszi. A filmjeid, zenéid böngészőből és mobil appból is mennek.</p>",
"<p>Your phone's photos upload to your own machine on their own. Your scanned papers are read and made searchable. Your films and music play in the browser and in mobile apps.</p>"),
("Hálózati megosztás</h3>", "Network shares</h3>"),
("<p>A doboz mappái megjelennek a Windows Intézőben és a Mac Finderben — úgy húzod rájuk a fájlokat, mint bármelyik másik mappára. Megosztásonként beállítható, hogy csak olvasható legyen.</p>",
"<p>The box's folders appear in Windows File Explorer and the Mac Finder — you drag files onto them like onto any other folder. Each share can be set to read-only.</p>"),
("Háromszintű automatikus mentés</h3>", "Automatic backups on three levels</h3>"),
("<p>Minden éjjel készül egy mentés a dobozon, egy másodpéldány egy második meghajtóra (ha van), és egy titkosított másolat egy távoli tárhelyre. A megosztott mappáid a második meghajtón és a távoli másolatban is benne vannak.</p>",
"<p>Every night the box makes a backup on the box, a second copy on a second drive (if there is one), and an encrypted copy on remote storage. Your shared folders are in the second-drive copy and in the remote copy too.</p>"),
("Helyreállítási kód, amit csak te ismersz</h3>", "A recovery code only you know</h3>"),
("<p>A távoli mentésed titkosításának kulcsa egy helyreállítási kód, ami pontosan egyszer jelenik meg — a te képernyődön. Mi nem ismerjük, és nem tudjuk visszaállítani. Ez azt is jelenti, hogy a kód nélkül a távoli mentés nekünk sem olvasható: tedd el jól.</p>",
"<p>The key to your remote backup's encryption is a recovery code that appears exactly once — on your screen. We do not know it and cannot recreate it. That also means that without the code, we cannot read the remote backup either: keep it somewhere safe.</p>"),
("56 telepíthető alkalmazás</h3>", "56 apps to install</h3>"),
("<p>A vezérlőpultból telepíthetők, pár kattintással — parancssor nélkül. Szinte mind nyílt forráskódú (a kivételeket az alkalmazások oldalán jelöljük), és mind a te gépeden fut.</p>",
"<p>You install them from the Dashboard in a few clicks — no command line. Almost all of them are open source (the exceptions are marked on the apps page), and every one runs on your machine.</p>"),
("Távoli felügyelet, automatikus frissítés</h3>", "Remote monitoring, automatic updates</h3>"),
("<p>Figyeljük a doboz állapotát. A vezérlőpult magától frissül a legutóbbi kiadásra, és a doboz rendszere is megkapja a biztonsági frissítéseket — neked nem kell csinálnod semmit. Ha valami elromlik, mi látjuk.</p>",
"<p>We watch how the box is doing. The Dashboard updates itself to the latest release, and the box's system gets its security updates too — you do not have to do anything. If something breaks, we see it.</p>"),
("Óvatos alkalmazásfrissítés</h3>", "Careful app updates</h3>"),
("<p>Egy alkalmazás új verziója csak akkor jut el hozzád, ha előbb kipróbáltuk. Frissítés előtt friss mentés készül, és ha az új verzió nem indul el rendesen, a doboz magától visszaállítja az előzőt, az adataiddal együtt.</p>",
"<p>A new version of an app reaches you only after we have tried it. Before the update the box makes a fresh backup, and if the new version does not start properly, the box puts the previous one back by itself, with your data.</p>"),
("Magyarul vagy angolul</h3>", "In English or Hungarian</h3>"),
("<p>A vezérlőpult magyarul és angolul is használható. A nyelvet a háztartás választja, és a dobozról érkező e-mailek is ezt a nyelvet követik.</p>",
"<p>The Dashboard works in English and in Hungarian. The household picks the language, and the e-mails about the box follow it.</p>"),
("Internetkimaradáskor is működik</h3>", "Works when the internet is down</h3>"),
("<p>A doboz az otthonodban van. Ha elmegy a net, az otthoni hálózaton továbbra is eléred a fotóidat és a fájljaidat — nem egy távoli szolgáltató engedélyétől függenek.</p>",
"<p>The box is in your home. If the internet goes down, you still reach your photos and files on your home network — they do not depend on a faraway provider's permission.</p>"),
("Visszaállítás, ha baj van</h3>", "Restore when something goes wrong</h3>"),
("<p>Egy törölt fájl visszahozható a mentésből. Ha maga a doboz megy tönkre, az újratelepített rendszerre a titkosított távoli mentésből visszahozhatók az alkalmazásaid adatai — a helyreállítási kóddal.</p>",
"<p>A deleted file can be brought back from the backup. If the box itself breaks, your apps' data can be brought back from the encrypted remote backup onto the reinstalled system — with the recovery code.</p>"),
("<h2>Miért ne a <span>felhőszolgáltatók?</span></h2>", "<h2>Why not the <span>cloud providers?</span></h2>"),
("<p>A nagy techcégek kényelmes megoldásokat kínálnak, de van néhány hátrány...</p>", "<p>The big tech companies offer convenient services, but there are some downsides...</p>"),
("<h3>Folyamatos költségek</h3>", "<h3>Costs that never stop</h3>"),
("<p>Havonta fizetsz a tárhelyért, a prémium funkciókért, és az árak csak nőnek idővel.</p>", "<p>You pay every month for storage and premium features, and the prices only go up.</p>"),
("<h3>Adataid másé</h3>", "<h3>Your data, in someone else's hands</h3>"),
("<p>A fotóid, dokumentumaid, személyes adataid idegen szervereken vannak, idegen kezekben.</p>", "<p>Your photos, documents and personal data sit on other people's servers, in other people's hands.</p>"),
("<h3>Korlátozott kontroll</h3>", "<h3>Limited control</h3>"),
("<p>Nem te döntöd el, milyen szolgáltatásokat használsz, és mikor szűnnek meg.</p>", "<p>You do not decide which services you get, or when they are switched off.</p>"),
('id="miert"', 'id="why"'),
("<h2>Miért válaszd a <span>saját szervered?</span></h2>", "<h2>Why choose <span>your own server?</span></h2>"),
("<p>Az előnyök, amik miatt megéri</p>", "<p>What makes it worth it</p>"),
("Teljes adatvédelem</h3>", "Privacy</h3>"),
("<p>Az adataid a te otthonodban maradnak, nem a Google vagy a Microsoft szerverein. A távoli mentésbe csak titkosítva kerülnek.</p>",
"<p>Your data stays in your home, not on Google's or Microsoft's servers. It goes into the remote backup only encrypted.</p>"),
("Egyszeri befektetés</h3>", "A one-off investment</h3>"),
("<p>A gép a tiéd, örökre. Nincs tárhely-előfizetés, ami évről évre drágul: az áramot fizeted, és ha kéred, az üzemeltetést.</p>",
"<p>The machine is yours, for good. No storage subscription that gets dearer every year: you pay for the electricity and, if you want it, for the management.</p>"),
("Korlátlan kapacitás</h3>", "Room to grow</h3>"),
("<p>Nincs 15GB-os limit. Bővítheted ahogy nőnek az igényeid - TB-okkal, ha kell.</p>", "<p>No 15 GB limit. Add space as your needs grow — terabytes, if you need them.</p>"),
("Teljes kontroll</h3>", "Full control</h3>"),
("<p>Te döntöd el, milyen szolgáltatásokat futtatsz. Te vagy a főnök, nem a szolgáltató.</p>", "<p>You decide which services you run. You are the boss, not the provider.</p>"),
('id="hogyan-mukodik"', 'id="how-it-works"'),
("<h2>Hogyan <span>működik?</span></h2>", "<h2>How it <span>works</span></h2>"),
("<p>5 egyszerű lépés az indulástól a működő rendszerig</p>", "<p>Five simple steps from the start to a working system</p>"),
("<h3>Egyeztetés</h3>", "<h3>A first talk</h3>"),
("<p>Megbeszéljük az igényeidet: milyen alkalmazásokra van szükséged, és mekkora tárhelyet szeretnél.</p>", "<p>We talk about what you need: which apps, and how much storage.</p>"),
("<h3>Hardver kiválasztás</h3>", "<h3>Choosing the hardware</h3>"),
("<p>Segítünk megtalálni a legjobb ár-érték arányú gépet, ami az igényeidnek megfelel.</p>", "<p>We help you find the machine with the best value for what you need.</p>"),
("<h3>Telepítés</h3>", "<h3>Installation</h3>"),
("<p>Feltelepítjük és bekonfiguráljuk az alkalmazásokat, a mentéseket, és a monitoringot.</p>", "<p>We install and set up the apps, the backups and the monitoring.</p>"),
("<h3>Átadás</h3>", "<h3>Handover</h3>"),
("<p>Bemutatjuk a rendszert, segítünk áthozni a meglévő adataidat, és válaszolunk minden kérdésedre.</p>", "<p>We show you the system, help you bring over your existing data, and answer all your questions.</p>"),
("<h3>Üzemeltetés</h3>", "<h3>Running it</h3>"),
("<p>Figyeljük a rendszert, frissítünk, mentéseket ellenőrzünk. Te csak használod.</p>", "<p>We watch the system, update it and check the backups. You just use it.</p>"),
('id="szolgaltatasok"', 'id="services"'),
("<h2>Mit kapsz <span>tőlünk?</span></h2>", "<h2>What you get <span>from us</span></h2>"),
("<p>Kulcsrakész megoldások, professzionális kivitelezéssel</p>", "<p>Turnkey solutions, done professionally</p>"),
("<h3>Szerver beszerzés és beüzemelés</h3>", "<h3>Buying and setting up the server</h3>"),
("<p>Segítünk kiválasztani az igényeidnek megfelelő hardvert, és mindent beállítunk.</p>", "<p>We help you choose the right hardware for your needs, and we set everything up.</p>"),
("<h3>Alkalmazás telepítés</h3>", "<h3>Installing apps</h3>"),
("<p>Nextcloud, Plex, Jellyfin, Home Assistant, és még sok más - amit csak szeretnél.</p>", "<p>Nextcloud, Plex, Jellyfin, Home Assistant and many more — whatever you want.</p>"),
("<h3>Biztonságos távoli elérés</h3>", "<h3>Safe remote access</h3>"),
("<p>Bárhonnan elérheted a szervereidet, biztonságosan, titkosított kapcsolaton keresztül.</p>", "<p>Reach your server from anywhere, safely, over an encrypted connection.</p>"),
("<h3>Automatikus mentések</h3>", "<h3>Automatic backups</h3>"),
("<p>Rendszeres, automatikus mentések három szinten: a dobozon, egy második meghajtón és titkosítva egy távoli tárhelyen.</p>",
"<p>Regular, automatic backups on three levels: on the box, on a second drive, and encrypted on remote storage.</p>"),
("<h3>Támogatás és karbantartás</h3>", "<h3>Support and maintenance</h3>"),
("<p>Ha bármi gond van, itt vagyunk. Rendszeres frissítések, proaktív monitoring.</p>", "<p>If anything goes wrong, we are here. Regular updates, proactive monitoring.</p>"),
('id="alkalmazasok"', 'id="apps"'),
("<h2>Telepíthető <span>Alkalmazások</span></h2>", "<h2>Apps to <span>install</span></h2>"),
("<p>Nyílt forráskódú szoftverek, amiket a saját szervereden futtathatsz</p>", "<p>Software you run on your own server, almost all of it open source</p>"),
("<h3>Fájlkezelés</h3>", "<h3>Files</h3>"),
("<h3>Fotók & Média</h3>", "<h3>Photos & Media</h3>"),
("<h3>Média Automatizáció</h3>", "<h3>Media automation</h3>"),
("<h3>Dokumentumok</h3>", "<h3>Documents</h3>"),
("<h3>Biztonság</h3>", "<h3>Security</h3>"),
("<h3>Otthon & Életmód</h3>", "<h3>Home & Lifestyle</h3>"),
("<h3>Utazás & Szabadidő</h3>", "<h3>Travel & Leisure</h3>"),
("<h3>Dashboard</h3>\n <p>Homepage", "<h3>Start pages</h3>\n <p>Homepage"),
("<h3>Játékok</h3>", "<h3>Games</h3>"),
("<h3>Fejlesztőknek</h3>", "<h3>For developers</h3>"),
("<strong>56</strong> alkalmazás — szinte mind <strong>nyílt forráskódú</strong>", "<strong>56</strong> apps — almost all of them <strong>open source</strong>"),
('<a href="/alkalmazasok" class="cta-button-secondary">', '<a href="/en/apps" class="cta-button-secondary">'),
("Összes alkalmazás megtekintése →", "See all apps →"),
('id="technologiak"', 'id="technology"'),
("<h2>Professzionális <span>Technológiák</span></h2>", "<h2>Professional <span>technology</span></h2>"),
("<p>Ipari szintű megoldások, otthoni környezetben</p>", "<p>Industry-grade tools, at home</p>"),
("<h3>Konténerek</h3>", "<h3>Containers</h3>"),
("<p>Docker alapú, izolált alkalmazás futtatás</p>", "<p>Each app isolated, on Docker</p>"),
("<h3>Vezérlőpult</h3>", "<h3>Dashboard</h3>"),
("<p>Magyar vagy angol kezelőfelület</p>", "<p>An interface in English or Hungarian</p>"),
("<p>Stabil virtualizációs alap</p>", "<p>A stable virtualisation base</p>"),
("<h3>Háromszintű mentés</h3>", "<h3>Three-level backups</h3>"),
("<p>A dobozon, második meghajtón, titkosítva távol</p>", "<p>On the box, on a second drive, encrypted far away</p>"),
("<h3>Hálózat</h3>", "<h3>Network</h3>"),
("<p>HTTPS, titkosított alagút, nyitott port nélkül</p>", "<p>HTTPS, an encrypted tunnel, no open port</p>"),
("<h3>Tárolás</h3>", "<h3>Storage</h3>"),
("<p>SSD + HDD, második meghajtó a mentéseknek</p>", "<p>SSD + HDD, a second drive for backups</p>"),
("<h3>Hardver</h3>", "<h3>Hardware</h3>"),
("<p>Mini PC-től rack szerverig</p>", "<p>From a mini PC to a rack server</p>"),
('Az igényeidhez igazítjuk — a <strong style="color: var(--text-1);">legegyszerűbbtől</strong> a <strong>legkomolyabbig</strong>',
'Matched to your needs — from the <strong style="color: var(--text-1);">simplest</strong> to the <strong>most serious</strong>'),
('<a href="/technologiak" class="cta-button-secondary">', '<a href="/en/technology" class="cta-button-secondary">'),
("Technológiákról bővebben →", "More about the technology →"),
('id="mentesek"', 'id="backups"'),
("<h2>Adataid <span>biztonságban</span></h2>", "<h2>Your data, <span>kept safe</span></h2>"),
("<p>A nagy felhőszolgáltatók milliókat költenek arra, hogy az adataid ne vesszenek el. De tudtad, hogy ugyanezt az otthoni szerveredről is elérheted?</p>",
"<p>The big cloud providers spend millions so that your data is not lost. Did you know you can get the same from your home server?</p>"),
("<p>A 3-2-1 mentési szabályt követve professzionális szintű adatbiztonságot építünk fel – egy katasztrófa után is marad egy titkosított másolat, távol az otthonodtól.</p>",
"<p>Following the 3-2-1 backup rule, we build professional-grade data safety – after a disaster there is still an encrypted copy, far from your home.</p>"),
('<a href="/biztonsagimentes" class="cta-button-secondary">', '<a href="/en/backups" class="cta-button-secondary">'),
("Mentési stratégia részletei →", "The backup strategy in detail →"),
("<h4>Három másolat</h4>", "<h4>Three copies</h4>"),
("<p>Eredeti + két biztonsági mentés</p>", "<p>The original + two backups</p>"),
("<h4>Két tárolótípus</h4>", "<h4>Two kinds of storage</h4>"),
("<p>Különböző eszközökön tárolva</p>", "<p>Kept on different devices</p>"),
("<h4>Egy távoli helyen</h4>", "<h4>One far away</h4>"),
("<p>Offsite backup a biztonság érdekében</p>", "<p>An off-site backup, to be safe</p>"),
('id="zart-teszt"', 'id="closed-test"'),
("<h2>Zárt <span>teszt</span></h2>", "<h2>Closed <span>test</span></h2>"),
("<p>Néhány magyar háztartással most kezdjük el élesben használni a rendszert</p>", "<p>We are starting to use the system for real with a few households in Hungary</p>"),
("Valódi használat</h3>", "Real use</h3>"),
("<p>Nem demó: a doboz nálad marad, és az igazi fényképeidet, dokumentumaidat teszed rá. Segítünk a telepítésben és az átállásban, utána te használod a mindennapokban.</p>",
"<p>Not a demo: the box stays with you, and you put your real photos and documents on it. We help with the installation and the move, and then you use it every day.</p>"),
("Visszajelzés</h3>", "Feedback</h3>"),
("<p>Cserébe azt kérjük, hogy mondd el, mi zavaró, mi érthetetlen, mi nem működik. Egy „ezt a gombot nem találtam\" ér nekünk a legtöbbet — abból tudjuk, mit kell kijavítani.</p>",
"<p>In return we ask you to tell us what annoys you, what is unclear and what does not work. An \"I couldn't find this button\" is worth the most to us — it tells us what to fix.</p>"),
("Ismert korlátok</h3>", "Known limits</h3>"),
("<p>Őszintén: a vezérlőpulthoz jelenleg <strong>egy közös háztartási jelszó</strong> tartozik, külön családtagi fiókok még nincsenek (az egyes alkalmazásoknak viszont saját felhasználóik lehetnek). A <strong>TV-re streamelés (DLNA)</strong> még nincs: egyelőre böngészőből és mobil appból megy a médiatár. És mivel ez teszt, számíts arra, hogy találsz hibát — ez a lényege.</p>",
"<p>Honestly: the Dashboard has <strong>one shared household password</strong> today; there are no separate accounts for family members yet (each app can have its own users, though). <strong>Streaming to the TV (DLNA)</strong> is not there yet: for now the media library plays in the browser and in mobile apps. And because this is a test, expect to find bugs — that is the point.</p>"),
("Ha ez érdekel, írj — <strong>nem kötelez semmire</strong>, először csak beszélgetünk", "If this interests you, write to us — <strong>it commits you to nothing</strong>, first we just talk"),
('<a href="/kapcsolat?tema=zart-teszt" class="cta-button">', '<a href="/en/contact?tema=zart-teszt" class="cta-button">'),
("Jelentkezem tesztelőnek →\n", "I want to be a tester →\n"),
('id="kapcsolat"', 'id="contact"'),
("<h2>Érdekel? <span>Beszéljünk!</span></h2>", "<h2>Interested? <span>Let's talk!</span></h2>"),
('<a href="/kapcsolat" class="contact-link">', '<a href="/en/contact" class="contact-link">'),
("Kapcsolatfelvételi űrlap</a>", "Contact form</a>"),
]
for old, new in HEAD + BODY:
s = sub1(s, old, new)
s = finish_en(s, "/", "/en/", None)
write("en/index.html", s)
print("written en/index.html")