Localized maxima?



On 2/14/10 1:47 PM, Dieter Kaiser wrote:
> Am Sonntag, den 14.02.2010, 19:31 +0100 schrieb Dieter Kaiser:
>   
>> Am Sonntag, den 14.02.2010, 16:50 +0100 schrieb Andrej Vodopivec:
>>
>>     
>>> To start the translation you should copy maxima.pot to de.po. If it
>>> does not exist, you can create it with "make maxima.pot" in the locale
>>> subdirectory. When new strings are added for translation you can
>>> update de.po with "make allpo".
>>>
>>> To add the translation you should edit the Makefile.am in the locale
>>> subdirectory. You need to modify the TRANSLATIONS list (add de) and
>>> EXTRA_DIST list (add de.mo and de.po).
>>>
>>> I guess you also need to configure maxima with ./configure --enable-gettext.
>>>
>>> Let me know if you need more details.
>>>
>>> Andrej
>>>       
>> Thank you for the help.
>>
>> I have set --enable-gettext in ./configure, installed the gnu utils
>> gettext, created the de.po file and modified the file makefile.am.
>>
>> Then I have done a few translations. I have run make and make install.
>> When I try to start Maxima I get the following:
>>
>>
>>  Maxima 5.20post http://maxima.sourceforge.net
>>
>> debugger invoked on a TYPE-ERROR in thread #<THREAD "initial thread"
>> RUNNING {C195B61}>:
>>   The value "" is not of type (SIMPLE-ARRAY BASE-CHAR (*)).
>>
>> Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
>>
>> restarts (invokable by number or by possibly-abbreviated name):
>>   0: [MACSYMA-QUIT] Maxima top-level
>>   1: [CONTINUE    ] Ignore runtime option --eval "(cl-user::run)".
>>   2: [ABORT       ] Skip rest of --eval and --load options.
>>   3:                Skip to toplevel READ/EVAL/PRINT loop.
>>   4: [QUIT        ] Quit SBCL (calling #'QUIT, killing the process).
>>
>> (INTL::MAKE-DOMAIN-ENTRY)[:EXTERNAL]
>>
>> 0] 
>>
>> Most of the msgstr strings in the file de.po are empty strings. Is this
>> the problem? But what is the way to get a de.po file with the English
>> text as default value.
>>     
> By the way. All my installed different Maxima versions no longer work.
> That is the version Maxima 5.20 compiled with CLISP:
>
> dieter at dieter:~/workspace/maxima$ maxima_5.20
> Maxima 5.20.1 http://maxima.sourceforge.net
> Maxima encountered a Lisp error:
>
>  
> AREF: index 0 for #() is out of range
>
> Automatically continuing.
> To enable the Lisp debugger set *debugger-hook* to nil.
>
> *** - THROW: there is no CATCHer for tag RETURN-FROM-DEBUGGER
> The following restarts are available:
> MACSYMA-QUIT   :R1      Maxima top-level
> Break 1 [1]> 1
> 1
> Break 1 [1]> :r1
>
>
> This message I get when I try to restart Maxima:
>
>
> Maxima 5.20.1 http://maxima.sourceforge.net
> using Lisp CLISP 2.44.1 (2008-02-23)
> Distributed under the GNU Public License. See the file COPYING.
> Maxima encountered a Lisp error:
>
>  
> AREF: index 46 for #(68 101 100 105 99 97 116 101 100 32 116 111 32 116
> 104 101 32 109 101 109 111 114 121 32 111 102 32 87
>   105 108 108 105 97 109 32 83 99 104 101 108 116 101 114 46 126 37) is
> out of range
>
>   
These are all bugs in octets= in intl.lisp.  This replacement works better:

(defun octets= (a b &key (start1 0) (end1 (length a))
             (start2 0) (end2 (length b)))
  (declare (type (simple-array (unsigned-byte 8) (*)) a b)
       (type (integer 0 #.array-dimension-limit) start1 end1 start2 end2)
       (optimize (speed 3) (space 2) (safety 0) #-gcl (debug 0)))
  (when (and (< start1 end1)
         (< start2 end2))
    (loop
       (unless (= (aref a start1) (aref b start2)) (return nil))
       (when (or (= (incf start1) end1) (= (incf start2) end2)) (return
t)))))

Ray