====== Multiple Language support for RADIUSdesk ======
===== Some background =====
* This section will provide some background on how we ended at the current implementation of multiple language support in RADIUSdesk.
* RADIUSdesk is divided into two sections.
* The GUI component which uses ExtJs and is purely in JavaScript.
* The //engine// which as of this date is split between CakePHP v2 and CakePHP v3 with the end goal to have everything migrated to CakePHP v3.
* In the past we used to store translatable phrases used by ExtJS in a MySQL database and extract those phrases based on the language setting once a person authenticated to RADIUSdesk.
* This proved to not scale well and we then created a workaround.
* This workaround will be discussed in detail in the next section.
* For CakePHP v2 we use the built in translation functionality along with a .po file. This will be discussed lated in this document.
===== Adding a new language to the Viewer / GUI component using ExtJs =====
* The index.html file sources a file with translated phrases.
* Adding a new language one can simply make a copy of index.html and change its content to source another file with translated phrases.
* Here is an extract from /usr/share/nginx/html/rd/index.html
Rd
* Lets assume I want to create a German translation then I can do the following.
#Create a copy of the singletons.js file and modify it for your language.
cp /usr/share/nginx/html/rd/resources/js/singletons.js /usr/share/nginx/html/rd/resources/js/singletons_de.js
#After you modified all the strings also copy it to the optimised JavaScript Code's folder
cp /usr/share/nginx/html/rd/resources/js/singletons_de.js /usr/share/nginx/html/rd/build/production/Rd/resources/js/
#Make a Copy if the index.html to indicate the language
cp /usr/share/nginx/html/rd/index.html /usr/share/nginx/html/rd/index_de.html
#Change the index_de.html file so that it sources the singletons_de.js file
#Save it
#If you use the optimised JavaScript code (which you actually should) copy also
cp /usr/share/nginx/html/rd/build/production/Rd/index.html /usr/share/nginx/html/rd/build/production/Rd/index_de.html
#Change the index_de.html file so that it sources the singletons_de.js file
#Save it
#
* After you made those changes you can go to /rd/index_de.html or /rd/build/production/Rd/index_de.html to test things out.