Version 1.0, updated September 30, 2026
You can upload a multidirectional glossary as a CSV or a TBX file. This package includes a template for each format, and both contain the same glossary:
multidirectional-glossary-template.csvmultidirectional-glossary-template.tbxThe glossary is multidirectional and multilingual: the system matches all language combinations included in the file.
For example, if your file includes en-US, fr-FR and it-IT, the glossary applies to:
en-US → fr-FR and fr-FR → en-USen-US → it-IT and it-IT → en-USfr-FR → it-IT and it-IT → fr-FRLanguage codes must match exactly the supported language codes in Lara (e.g. en, es, fr, en-US, it-IT). See the full list of supported language codes.
CSV (Comma-Separated Values).
guid or id; no other names are allowed.guid or id)Each row represents one multilingual concept.
guid,en-US,fr-FR,it-IT
g_1,Settings,Paramètres,Impostazioni
g_2,Account,Compte,Account
g_3,Save,Enregistrer,Salva
g_4,Cancel,Annuler,Annulla
The same file shown as a table:
| guid | en-US | fr-FR | it-IT |
|---|---|---|---|
| g_1 | Settings | Paramètres | Impostazioni |
| g_2 | Account | Compte | Account |
| g_3 | Save | Enregistrer | Salva |
| g_4 | Cancel | Annuler | Annulla |
TBX v3 (TermBase eXchange, ISO 30042:2019), an XML format, saved with the .tbx extension and encoded as UTF-8. A file in another encoding can be imported with corrupted characters.
Only the TBX-Basic dialect in DCA style is supported: the root element must declare type="TBX-Basic" and style="dca", and data categories must be written as <descrip> and <termNote> elements, not as nested <descripGrp> elements. Anything nested in <descripGrp> or <termNoteGrp> is ignored without any warning.
Files in the older TBX v2 format, whose root element is <martif>, are rejected.
<tbx>: the root element. It contains a <tbxHeader> and, inside <text> and <body>, the entries.<conceptEntry>: one multilingual concept (the equivalent of a CSV row). Its id attribute is the entry identifier.<langSec xml:lang="…">: the terms in one language. The xml:lang attribute must be a valid Lara language code: a code that Lara does not support is imported without any warning.<termSec>: one term, written in its <term> element.<conceptEntry> must have an id attribute: an entry without one is a format error. The identifier must be unique within the file: if two entries share it, the later one replaces the earlier one.<conceptEntry> must contain terms in at least two languages; an entry with only one language is skipped on import. Terms that must not be translated are the exception (see below).<term> must contain text, and every <langSec> must contain at least one <termSec>. An empty <term> or <langSec> is a format error, and the whole file is rejected.The beginning of the template, with its first entry:
<?xml version="1.0" encoding="UTF-8"?>
<tbx type="TBX-Basic" style="dca" xml:lang="en-US" xmlns="urn:iso:std:iso:30042:ed-2">
<tbxHeader>
<fileDesc>
<sourceDesc><p>Lara multidirectional glossary template</p></sourceDesc>
</fileDesc>
</tbxHeader>
<text>
<body>
<conceptEntry id="g_1">
<langSec xml:lang="en-US">
<termSec><term>Settings</term></termSec>
</langSec>
<langSec xml:lang="fr-FR">
<termSec><term>Paramètres</term></termSec>
</langSec>
<langSec xml:lang="it-IT">
<termSec><term>Impostazioni</term></termSec>
</langSec>
</conceptEntry>
<!-- … -->
</body>
</text>
</tbx>
See multidirectional-glossary-template.tbx for the complete file.
A <langSec> can contain several terms (synonyms), but only one is used for each language. To choose it, add a <termNote> of type administrativeStatus to the term:
preferredTerm-admn-sts: this term is used.deprecatedTerm-admn-sts: this term is used only if the language has no other term.In this entry, Sign in is used for English:
<conceptEntry id="g_5">
<langSec xml:lang="en-US">
<termSec><term>Log in</term></termSec>
<termSec>
<term>Sign in</term>
<termNote type="administrativeStatus">preferredTerm-admn-sts</termNote>
</termSec>
</langSec>
<langSec xml:lang="it-IT">
<termSec><term>Accedi</term></termSec>
</langSec>
</conceptEntry>
To keep a term unchanged in every language, for example a product or brand name, add <descrip type="translatable">no</descrip> to its <conceptEntry>. The entry needs only one language: its term is used for every language in the file.
Languages that the entry lists explicitly keep their own terms, for example the spelled-out form of an acronym.
In this entry, Lara stays unchanged in every language:
<conceptEntry id="g_6">
<descrip type="translatable">no</descrip>
<langSec xml:lang="en-US">
<termSec><term>Lara</term></termSec>
</langSec>
</conceptEntry>
If you need help, visit https://support.laratranslate.com or contact our support team at support@laratranslate.com.