# Multi-Language Support

> NOTE. The language elements discussed in this section do not include those created by users or administrators such as reports, folders, express report/crosstab themes or Data Field names. To modify Data Field names please see Column Metadata. To modify theme names please see Express Report and Crosstab Themes.

To help localize Exago, any text in the application can be translated or modified. This can be accomplished by creating xml files in the Language folder that map ID’s to strings. Any place within Exago that displays text has an associated ID. When a text element is required in the application Exago will read the file(s) specified in the ‘Language File’ parameter of Main Settings and use the string that is mapped to the ID.

Exago comes with both a standard English file ‘en-us.xml’ and a Spanish translation ‘es-mx.xml’. Below is an example of the multi-language functionality. Notice that the prompt text in the New Report Wizard can be set by changing the string associated with the id NewReportLb1.

En-us.xml:

    <NewReport>
     <element id="NewReportLbl">Complete the steps in the wizard below to create a new report</element>
    </NewReport>

Es-mx.xml:

    <NewReport>
       <element id="NewReportLbl">Complete los pasos en el asistente para crear un nuevo informe</element>
    </NewReport>

> NOTE. Some language strings contain special place holders between curly brackets (ex. {0}). These hold the place of elements that must be filled in dynamically by Exago. Do not translate anything inside curly brackets. The place holders may be moved within the string but do not delete them.

The example below demonstrates three place holders that will be replaced by dropdown menus in the Scheduling Wizard.

    <element id="ScheduleRecurrenceRelativeMonthlyTxt">The {DayPosition} {DayOfWeek} of every {MonthNumber} month(s)</element>

# Translating Exago

To translate the entire interface, make a copy of the file ‘en-us.xml’ and give it a different name. Make sure this copy is in the folder ‘<webapp_dir>/Config/Languages’. Without changing the IDs translate the strings as desired (see example above). Then set the ‘Language File’ parameter of Main Settings to specify the desired translation.

> NOTE. If you are using the Exago Scheduler Service be sure to copy all custom language xml files to the ‘<scheduler_dir>/Languages’ folder of the Scheduler Service.

# Modifying Select Language Elements

To change specific language elements without copying the entire mapping you can use a base file and specify changes in separate language files. When you set the parameter ‘Language File’ list the all of the files you want to load separated by comas or semicolons. Exago will load the files from left to right, meaning the first file listed will be used as a base and can be changed by the files loaded after it.

As an example you can create the file en-custom.xml which only contains the lines:

    <?xml version="1.0" encoding="utf-8" ?>
    <element id="GettingStartedTab">Home</element>

Set the ‘Language File’ parameter to ‘en-us, en-custom’ and the Getting Started tab will reflect the change made in the custom file.

> NOTE. Begin all language xml files with the line ‘<?xml version="1.0" encoding="utf-8" ?>’

# Text of Prompting Filters and Parameters on Dashboards

When adding a Report to a Dashbaord a user can specify text for any prompting Filters or Parameters. By default this text will match the strings associated with the ids CompositeReportOptionsFilterDefaultPromptText and CompositeReportOptionsParameterDefaultPromptText respectively.

If a user changes the default and enters a different language Id then the associated text for that new Id will display when the dashboard is executed.

If a user enters text that does not match any language Id the text will be displayed when the dashboard is executed.