In UCCX there is an idea of "supported languages."
In UCCX 8.5, French (CA and FR) is a supported language.
Source: http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/crs/express_compatibility/matrix/crscomtx.pdf
So that means, you only need to create a new prompt directory called either: fr, fr_FR, or fr_CA, store your french prompts in there, and then write your script to change the language of the contact if necessary.
Example:
Prompts:
en_US/greeting.wav
en_US/main_menu.wav
fr_FR/language_selection.wav
fr_FR/main_menu.wav
Script:
Start
Accept(--Triggering Contact--)
/* This menu plays the greeting in English, as it's the language of the Trigger, then waits 1 second
before instructing the caller, in French, to press 7 to continue in French */
Menu (--Triggering Contact--, p[greeting.wav] + dp[1000] + p[language_selection.wav] @ l[fr_FR])
Option 7
/* If the caller presses 7, change the language for the caller to French, so all remaining
prompts get played in French instead of English */
Set Contact Info (--Triggering Contact--, Language = l[fr_FR]
Timeout
/* If no option is pressed, continue in English (default) */
Unsuccessful
/* Add Comment */
/* This main menu references prompt "main_menu.wav", which exists in both language folders.
Because we don't specify a language here, the script will use the language of the caller,
either English (default) or French (based on option 7 above) */
Menu (--Triggering Contact--, p[main_menu.wav])
Option 1
/* Add Comment */
Option 2
/* Add Comment */
Timeout
/* Add Comment */
Unsuccessful
/* Add Comment */
...
End
If you need to also send callers to specific language queues, you could do something like this (example only):
Set primary_csq = "Cust_Srv_" + language.toString()
Select Resource (primary_csq)
You can take this to a whole new level if you also need language specific documents, scripts, or non-standard languages.