nerdvana-ro / varena-abandoned

Varena is a website program for hosting programming problems.
GNU Affero General Public License v3.0
6 stars 5 forks source link

messages.po trebuie să-și păstreze ordinea #12

Open CatalinFrancu opened 10 years ago

CatalinFrancu commented 10 years ago

În prezent, orice nou mesaj localizat în messages.po întoarce complet pe dos ordinea acelui fișier (vezi de exemplu eab2791b41f4dc443ec53213bb2fa95b34caec6e). Din cauza asta, este foarte greu să vezi ce s-a adăugat / modificat / șters. Cum toate commit-urile vor introduce câteva mesaje, eroarea asta va polua toate pull requesturile până o reparăm.

Trebuie cumva convins poedit să păstreze ordinea mesajelor. Nu știu dacă se poate. Dacă nu, ne trebuie o unealtă scrisă de noi (sau poate există deja) care să reordoneze fișierul. Atunci localizarea mesajelor ar consta dintr-un pas în plus, invocarea acestei unelte.

ZNickq commented 10 years ago

Nu am reusit sa gasesc nimic care sa rezolve problema asta, dar nici nu am reusit sa gasesc lume care sa se planga :-? Poate commitul ala a fost un incident izolat? in testele mele locale se pastreaza ordinea (poedit creeaza un ID si se tine de el de oricate ori redeschid catalogul) e ciudat ca nu stiu ce ar fi putut cauza schimbarile din commitul Anastasiei totusi...

Putem face lejer un script care sa ordoneze alfabetic, dar nu stiu daca e necesar.. Sortam po-ul alfabetic, si rulam "msgfmt messages.po" pentru a crea fisierul mo :)

CatalinFrancu commented 10 years ago

Eu pățesc asta întotdeauna. Hai că sap și eu un pic, nu te apuca de codat până nu știm sigur că nu se poate altfel. M-aș mira să fim noi primii cu problema asta.

O eventuală unealtă ar trebui să sorteze blocuri de linii, că au și comentarii pe lângă. Și să țină secțiunea inițială pe loc. E cam scârbos, aș prefera să facem munca pentru varena, nu pentru unelte conexe. :)

CatalinFrancu commented 10 years ago

Nu găsesc nimic util. Bine, și poedit pare o unealtă cam imatură. Văd trei variante:

  1. O lăsăm așa. :-)
  2. Adăugăm la tools/git-hooks/pre-commit.php o bucată de cod care execută msgcat ca să se asigure că fișierul este ordonat. Dacă nu, dă eroare și refuză commit-ul.
  3. Marcăm fișierul .po ca binar. Atunci măcar scăpăm de diff-ul uriaș. Dezavantajul este că la git pull vor apărea conflicte nerezolvabile (nu mai poate fi invocat un 3-way diff).
ZNickq commented 10 years ago

Si la varianta 2 care e solutia ca sa dai push? editeaza ei manual fisierul si compileaza? ar fi o bataie de cap destul de mare, mai ales ca fisierul o sa se tot mareasca..si nici conflictele nerezolvabile nu sunt mai bune :-?

http://stackoverflow.com/a/8553267 Cum e asta? In comentarii scrie "diff controls whether git attempts to show a textual diff for the file", daca github urmeaza setarea asta, pur si simplu nu il va mai arata vizual, dar merge va continua sa functioneze, pare ideal.

Sau am putea sa schimbam unealta de traducere, nu ma pricep in domeniu deci nu stiu, exista alte variante?

CatalinFrancu commented 10 years ago

Îi poate da el utilizatorului instrucțiunile exacte, la fel cum cel de post-merge îți recomandă să rulezi tools/migration.php. Instrucțiunile sunt ceva cu msgcat -s și msgfmt. Iar utilizatorul face copy-paste. Nu vreau să le ruleze hook-ul automat, că nu e în regulă să modifice niște fișiere fără ca utilizatorul să poată da un ultim diff să vadă ce trimite.