====== 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.