Translating Source Texts

Source texts are stored in POT files. The files are located in the lang folder on the Enterprise Manager server. By default, the path to the folder is the following: %PROGRAMFILES%\Veeam\Backup and Replication\Enterprise Manager\WebApp\scripts\build\production\resources\lang.

To translate source texts:

  1. Get the source files from the lang folder:
  • messages.pot
  • vcloud_messages.pot
  • vsphere_messages.pot

For more information on file names and formats, see Language Files Overview.

  1. For each language, create PO files using the POT files as templates.

For more information, see this GNU gettext article.

  1. Name the PO files as follows:
  • messages.<code>.po
  • vcloud_messages.<code>.po
  • vsphere_messages.<code>.po

For more information, see File Names.

  1. Translate PO files in a text editor or a CAT tool.

For more information on PO files, see PO File Structure.


Although PO files are not used by Veeam Backup Enterprise Manager, you can save them in the lang folder to keep them together with other language files.

PO File Structure

Each PO file contains the following elements:


Header contains meta data of the PO file: language code in the ISO 639-1 format, content type and encoding, and plural form information.




ISO 639-1 code of the translation language.


MIME version. Set it to 1.0.


Content type and character encoding used for the translation language. Set the type value to text/plain.You can use the UTF-8 encoding for any language.


Content transfer encoding. Set the value to 8bit.


Number of plural forms and the plural form formula of the translation language.

For example:

"Project-Id-Version: \n"

"POT-Creation-Date: \n"

"PO-Revision-Date: \n"

"Language-Team: \n"

"Language: de\n"

"MIME-Version: 1.0\n"

"Content-Type: text/plain; charset=UTF-8\n"

"Content-Transfer-Encoding: 8bit\n"

"Plural-Forms: nplurals=2; plural=(n != 1);\n"

"X-Generator: \n"

For more information on the PO header, see this GNU gettext article.

Translation entries

In a PO file, translation entries are separated with a blank string. Each entry consists of the following elements:

Before you begin translating, consider the following:

Variables are placed inside braces. For example, the following entry contains the restoreItemsCount variable:

msgid "Pending restore ({restoreItemsCount} items)"

msgstr "Ausstehende Wiederherstellung ({restoreItemsCount} Elemente)"

For example:

msgid "${ pointsCount } point"

msgid_plural "${ pointsCount } points"

msgstr[0] "${ pointsCount } Punkt"

msgstr[1] "${ pointsCount } Punkte"

For more information on translating plural forms, see this GNU gettext article.

Page updated 1/25/2024

Page content applies to build