Intro to Language Packs

Is your office bilingual? Is your native language anything but English? Do you have offices around the world, such as France, Germany, Japan, and Ukraine, that all need to use the same Aras Innovator instance? Aras has a solution: language packs.

Language packs are a set of XML files that allow many elements of the Aras Innovator UI to be translated into another language. In this post, we will walk through how to configure your server to work with these files and the other, additional configuration for running Aras Innovator in an international environment. First, we will cover some internationalization basics, then move on to the ways to add language packs to your server, how to configure your browser, and what all this means for AML statements.

The Basics

To begin, let’s cover just what can be configured to be in a different language in Aras Innovator:

  • ItemType Labels

  • Property Labels

  • RelationshipType Labels (Tab Label)

  • Form Labels

  • List and Filtered List Labels

  • Action Labels (Menu text)

  • Report Labels

  • User Messages

  • Property Values

Most of these changes are for the user interface, and, unless configured otherwise, the database will default to your local server’s culture setting. (We will cover this in a moment.) Therefore, you can display all the UI elements, including date, time, and numbers, in the local language and configuration, but store database items in the corporate language of record and Universal Time Code.

A couple of quick notes on multilingual properties:

  • While Aras Innovator can support storing a property in multiple languages, this is not recommended, due to both the increase in database size and complexity (an extra column per language) and needing someone to keep up with the translation overhead. Also, and probably more importantly, multilingual properties cannot be required or have a default value assigned to them.

  • Multilingual number configuration does not extend to currency formatting. Aras Innovator treats the currency as a number without any special modifiers.

Selecting a Language

Now, to pick your language! Well, one other thing first: You will need to open the web.config file in your /Innovator/Server/ folder and edit the <globalization> tag. You will need to select from a recognized list of culture codes, there is one here. (If the culture code is not paired with a language, you will need to look up the ISO culture code as mentioned here.) You will then need to restart your web server by restarting IIS.

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US"/>

Now to go about actually installing the language on your Aras Innovator server, we will cover the simplest method below.

Installing a Language Pack

Lights…Camera…Scripting?

The simplest way to install a language pack is to download one from the Language Packs page on the Aras website here. You can follow the instructions in the readme to set your local preferences (server location, login, etc.), drop the already-made XML files into your code tree, and run a couple of .bat files and your Aras Innovator is good to go once your web service restarts (an IIS restart file is one of the scripts you will run). But I’ll run through a more detailed process here:

  1. Review our selection of language packs on the Aras website and download one that supports your installed version of Aras Innovator.

  2. Unzip the downloaded file package (preferably to somewhere with root access, like C:\ArasLangPack)

  3. You will need administrator rights to run the following, as Windows will block unsigned BAT files. Per the readme:

    1. Right-click and Edit the SETUP-DEFAULTS.CMD file. (If there is a blue pop-up, select More Information, then Run Anyway.)

    2. Set the following variables (the defaults should give you an idea of what you need, check the InnovatorServerConfig.xml file in your install for the correct info):

      1. SERVER_URL: [your server URL]

      2. DATABASE_ID: [your Aras Innovator DB name]

      3. INNOVATOR_LOGIN: [root login]

      4. INNOVATOR_PASSWORD: [root password]

      5. DB_SERVER: [server literal name]

        • Note: if this says localhost as a default, you will still need to change it. It needs to be what is in the <DB-Connection> line, server tag, of your InnovatorServerConfig.xml file. (something like COMPUTERNAME\SQLEXPRESS)

      6. DATABASE_NAME: [name of your DB]

      7. SQL_LOGIN: [login assigned to Aras Innovator’s DB connection]

      8. SQL_PASSWORD: [password for Aras Innovator’s DB connection]

    3. Save the file.

    4. Next, copy the Innovator file in the folder on top of your own Aras Innovator install. (The default for this is C:\Program Files (x86)\Aras\Innovator, just copy the Innovator folder from the package on top and allow the file overwrite.) This will update the code tree of your install with translated TOC names, etc.

    5. Finally, run the batch scripts as listed in the readme. For example, the German package has the following listed:

      1. 001-IMPORT-I18N-CHANGES.BAT

        • Sets up Language and Locale Items in Aras.

      2. 002-RESTART-WEB-SERVICE.BAT

        1. Restarts your local web server (usually localhost from IIS).

        2. If you are using a non-local server, restart it here instead of using the BAT.

      3. 003-IMPORT-GERMAN.BAT

        • Will load the translation files, in this case, German.

    6. Set up your browser to use the language, if not already present. (Details in next section.)

This method takes most of the work off the administrator and is great for language packs that have been released by Aras or our partners on the above site. If your language is not listed, you have a couple more options, they are covered in the documentation on our support site. There are a few more items, such as setting up a corporate time zone, covered in there as well.

Other Items of International Note

Browser Config

One of the last things you will need to do, on all client machines you wish to use your new language, is to set the browsers up to use it. I will cover Google Chrome here, but the variations for your browser of choice should be a quick search away.

For Google Chrome:

  1. Select Settings from the right-hand menu bar (three vertical dots)

  2. Scroll to the bottom and open Advanced [settings]

  3. Add your new language and move it to the top of the list (using the vertical dots menus) to override the default language of your browser

AML Alterations

One final note concerning AML: if you want to use AML in a language other than the default (English), you will need to let the system know that. Otherwise, it will assume the default language is being used. "Get" queries have a language tag that can be used, however other queries (add, create, edit, update) are more involved, and you will need to specify additional lines for each language/property pair to be updated. Date and time values will also need to be input in a neutral format, using specific methods. More information can be found in the Internationalization documentation, but here is a quick example:

A standard AML "get" call will, technically, return like this:

call: 
<Item type="ItemType" id="B88C14B99EF44982…" action="get" select="label"/>
return:
<Item type="ItemType" id=" B88C14B99EF44982…"><label xml:lang="en">Document</label></Item>

Note the normally hidden language property. However, you can add a language attribute in the call itself to return more than one language or a specific language:

call:
<Item type="ItemType" id="B88C14B99EF44982…" action="get" select="label" language="en,de"/>
return:
<Item type="ItemType" id=" B88C14B99EF44982…" >
<i18n:label xml:lang="de" xmlns:i18n="http://www.aras.com/I18N">Dokument</i18n:label>
<i18n:label xml:lang="en" xmlns:i18n="http://www.aras.com/I18N">Document</i18n:label>
</Item>

Note the changes to the returned label tags. If you do not use the attribute, it should first default to using your current browser session language, then to the default language (English) if that isn’t present.

The End. La Fin. Das Ende. 終わり。Кінець.

With all of the above settings finalized, the properties that can be configured as multilingual will have a selection box next to them. You can click this box to access the multilingual interface, which will allow you to input a value for each language. This will also work in search grids.

Localizing your Aras Innovator server to a new language is a complicated topic. Please reach out on the forums or the Aras Support team with any questions.

What languages does your business need? Do we already support your language? Has someone in the community created a language pack? Is one of our language packs due for an update? Let us know!

Anonymous
  • Hi Sam,

    many thanks for this helpful overview! I made some test with the German language pack last week.

    Regarding the German language pack I noticed that a small amount of translations is missing or doesn´t reflect the correct meaning. As there are many different language packs available I wonder who maintains the various languages?

    I am absolutly aware that writing language packs is a huge and neverending task. As Innovator features constantly expands it´s a challenge to keep all translations up to date and to reach perfection. In addition, Innovator users love to complain about language pack issues, but often doesn´t report them. Is there an easy way to report language pack related issues? Of course tech support is one good address, but regarding the language pack maybe a more centralized and simple submit option would encourage more people to report language related stuff.

    How about providing a simple and small submit form on the language pack download page so users can easily report when they are unhappy with an translation? Just an idea of mine...

    Best regards!

    Angela