Features #93
öppenExportera flerspråkiga översättningspaket
100%
Beskrivning
Relaterat till #12.
Mål
Göra export och återimport säker och lättbegriplig för översättare genom att visa originaltext och översättningar i separata språk-kolumner.
Föreslagen lösning
- Exportdialogen låter användaren välja ett referensspråk och ett eller flera målspråk.
- Referensspråket visas som låst original och får inte skrivas tillbaka vid normal översättningsimport.
- CSV använder ett brett, människoläsbart format med scope, key, referenstext och en tydligt namngiven kolumn per valt målspråk.
- Tomma målceller visar vilka översättningar som återstår utan att originaltexten behöver ersättas.
- JSON speglar samma struktur för maskinell hantering.
- Exporten innehåller formatversion, valda språk och kontrollvärden så att en gammal fil inte skriver över nyare ändringar utan konfliktvarning.
- Importens förhandsgranskning visar per språk vad som är oförändrat, nytt, ändrat, ogiltigt eller i konflikt.
- Användaren väljer uttryckligen vilka målspråkskolumner som ska appliceras.
Exempel på CSV-kolumner
scope, key, original_sv-SE, translation_en-US, translation_de-DE
Acceptanskriterier
- Referensspråk och flera målspråk kan väljas före export.
- Originaltexten finns kvar i en separat kolumn under översättningen.
- Återimport ändrar endast uttryckligen valda målspråk och aldrig referensspråket av misstag.
- Ändrade källtexter eller måltexter sedan export identifieras som konflikter.
- Platshållare som {profile} och {template} valideras mellan original och översättning.
- CSV bevarar UTF-8, svenska tecken och fungerar i vanliga kalkylprogram.
- Rundtur export, redigering, förhandsgranskning och import täcks av regressionstest.
Acceptanskriterier
Referensspråk och flera målspråk kan väljas. Återimport ändrar endast uttryckligen valda målspråk, stoppar stale konflikter och validerar platshållare. CSV/JSON-rundtur bevarar UTF-8 och täcks av regression.
Testresultat
Serververifierat efter deploy av 57f67a2: i18n-admin 11/11 PASS på 1,2 s. CSV använder endast DO_NOT_EDIT_reference_hash och DO_NOT_EDIT_translation_hash_<språk>; legacykompatibilitet är borttagen. Flerspråkighet, originalskydd, konflikter, platshållare, JSON/CSV och auditlogg passerar.