More localization wishlist



El s?b, 01-06-2013 a las 07:40 -0700, Raymond Toy escribi?:
> 
> $ LANG=en at piglatin maxima-local
> Maxima branch_5_30_base_101_g67286ae_dirty http://maxima.sourceforge.net
> usingway Isplay CMU Common Lispway snapshot-2013-05 (20D Unicodeway)way
> Istributedday underway ethay GNU Ublicpay Icenselay. Eesay ethay ilefay COPYING.
> Edicatedday otay ethay emorymay ofway Illiamway Elterschay.
> Ethay unctionfay ugbay_eportray() ovidespray ugbay eportingray informationway.
> (%i1) ? mnewton
> 

So, this is piglatin. Nothing to do with the latin I learnt at school.


> 
> 
>   Erethay areway alsoway omesay inexactway atchesmay orfay `mnewtonway'.
>   Ytray `?? mnewtonway' otay eesay emthay.
> 
> Evaluationway ooktay 0.1900 econdssay (0.1900 elapsedway) usingway 8.539 MB.
> (%o1)                                true
> 
> 
> Still needs work because I just hacked things together.
> 
> I think this also shows a bug in the (default) info system.  I think
> that if we can't find the info files for a language, we should just
> default and return the english version.  It's better than nothing. :-)

I haven't compiled Maxima with option --enable-lang-es-utf8 for a long
time. This is what I get with current git sources and command

./configure --with-clisp --enable-lang-es-utf8


The info files are created, as expected, in

$ ls /usr/local/share/info/es.utf8
maxima-index.lisp  maxima.info-1   maxima.info-2  maxima.info-4
maxima.info-6  maxima.info-8
maxima.info        maxima.info-10  maxima.info-3  maxima.info-5
maxima.info-7  maxima.info-9


But once I run Maxima, 'describe' responds in English. I checked
variable *maxima-lang-subdir*:

(%i5) :lisp *maxima-lang-subdir*
NIL

And typed:

(%i5) :lisp (set-locale-subdir)
NIL
(%i5) :lisp *maxima-lang-subdir*
es

This last result should be es.utf8

Looking at how set-locale-subdir is defined in init-cl.lisp, something
seems to be wrong with the contents of variable 'codeset', it is set to
"en" in 

(setq codeset (string-downcase (subseq intl::*locale* 6)))

This is the value of intl::*locale*:

(%i6) :lisp intl::*locale*
es_ES:en

It can't detect that coding is utf8. Finally, this is a partial output
of command locale:

$ locale
LANG=es_ES.UTF-8
LANGUAGE=es_ES:en


Perhaps intl::*locale* should be equal to LANG, and not to LANGUAGE ?

Tests were made on a fresh installation of Xubuntu 12.10. 

--
ariomay