This method involves passing "locale" on a transfer to a URL.

First, create the second-language auto-attendant (for example French) and determine the "schedule_id".  You can determine the schedule_id by creating a temporary Dial Plan for the new auto-attendant and checking /etc/sipxpbx/mappingrules.xml...  search for action=autoattendant within the newly created dial plan.

From the English auto-attendant, create a dialpad action "Transfer to Extension or Other Destination", and put the URL obtained from the mappingrules.xml, with the appropriate locale:  eg. <sip:IVR <at>;action=autoattendant;schedule_id=aa_11;locale=fr-ca>

The only problem remaining is that after dialing French option, the message "Please hold while I transfer your call" plays before sending you to the french auto-attendant.

The only way to suppress this is to overwrite the "Please hold while I transfer your call" with a .wav file that is a short blast of silence, or re-record the .wav so it says the same thing in multiple languages.

See as a tracker for this feature request.