Mesogeiako — Erhvervsuddannelsescenter & specialbygget CMS
Overblik
Mesogeiako er et godkendt center for livslang læring og erhvervsuddannelse i Thessaloniki, og sitet var vokset op på WordPress og BeThemes page builder. Genopbygningen beholder alt indholdet og intet af platformen. Den er ren PHP 8.5 på MySQL — en front controller, en autoloader på femten linjer, intet framework, ingen Composer og intet build — omkring fem tusind linjer kildekode og to tusind linjer skabeloner. Græsk er standard, og engelsk ligger under /en/, og ligestillingen mellem sprogene er strukturel frem for eftermonteret: hvert projekt, hver nyhed og hver side er en række med én oversættelsesrække pr. sprog, slugs ligger på oversættelsen, så græske sider beholder græsk-afledte URL'er, og et tredje sprog ville ikke kræve nogen skemaændring. Migreringen er kode, ikke en engangseksport. Enogtyve ordnede, gentagelige trin genopbygger hele sitet fra WordPress-kilden — de læser Muffin Builder-indholdet, fjerner standardtekst, normaliserer overskrifter, fletter dublerede nyheder og trækker indlejrede data-URI-billeder ud i filer — og flytter 33 projekter, 90 nyheder og 20 sider over på begge sprog, med 798 omdirigeringer, så gamle links lander på deres nye sider. Hvert billede i mediebiblioteket er en WebP under 200 KB: kvaliteten trappes ned fra 82 til 40, derefter skrumper dimensionerne, indtil det passer, og originalen slettes. Adminen giver centret dets projekter, nyheder og sider på begge sprog i TinyMCE, et mediebibliotek, kontaktoplysninger samt forsidens tællere og blokke. De strukturerede data rummer postadresse, virksomhedsregistreringsnummer og åbningstider — tre oplysninger, som det gamle site offentliggjorde i en footer-widget i temaet, hvor intet indlæg og ingen importer kunne se dem.
Udfordringer
WordPress havde gemt nogle af fakta. Postadressen, virksomhedsregistreringsnummeret og åbningstiderne lå i en footer-widget i temaet i stedet for i et indlæg, så en indholdseksport så dem aldrig, og det andet telefonnummer modsagde sig selv tre steder på det gamle site. Græske URL'er brød også det oplagte databasedesign: procentkodede løber de jævnligt over 191 tegn med lange fælles præfikser, så et præfiksindeks afviser reelt forskellige adresser som dubletter. Og en tosproget editor har en stille fejltilstand — en gemning, der udelader ét sprog, kan ikke skelnes fra en, der bevidst tømmer det.
Løsninger
Hver rettelse er sit eget nummererede migreringstrin, så en frisk genopbygning fra WordPress gengiver det telefonnummer, kunden har bekræftet, og den genfundne adresse i stedet for at genimportere de gamle fejl. Omdirigeringer er unikke på en SHA-256-hash af den gamle sti frem for et præfiks. Hvert arkivsegment opløses kun på sit eget sprog, så et element ikke lever på to URL'er og deler sin egen placering. Hver oversættelsesformular sender en tilstedeværelsesmarkør pr. sprog — det er den, der lader et manglende sprog betyde »urørt« frem for »slet« — og adminens smoke-testsuite har en regressionstest for det. Filnavne NFC-normaliseres før translitteration, fordi macOS og Linux gemmer det samme græske navn som forskellige bytes.
Galleri

Forside — Centrets Godkendelse Forrest, Projekterne Ét Klik Væk

Projekter — Aktuelle og Tidligere, Ét Klik fra Hinanden

Projektsider — Tekst i Fuld Bredde, Skrevet og Formateret af Centret

Nyheder — Halvfems Artikler Overført fra WordPress, på Begge Sprog

Selvlæringsværktøjer — Guides og Materialer i Ét Indeks

Om Os — Godkendelser, Registre og Europæiske Netværk i Én Læsning

Kontakt — E-mail, Begge Telefonnumre og Adressen på Fire Kort

Forside — Strategi, Certificeringer og Læringsværktøjer Under Velkomsten

Aktive Projekter — Centrets Aktuelle Arbejde, med Plakaten Først

Meddelelser — Hvem Kan Søge, og Hvem Man Ringer Til, med Ét Blik

Målgrupper — Hvem Centret Uddanner, Klart Opstillet

Vores Aktiviteter — Interreg, Erasmus+ og ESPA, Hver Ét Tryk Væk

Forsiden på Mobilen — Ring eller Skriv, Før du Overhovedet Scroller

Mobilmenuen — Seks Afsnit, Hvert Stort Nok at Trykke På

Forsidens Tællere — Fire Tal, Centret Selv Redigerer

Den Engelske Side — Samme Arkiv på Egne URL'er

Nyheder på Mobilen — Dato, Overskrift og Resumé, Lige til at Læse

Selvlæring på Mobilen — Én Guide pr. Kort, Nem at Trykke På

Kontakt på Mobilen — Tryk for at Skrive, Tryk for at Ringe
Backoffice

Dashboardet — Hvad Centret Udgiver, og Hvilke Oversættelser der Mangler eller Venter på Tjek

Projekter — Sprog, Underprojekter og Utjekkede Oversættelser i Hver Række

Editoren — Græske og Engelske Faner, SEO-felter, Rich Text

Tællere — Forsidens Tal, Redigeret på Begge Sprog

Kontaktoplysninger — Én Formular, To Sprog, Vist på Hele Sitet

Medier — Hvert Billede Konverteret til WebP Under 200 KB