Har bedrevet sommeren med å lage en ny og forbedret utgave av Transpo,
skrevet fra bunnen av i Python.
Nå er jeg lei av å skrive på det alene, og ville gjerne også sett hva
som er aktuelt å gjøre med det. Så derfor sender jeg det ut til allmen
fornøyelse.
Det var et par ting jeg ville prøve ut, så koden er nok blitt mer
omfattende enn strengt nødvendig, men på andre siden ser jeg allerede
flere utvidelser som kan gjøres uten alt for omfattende inngripen.
En er å kunne tilbakedatere po-filene fra de ganske omfattende
fuzzy-merknadene som blir gjort når strengene endres.
En annen er, man kan skrive ganske mange forskjellige verktøy på
bibliotekene jeg har laget.
Dette er neppe en fullstendig liste over forbedringer, men kort fra
hodet:
* I18n-problemer er løst. Ordlistene regnes som UTF-8 hvis ikke annet er
oppgitt (Og kan legge inn en spesialkommentar i ordlistene hvis du vil
ha noe annet.
* Du kan også endre tegnsett (UTF-8 <-> ISO-LATIN1 osv) på po-filene.
* Ikke noe tekst blir oversatt to ganger.
* Opplysninger om hvilke ordlister som finnes, hvor de ligger og hva de
skal kalles, legges i konfigurasjonsfiler. «/etc/transpo.conf»,
«~/.transpo.conf» og tilsvarende i mappene der dataene ligger.
* Ved å legge konfigurasjonsfiler på de rette stedene i mappestrukturen
kan du gi standardverdier for hvordan jobben skal gjøres.
* Transpo er blitt ganske god på ombrekking av linjer.
* Du kan brekke om linjer, endre tegnsett eller gjøre andre ting med
po-filene uten å oversette. La være å oppgi noen ordliste (eventuelt
oppgi ordlista '' på kommandolinja hvis konfigurasjonsfilene gir deg en
standardordliste).
På den andre siden er ikke programmet helt avluset ennå. Først og fremst
er det lesing og tolking av kommandolinje, konfigurasjonsfil osv. som
ikke er helt gjennomarbeidet.
Det ligger ved noen testprogrammer, men det kan hende de er litt
utdatert.
Foreløpig er alt tilgjengelig i katalogen ~harald/prog/transpo på
user.skolelinux.no, og hvis Eskil kunne minne meg på hvor dette skulle
legges ellers hadde det vært fint.
«transpo.py» leser konfigurasjonsfiler, kommandolinje og setter det hele
i gang.
«libPoDict.py» leser og håndterer ordlister.
«libPoIO.py» tar seg av lesing og skriving av Po-filer.
«WorkQueue.py» er ment å brukes også utenfor Transpo. Håndterer asynkron
håndtering av arbeidsoppgaver. Oppgavene samles i køer, utføres
parallelt i et gitt antall tråder og legges tilbake i køer når de er
utført. Transpo bruker dette til å lese / skrive flere filer samtidig,
men det kan også brukes i databasetilkoblinger og annet. Kan utvides til
å håndtere parallelle prosesser, kanskje til og med maskiner.
En kort «storm» utnytter disk mm. bedre enn lengre kjøring av bare en
tråd, så hvis det gjøres med måte skulle det kunne være en fordel.
Er det noe jeg har glemt?
Sikkert en hel masse. Så skriv hvis det er noe.
Lykke til!
Harald