Skip to content

Languages and Localisation

Ellis Nielsen edited this page Dec 9, 2022 · 4 revisions

Getting started

Localisation in ARMA means the game will try to load the correct language for the version of the game it is currently using. By adding translations, or localisations to this project, we can make it easier for for all players to get involved and use this Mission.

A technical overview of Localisation can be found here.

Contributing to Localisation

If you want to assist with translations that Dialog buttons, mission text or in game text uses, you will need to make changes to the Stringtable.xml file which is found in the main PBO file.

Making changes to this file can be done with simple text editors, such as notepad however it is advised you use a dedicated tool such as those suggested on the WIKI.

Once you have your tool of choice and have opened the Stringtable.xml you will then need to find or create the "Key" to provide your translation.


For this example I will use the Version number of Antistasi, as this changes frequently and requires manual adjustment each release.

    <Container>
      <Key ID="STR_antistasi_credits_generic_version_text">
        <Original>1.4c2.0</Original>
      </Key>
    </Container>

Key Setup

There are two main parts to setting up localisation, the KEY and the Text. From the example we can see the following information.

  • Key : STR_antistasi_credits_generic_version_text
  • Original : 1.4c2.0

The Key is used to identify the text you wish to display in game. By default all Keys in Antistasi should follow a standard convention, using following pattern where possible.

  • Prefix : STR_antistasi_
  • Area of code : credits_generic
  • Item name : version
  • Type : text

From this you can easily determine that this code belongs to "Antistasi", is used in the "Generic Credits" module and contains the "Version" "text".

Text Setup

The second part of localisation, is the text. This is the actual information which is going to be displayed to users, from the Stringtable when the variable is called.

When creating a new, or change an old KEY, it needs to contain <Original></Original> as a minimum. The Original tag implies the default value to be displayed for all game clients, if their default language is not found.

Currently our version will display the following to all game clients, regardless of their language settings. Adding additional languages requires the use of a new tag containing the language you wish to use. For this example we will use English.

Our version example is currently:

<Original>1.4c2.0</Original>

Adding an English localisation can be done with:

<Original>1.4c2.0</Original>
<English>1.4c2.0.6</English>

Now when this is loaded, for all English game clients the version will show 1.4c2.0.6. Other clients will show 1.4c2.0.

Our example now looks like this.

    <Container>
      <Key ID="STR_antistasi_credits_generic_version_text">
        <Original>1.4c2.0</Original>
        <English>1.4c2.0.6</English>
      </Key>
    </Container>

Note

Whilst we will make an effort to verify the translations provided, it relies on user input and cannot be guaranteed. If you find any problems, please raise an issue!