TIM-JYU / TIM

TIM (The Interactive Material) is an open-source cloud-based platform for creating interactive learning documents.
https://tim.education/view/about/en-US
MIT License
14 stars 4 forks source link

Improve TIM's translation capabilities (TIMTra project) - [merged] #3035

Closed dezhidki closed 2 years ago

dezhidki commented 2 years ago

In GitLab by @saviit on Mar 29, 2022, 17:01

Merges dev -> master

TIMTra-projektissa kehitettiin TIM-järjestelmään toiminnallisuudet dokumenttien automaattiseen kääntämiseen kehittämällä rajapinnat, tietokannat ja käyttöliittymä konekääntäjän käyttämiseen ja käännösdokumentin muokkaamiseen. Käännösdokumenttien muokkaamiseen käytettävää tekstieditoria muokattiin lisäämällä esikatselu käännetylle tekstilohkolle, ja mahdollistamalla esikatselujen piilottaminen sekä monipuolisempi sijoittelu. Lisäksi kehitettiin toiminnallisuudet dokumenttien kielikoodien stardardoimiseksi langcodes-kirjastoa hyödyntämällä. Toiminnallisuudet toteutettiin modulaarisesti siten, että tuettuja dokumenttikieliä ja kääntämiseen käytettävissä olevia konekääntäjiä voidaan lisätä helposti.

Kääntäjätoiminnallisuus palvelee useita käyttäjäryhmiä opetussektorilla, tärkeimpinä opiskelijat, opetushenkilökunta ja opetusmateriaalin laatijat.

Lisätiedot:

Projektin kuvaus \ Projektiraportti \ Sovellusraportti (sis. yksityiskohtainen kuvaus ominaisuuksista)

dezhidki commented 2 years ago

In GitLab by @saviit on Mar 29, 2022, 17:11

added 3 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @saviit on Mar 29, 2022, 17:20

added 53 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @saviit on Mar 29, 2022, 17:37

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Mar 30, 2022, 09:49

added 4 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @juaatark on Mar 30, 2022, 10:58

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Mar 30, 2022, 13:08

added 3 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @vianramo on Mar 31, 2022, 14:03

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Mar 31, 2022, 14:24

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Mar 31, 2022, 14:48

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @vianramo on Mar 31, 2022, 15:17

added 3 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Mar 31, 2022, 15:26

added 2 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @vianramo on Apr 1, 2022, 11:59

added 2 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 1, 2022, 12:12

added 4 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 1, 2022, 12:25

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @vianramo on Apr 4, 2022, 10:42

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 4, 2022, 11:53

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 5, 2022, 13:51

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 5, 2022, 15:20

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 5, 2022, 16:32

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 5, 2022, 16:49

added 2 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @vianramo on Apr 6, 2022, 10:53

added 2 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 6, 2022, 11:59

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 6, 2022, 12:52

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 6, 2022, 13:59

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 6, 2022, 14:47

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 15:36

added 2 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 6, 2022, 16:33

added 2 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @juaatark on Apr 6, 2022, 16:46

added 17 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 18:28

Commented on timApp/static/scripts/tim/editor/pareditor.ts line 1707

Koodikatselmointiin 8.4.2022 (Vili Moisala)

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 18:29

Commented on timApp/static/templates/parEditor.html line 45

Koodikatselmointiin 8.4.2022 (Vili Moisala)

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 18:29

Commented on timApp/static/stylesheets/menustyle.scss line 122

Koodikatselmointiin 8.4.2022 (Vili Moisala)

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 18:31

Commented on timApp/static/scripts/tim/item/manageCtrl.ts line 576

Koodikatselmointiin 8.4.2022 (Noora Jokela)

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 18:32

Commented on timApp/static/scripts/tim/editor/pareditor.ts line 1894

Koodikatselmointiin 8.4.2022 (Noora Jokela)

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 18:32

Commented on timApp/static/scripts/tim/item/manageCtrl.ts line 733

Koodikatselmointiin 8.4.2022 (Noora Jokela)

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 18:33

Commented on timApp/document/translation/routes.py line 32

Koodikatselmointiin 8.4.2022 (Juho Tarkkanen)

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 18:34

Commented on timApp/document/translation/translationparser.py line 487

Koodikatselmointiin 8.4.2022 (Juho Tarkkanen)

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 18:35

Commented on timApp/document/translation/translator.py line 532

Koodikatselmointiin 8.4.2022 (Juho Tarkkanen)

dezhidki commented 2 years ago

In GitLab by @saviit on Apr 6, 2022, 18:35

Commented on timApp/document/translation/translationparser.py line 110

Koodikatselmointiin 8.4.2022 (Riku Lehkonen)

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 7, 2022, 13:41

added 2 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 7, 2022, 14:37

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @noemjoke on Apr 7, 2022, 15:45

added 1 commit

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @vianramo on Apr 7, 2022, 16:18

added 2 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @juaatark on Apr 7, 2022, 18:58

added 3 commits

Compare with previous version

dezhidki commented 2 years ago

In GitLab by @habca on Apr 8, 2022, 02:04

Commented on timApp/static/scripts/tim/editor/pareditor.ts line 1707

Kääntäminen lopetetaan käännöskutsun lopputuloksesta riippumatta, joten kannattaa siirtää r.ok tarkistusten ulkopuolelle tai aliohjelman loppuun, kun viimeinen operaatio valmistuu. Toisaalta jos vastauksesta tarkistetaan ensin oliko virhettä, normaalin ohjelmasuorituksen voi keskeyttää heti. Tällä tavoin saisi vähennettyä sisäkkäisiä ehtorakenteita.

Lippumuuttujia kannattaa yleisesti välttää etenkin kun mayContinue tulee käyttäjältä, joten muuttuja voidaan alustaa siinä yhteydessä. Ellei käyttäjä halua jatkaa, niin silloinhan aliohjelman suoritus keskeytetään siihen paikkaan. mayContinue on tavallaan samalla lupaus, että jatkaminen on ylipäänsä mahdollista, joten vahvistuksen kysymisen tulisi olla viimeinen asia ennen käännöskutsun lähettämistä. Kannattaisiko siis else if -haara tarkistaa aikaisemmin?

Suurin osa aliohjelman virheilmoituksista liittyy komponentin tilaan. Tarkistukset voisi sijoittaa painikkeen aktiivisuuden määrittävään attribuuttiin disabled tarkistusmetodilla. Käännöskutsun lähettäminen estettäisiin kokonaan, ellei komponentti ole sallitussa tilassa.

dezhidki commented 2 years ago

In GitLab by @habca on Apr 8, 2022, 02:05

Commented on timApp/static/stylesheets/menustyle.scss line 122

Komponentin tyylimääritykset kannattaa laittaa Angular-templaten nimeä vastaavaan parEditor.scss tiedostoon. Jos sellaista ei ole valmiina, niin voi luoda uuden. Silloin tarvitsee harvemmin viitata koodissa id-tunnisteeseen, jos tyylit yhdistetään vastaavaan komponenttiin.

dezhidki commented 2 years ago

In GitLab by @habca on Apr 8, 2022, 02:06

Commented on timApp/static/templates/parEditor.html line 45

Angular-komponenttien tyylit kannattaa määrittää komponentin tyylitiedostossa ja käännökset attribuutilla i18n. Painikkeen aktiivisuuden voisi määrittää erillisessä tarkistimessa, jossa huomioidaan samalla painikkeen tapahtumankäsittelyssä tehtävät lisätarkistukset. Virheilmoitukset voisi puolestaan toteuttaa https://tim.jyu.fi/view/tim/TIMin-kehitys/Johdatus-TIMin-kehitykseen#lomakkeet ohjeen mukaisesti.

dezhidki commented 2 years ago

In GitLab by @habca on Apr 8, 2022, 02:08

Commented on timApp/static/scripts/tim/editor/pareditor.ts line 1894

Käyttöliittymältä halutaan usein piilottaa sisäisten tietorakenteiden toteutus. Indeksin kysymisen sijaan voidaan tai for each -avulla loopata tietorakenne ja käsitellä löydettyä alkiota suoraan, jolloin ei tarvitse käsitellä laitonta indeksiä. Tietysti voi palauttaa löydetyn alkion suoraan, mutta silloinkin joudutaan varmistamaan onko paluuarvo mielekäs. Suositeltavampi tapa olisi lisätä tapahtumankäsittelijä, jolla viedään parametrina nykyinen kielivalinta, elementti tai olio, jolta valinnan saa kysyttyä.

Vertailuissa kannattaa lähestulkoon aina käyttää kolmea yhtäsuuruutta, joka on kahta vahvempi operaattori.

dezhidki commented 2 years ago

In GitLab by @habca on Apr 8, 2022, 02:10

Commented on timApp/static/scripts/tim/item/manageCtrl.ts line 576

Sama kommentti kuin pareditorissa.

dezhidki commented 2 years ago

In GitLab by @habca on Apr 8, 2022, 02:12

Commented on timApp/static/scripts/tim/item/manageCtrl.ts line 733

Oikeellisuustarkistuksia saisi lyhennettyä esimerkiksi reduce tai includes metodeilla. Useampi käyttöliittymän elementti voi päivittää tilaansa, jos tarkistuksen lopputulos säilötään johonkin komponentin sisäiseen muuttujaan. Samassa yhteydessä saisi tallennettua mahdollinen virheilmoitus tai muu teksti. Vaihtoehtoisesti käyttäjän valinnat voisi sulkea formGroupiin, joka huolehtisi kaikkien lomakkeeseen kuuluvien syötteiden validoinnista. Tavoitteena on, että tarkistus tehdään vain kerran ja yhdessä funktiossa.

dezhidki commented 2 years ago

In GitLab by @habca on Apr 8, 2022, 02:15

Commented on timApp/document/translation/routes.py line 32

Tietokantakyselyistä kannattaisi välttää selaimelta tulevia syötteitä origlang ja translatorlang, eli toinen parametri riittää hyvin kyselyiden tekemiseen. Mitä vähemmän riippuvuuksia on muualta tulevaan koodiin sen parempi.

Automaattikääntäjän voisi tuoda parametrina, mitä ei ole Flask-polussa mainittu. Esimerkkinä login.py-tiedostossa funktio logout. Automaattikäännöksen tekemisen voisi siirtää automaattikääntäjästä vastaavaan luokkaan metodiksi. Flask-polun funktioon tulisi vähemmän kääntämiseen liittyvää logiikkaa, mikä helpottaisi yksikkötestaamista.

Voisiko tr.block sijaan käyttää orig_paragraph.id arvoa? Silloin ei tarvittaisi listaa tupleista. Dokumentin asetukset saa kysyttyä metodilla get_settings_pars, jotka voidaan suodattaa käännettävien tekstikappaleiden listasta.