Autor Zpráva
Tori
Profil
Pěkný večer,
po delší době zas něco zkouším napsat a hodila by se mi rada/zkušenost:

Jde o web, kde jsou nějaké texty (např. popisy a rozlišovací znaky jednotlivých plemen koček), které jsou jednou zadané v originálu, a pak k nim můžou uživatelé vytvořit vlastní překlady do jiných jazyků. DB vypadá asi takhle:
tab. plemena
- id
- id_lang (= ID jazyka originálu)
- nějaké další nepřekládané údaje

tab. plemena_překlad - pro každý záznam z tab. plemena existuje alespoň jeden záznam tady
- id_plemena, id_lang (PK)
- název, popis, ... (lokalizované sloupce).

tab. překlady - údaje o překladech
- id
- id_plemena, id_lang (unik. klíč)
- id_překladatele
Nevím, jak zjistit, že autor textů v originálním jazyce některé řetězce upravil a upozornit autora překladu, které přesně to byly. Pro obecnou změnu originálu stačí ukládat datum poslední změny, ale chtěla bych to zjistit přesně. Napadlo mě jedině ukládat hash řetězců, s tím že by se u překladu ukládal hash originálu (v té době, kdy se z něj překládalo), který bych pak porovnávala. Ale nenapadl mi k tomu slušný návrh DB. Anebo nějaká logovací tabulka (ID jazyka, ID plemene, ID řetězce, hash), ale to je taky nešikovné.

Znáte na tohle nějaký standardní (a/nebo vyzkoušený) postup? Díky moc.
Str4wberry
Profil
Co nastavit překladům nějaký příznak, který se změnou originálu přenastaví, a bude tak jasné, že se mají překlady revidovat?
Tori
Profil
To ano, ale ten příznak by musely mít jednotlivé sloupce z několika překladových tabulek. Možná po změně originálu uložit nějaké CSV s unikátními názvy změněných sloupců? Ještě pouvažuju, díky.
juriad
Profil
Tori:
A proč neuděláš obecné verzování?

Do tabulky plemena_překlad přidáš sloupec verze INT, který bude součástí PK. Pak úprava primárního záznamu bude INSERT se o jedničku zvýšeným version.
Překlad je aktuální, pokud má stejnou version jako primární záznam. Můžeš snadno získat informace o aktuálním i historickém (z doby překladu) primárním záznamu. A ty pak porovnat v PHP.

Překladatel bude mít možnosti při neaktuáním záznamu:
- upravit a uložit - vygeneruje nový záznam s verzí rovnou verzi primárního záznamu.
- bump - updatne verzi překladu na verzi primárního záznamu (zásah do překladu nebyl potřeba, třeba při opravě překlepu).
při aktuálním:
- upravit a uložit - updatne překladový záznam; nezmění verzi, protože je aktuální.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: