# Har flyttet hver brugervendt streng ud af Python og ind i et indholdstræ på 873 filer på tre sprog, efter at have fundet døde oversættelser, ingen kunne se var døde, og et tjek, der i stilhed bedømte en tredjedel af achievements.

2025

**Situation.** Hver brugervendt streng i generatoren — hver bedrift, hver anmeldelse, hver afsnitsoverskrift, hvert resumé, på tre sprog — lå inde i Python‑kildekode. Det gør redigeringen af en sætning til en kodeændring, gør gennemgangen af en oversættelse til en diff mod kildekode og gør det umuligt at se med et blik, om et sprog er komplet. Det skjuler også den fejltilstand, der betyder noget: en oversættelse kan være til stede, forkert og uopnåelig på samme tid.

**Opgave.** Strengene skulle flyttes ud af koden og ind i et indholdstræ, der kan tælles, sammenlignes på tværs af sprog og tjekkes uden at køre gengiveren.

**Handling.** Resultatet er 873 filer under en indholdsmappe, ordnet efter art og derefter efter sprog: bedrifter, anmeldelser, resuméer, titler, virksomheder, regioner, kategorier, ydelser, profiler, referencer og ansøgningsbrudstykker. Tabulatorseparerede filer, hvor enheden er en linje med en identifikator, enkeltfiler hvor enheden er et afsnit. Indlæseren læser dem ved bygningstid, og databasen samles ud fra dem, så træet er kilden og databasen er afledt. To fund kom direkte ud af at kunne tælle. Nogle oversatte strenge havde ikke længere nogen engelsk modpart — døde poster, som intet gengav, og som ingen kunne have bemærket, mens de var indlejret i kode, for en urefereret ordbogsnøgle ser præcis ud som en refereret. Og et indholdstjek, der skulle bedømme hver bedrift, læste kun den delmængde, det kunne opløse, bedømte syvogtredive ud af treoghalvfems og meldte succes. At gøre korpusset til en mappe gjorde begge dele synlige som en uoverensstemmelse i filtal.

**Resultat.** Prosaen kan nu redigeres uden at røre kode og sammenlignes på tværs af sprog ved at tælle. Prisen er, at tilføjelsen af et sprog nu er utvetydig frem for gradvis — træet gør et ufuldstændigt sprog åbenlyst, hvilket er pointen, men det betyder også, at delvise oversættelser ikke kan udsendes stille, mens de færdiggøres.

---

- Rolle: Databaseingeniør
- Kategorier: [Backend‑udvikling](https://engineer.company/da/categories/backend/), [Data governance](https://engineer.company/da/categories/data-governance/), [Migrering & modernisering](https://engineer.company/da/categories/migration/), [Python](https://engineer.company/da/categories/python/), [Internationalisering](https://engineer.company/da/categories/i18n/), [Dokumentation](https://engineer.company/da/categories/documentation/)
- Ydelser: [Backend- & API‑udvikling](https://engineer.company/da/services/backend-development/), [Internationalisering & lokalisering](https://engineer.company/da/services/i18n-localization/), [Databasemigrering & modernisering](https://engineer.company/da/services/database-migration/), [Data governance & datakvalitet](https://engineer.company/da/services/data-governance/)

<https://engineer.company/da/portfolio/moved-every-user-facing-string-into-a-content-tree-152/>
