On Mon, Apr 07, 2003 at 07:45:33PM +0200, Petter Reinholdtsen wrote:
[Keld Jørn Simonsen]
Jeg vet ikke om du har hørt om Linux:-) Der er det mye anvendt at utdata fra et program sendes videre til et annet program. Det heter et rør, på engelsk "pipe". Røret kan f.eks være et program det gjør at du får vist en side av gangen, some "less". Det kan også være et program det sorterer linjene i utdata, "sort" heter det. Sort kan sortere numerisk.
Jeg har også sett programmer som forsøker å gjøre dette feile stygt når de blir kjørt med et locale de ikke forventer (som oftest alt annet enn LANG=C). Det du beskriver fungerer ikke hvis locale forandrer seg. Den eneste måten å være sikker på at programmet fungerer er å bruke et fast locale, fortringsvis C/POSIX, slik at du vet at det du skrev ut er det samme som du leser inn.
Det kan du dessverre ikke forutsette, da programmet ikke vet om det er på vei ut til slutbrukeren, eller det skal etterbehandles først. I mange tilfeller ska det etterbehandles, men bare med en pager som less.
Jeg har sett utallige script og makefiler feile når locale blir satt til f.eks. no_NO. De var skrevet med forutsetning om at locale var POSIX (dvs. ikke satt).
Ja, skript og makefiler bør vel kjøre med locale POSIX.
Det er urealistisk å tro at programmer kan lese og skrive localespesifikke data som om de var velformatterte og på kjent format.
Kanske det er saken nu, men ikke på sikt. For 10 år siden tenkte jeg også at det var urealistisk å få et dansk UNIX-system. Nå er det der.
De opplysningene vi taler om er beregnet til POSIX og C localene, som er bl.a. beregnet til tekst/konsollprogrammer. Jeg mener det er viktig at det er mulig å få utskrifter fra tekst/konsollprogrammer på lokalisert form.
Hilsen keld