Localisation Guide Print button

This guide will help you to translate our software in to your language.

1. Getting started

  • Read and agree to the EULA for Translation Resources.
  • Download and sign the Contribution License Agreement.
  • Download the Translation Resources and Resx Editor.
  • Extract the files to a folder on your computer.

    Files included in the toolkit

  • If a translation does not already exist for your language, make a copy of the 'Resources.xx-XX.resx'. Rename the copy and replace 'xx-XX' with the language code of the translation.  A full list of language codes can be found here.
  • Double click on the 'Resx Editor.exe'
  • Click the open icon open icon image and browse to the location of the translation resources you just extracted.
  • Select both the original 'Resources.xx-XX.resx' and your newly created resx file (hold the Ctrl key down to select multiple files).
  • This will load all the text for translation alongside the original English translation.
  • To translate a value, double click the relevant cell, clear the English text and enter the translated value.
  • Once a value has been changed, the cell will change colour.  Remember to regularly save your changes.

filter Be sure to read the translation tips section before you get started.

2. Using Resx Editor

Using the Resx Editor tool

3. Submitting translations

  • Once your translations are complete, compress the new .resx file in a zip archive along with your signed Contribution License Agreement
  • Please contact support for instructions on how to send your translations to us.
  • Once we receive your translations we will being testing them and discuss any issues or corrections before supplying a compiled translation for testing prior to release.

Important tips

  • Review the Microsoft™ Style Guide for your language from the Microsoft Language Portal.
  • Review the GEDCOM specifications for the meaning of GEDCOM specific phrases.
  • The first part of the key describes the view where the string is used in the user interface.  The second part of the key describes the text of the key.  For example, the 'ExportImageDialog_Instructions' key refers to the insturctions text on the export image dialog.  Keys which do not have two parts are generally enumerations which are reused across different views.
  • Translate the English text associated with the key rather than the key itself.  For example with the 'ExportImageDialog_Instructions' key, translate the phrase 'Save a copy of the chart as an image.' rather than the key's short hand description of this text 'Instructions'.
  • Check the context box before translating.  Information which will help with the translation is often included.
  • New strings which have been added for later versions are simply recorded as '****' in partial translations.  You can quickly filter missing strings using the filter button or highlight them using the highlight button.
  • Access keys are important for some users of the application.  All strings requiring an access key have the term 'access key' in the translation context along with a group number.  Add one underscore in front of a letter which should be used as a shortcut for the command.  Where possible, access keys should be unique within each numbered group.  To find all strings requiring an access key, sort on the context column, and scroll to find the first cell with the term 'access key'.
  • Preserve the case of the words as appropriate for your language e.g. 'Date of Birth' may not be the same as 'Date of birth'.
  • Preserve punctuation e.g. '?', '.', '(', ')', ':', and '...' as appropriate for your language.  Use the punctuation button in the menu to highlight cells which should contain punctuation.
  • Some text is repeated several times throughout the program.  Single click on the Resources.xx-XX.resx column header to sort the strings.  Any groups of identical strings should have the same translation.

    Same translations

  • There are several strings which contain curly brackets and numbers e.g. {0} or {0} {1}.  These represent variables which will be inserted into the string e.g. 'A father {0} times' becomes  'A father 6 times'.

    It is vital that these remain in the translations.  Depending on the language, the position of these may need to change e.g. '{0}'s mother' in English may become 'Madre de {0}' in Spanish.

  • For all other queries, please contact support.