This blog post is only relevant to V14.

The 3CX Phone System is designed to be multi-lingual. Each text element in the 3CX Management Console is stored in a file and referenced from this file.

By creating a localized copy of this file, it is possible to easily translate the interface and allow users to select the preferred language option.

You may then be able to choose the language from the 3CX Management Console Login page.

Location of Language Files in an installed system V15

To add custom language files in 3CX Phone system V15 please follow the steps below:

Step 1: Go to %programdata%\3CX\Data\Http\wwwroot\public
Step 2: Edit the app.js file and search for the following line:

e.langs={en:"English",de_DE:"German",it_IT:"Italiano",ru_RU:"Русский",fr_FR:"French",es_ES:"Español"};

in this line the languages and their related JSON files are declared so for example de_DE:"German"  means that the displayed language in the drop down menu for the language selection will show "German" and also the appropriate JSON language file containing the translation files in %programdata%\3CX\Data\Http\wwwroot\l10n is also named de_De (you may check the ISO language code table for which codes to use according to the language you want to use)

Step 3 : In order to add -for example -  Polish to the V15 Management console table the following needs to be done:
After the language line is located add the polish language in the e.langs section
Original section: e.langs={en:"English",de_DE:"German",it_IT:"Italiano",ru_RU:"Русский",fr_FR:"French",es_ES:"Español"};
Modified with Polish Language: e.langs={en:"English",de_DE:"German",it_IT:"Italiano",ru_RU:"Русский",fr_FR:"French",es_ES:"Español",pl_PL:"Polski"};

Save the app.js  file.

and make sure that you have the file with the language translations in %programdata%\3CX\Data\Http\wwwroot\l10n  with the name pl_PL and refresh the 3CX Management console page.

Location of Language Files in an installed system V14

An installation of 3CX Phone System will have default language files.
These will be located in the following location:
Windows Vista / 2008 / 7:
 %programdata%\3cx\data\http\includes\

This folder will include a file named “ManagementLanguages.xml”, which will in turn list the languages which the system will make available to the user. The individual language files will be named “strings_en.ini”, “strings_de.ini”, and so on, with the last two characters of the filename before the extension representing the country’s language example: en=English and de=Deutsch (German).

Management of Language Files

The primary file which contains the reference material is the “English” version – the “strings_en.ini” file. This is the base file that should be used to make translations from. Therefore it is important to ensure that the latest version of the English file is in hand before asking translators to work on it.

Making changes to any language file

It is recommended to use Notepad++ or pspad as the text-editing application for any language file. The file MUST be in "Windows" format (in the Notepad++ menu, go to the "Format" menu and select "Convert to Windows Format"). The file MUST be encoded in "UTF-8" (in the Notepad++ menu, go to the "Format" menu and select "Encode in UTF-8 without BOM").

Format of the "ManagementLanguages.xml" file

Step 1: Go to %programdata%\3CX\Data\Http\includes\
Step 2: Open ManagementLanguages.xml with a text editor.
This is the standard file as you will see it in a default installation.

Step 3: To add a language, for example Hungarian add the following line inside the <languages> xml tag like this <Hungarian culture="hu">strings_hu.ini</Hungarian>"

Ensure that the languages are listed in alphabetical order by language name. Keep in mind that the 2-character code (the culture code) must be identical to the second part of the file name.

Step 4: Save the file ManagementLanguages.xml and close.

Step 5: In the same directory make a copy of the "strings_en.ini" file and and rename it "strings_hu.ini".

Step 6: Put this file in the same location as the other language files. The webserver will look in this location for new language files.

Step 7: Start translating this file from English to the language you want to create. In this example to Hungarian. Each line in the language file will be in the format: <variable> = <translated text> You can see the changes on the fly if you save this file and log out of the Management console. Every time you log out from the web interface, the Management console reloads the new language files.

Localizing the 3CX Hotel Module

Localizing the 3CX Hotel Module can be achieved very similarly by following these steps:

  • Log on to a machine that has the latest Hotel Module installed.
  • Use windows explorer to navigate to: "C:\ProgramData\HotelModule\Data\Language".
  • Retrieve the file called "strings_hotelApp_en.ini".
  • Use that file as a base, and translate the strings on the right hand side of the "=" sign for each variable.
  • When done, assuming for this example that we are doing a translation for Italian:
    • Save the amended file to the same folder but with a different filename - in this case the filename would be "strings_hotelApp_it.ini".
    • From the same folder open the file "HotelLanguages.xml".
    • Adjust the XML file to include Italian, by adding, inside the <languages> tag, a new line to read:

<Italiano culture="it">strings_hotelApp_it.ini<Italiano>

    • So that the new file would read as follows:

<languages>
<English culture="en">strings_hotelApp_en.ini</English>
<Deutsch culture="de">strings_hotelApp_de.ini</Deutsch>
<Italiano culture="it">strings_hotelApp_it.ini<Italiano>
</languages>

Localizing the promptset

If you want to localize the prompt set in your phone system (i.e.  the voice messages used to provide feedback to the user), please visit this guide. Note that many languages are already available from the updates feature.