Skip to main content

How to import and export Glossaries using TBX?

LingoHub supports importing and exporting Glossaries in TBX format (ISO 30042:2019, "TBX v3"). This standard XML-based format allows you to transfer complex terminology, including language variants, definitions, usage statuses, and LingoHub-specific matching rules between platforms.

Working with spreadsheets? If you prefer using Microsoft Excel or Google Sheets to edit terminology, check out our guide on How to import and export Glossaries using CSV.

How to prompt a Glossary import or export

To access the import and export options for your Glossary:

  1. Click AI in the top navigation bar and select Glossary under Context in the left navigation panel.

  2. Select your Glossary from the list.

  3. Click Import in the top-right corner to upload a file, or click the arrow next to it and select Export.

Import a Glossary

Follow these steps to import a TBX file into LingoHub:

  1. Open your target Glossary and click Import in the top-right corner.

  2. In the modal, drag and drop your TBX file into the upload area or click browse to select it from your device.

  3. Click Import to start the process.

⚠️ Important: Importing a TBX file will overwrite the current Glossary. All existing terms will be deleted and replaced by the contents of the imported file.


Export a Glossary

To download your Glossary as a TBX file:

  1. Open your Glossary and click the arrow next to the Import button in the top-right corner.

  2. Select Export.

  3. In the modal options, select Download as TBX.

  4. (Optional) Check Send me an email with the link when the file is ready to download.

  5. Click Download to save your file.


Specifications: Document structure

Items marked with an asterisk (*) may appear more than once.

tbx
└── tbxHeader
│ └── fileDesc
│ ├── titleStmt
│ │ └── title glossary name
│ └── sourceDesc
│ └── p glossary description
└── text
└── body
└── conceptEntry * one per term
├── min:subjectField term public id
├── basic:definition AI context / definition
├── note translationPreference::…
├── note enforcementStatus::…
└── langSec * one per language (xml:lang)
└── termSec * one per term variant
├── term the term text
├── min:partOfSpeech
├── min:administrativeStatus
├── basic:grammaticalGender
├── basic:termType
├── note matching::…
├── note matchExpression::…
├── note caseSensitive::…
└── note grammaticalNumber::…

Specifications: TBX header fields overview

Element

Description

tbx/tbxHeader/fileDesc/titleStmt/title

Name of your Glossary

tbx/tbxHeader/fileDesc/sourceDesc/p

Description of your Glossary

Specifications: conceptEntry (one LingoHub term)

<conceptEntry>
<min:subjectField>te_01a032cc-ca36-78f6-b3af-4437d93af81e</min:subjectField>
<basic:definition>LingoHub's all-in-one AI localization partner</basic:definition>
<note>translationPreference::NEVER_TRANSLATE</note>
<note>enforcementStatus::ENFORCED</note>

</conceptEntry>

Element

Required / Optional

Possible values

min:subjectField

Required

The term’s id te_<uuid>. We generate new ids on import.

basic:definition

Optional

Maps to the term’s AI context.

note translationPreference::

Required

TRANSLATE, NEVER_TRANSLATE

note enforcementStatus::

Required

ENFORCED, INFORMATIONAL

More details on these values

translationPreference

  • TRANSLATE: the term is translated. Each langSec carries a real locale.

  • NEVER_TRANSLATE: the term is not translated. The langSec carries the all locale.

enforcementStatus

  • ENFORCED: visible in the editor, used in translation, and checked by the quality checks.

  • INFORMATIONAL: visible in the editor and used in translation, but not checked by the quality checks.

Specifications: langSec (one language of a term)

<langSec xml:lang="de">…</langSec>

Attribute

Required / Optional

Possible values

xml:lang

Required

Any language code (en, de, en-US, pt-BR, …), or the literal all.

Specifications: termSec (one term variant)

<termSec>
<term>Antriebsstrang</term>
<min:partOfSpeech>noun</min:partOfSpeech>
<min:administrativeStatus>preferredTerm-admn-sts</min:administrativeStatus>
<basic:grammaticalGender>masculine</basic:grammaticalGender>
<basic:termType>fullForm</basic:termType>
<note>matching::prefix</note>
<note>caseSensitive::yes</note>
<note>grammaticalNumber::singular</note>
</termSec>

Element

Required / Optional

Description

term

Required

The term text

All remaining elements are optional.

Data categories (dedicated elements)

Part of speech: min:partOfSpeech

  • Possible values: noun, verb, adjective, adverb, properNoun, other

Usage status: min:administrativeStatus

  • Possible values: preferredTerm-admn-sts, admittedTerm-admn-sts, deprecatedTerm-admn-sts, supersededTerm-admn-sts

Grammatical gender: basic:grammaticalGender

  • Possible values: masculine, feminine, neuter, other

Term type: basic:termType

  • Possible values: fullForm, acronym, abbreviation, shortForm, variant, phrase

Data categories encoded as note

LingoHub specific data categories are encoded as <note> elements using the key/value form key::value (delimiter ::).

Matching: matching::

  • Controls how the term is matched against segment text.

  • Possible values: fuzzy, prefix, exact, custom

  • Defaults to prefix on import when the note is absent.

Match expression: matchExpression::

  • The custom matching expression, relevant with matching::custom.

Case sensitive: caseSensitive::

  • Possible values: yes, permissive, no

  • Defaults to yes on import when the note is absent.

Grammatical number: grammaticalNumber::

  • Possible values: singular, plural, mass, dual, other

Example TBX file for Glossaries

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-model href="https://raw.githubusercontent.com/LTAC-Global/TBX-Basic_dialect/master/DCT/TBX-Basic_DCT.sch"
type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="https://raw.githubusercontent.com/LTAC-Global/TBX-Basic_dialect/master/DCT/TBX-Basic.nvdl"
type="application/xml" schematypens="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0"?>
<tbx xmlns="urn:iso:std:iso:30042:ed-2" xmlns:basic="http://www.tbxinfo.net/ns/basic"
xmlns:min="http://www.tbxinfo.net/ns/min" style="dct" type="TBX-Basic" xml:lang="en">
<tbxHeader>
<fileDesc>
<titleStmt>
<title>LingoHub Glossary</title>
</titleStmt>
<sourceDesc>
<p/>
</sourceDesc>
</fileDesc>
</tbxHeader>
<text>
<body>
<!-- Do-not-translate term: single langSec with xml:lang="all" -->
<conceptEntry>
<min:subjectField>te_01a032ca-0fdd-7e68-bed8-fe5598351274</min:subjectField>
<basic:definition>The brand name</basic:definition>
<note>translationPreference::NEVER_TRANSLATE</note>
<note>enforcementStatus::ENFORCED</note>
<langSec xml:lang="all">
<termSec>
<term>LingoHub</term>
<min:partOfSpeech>noun</min:partOfSpeech>
<min:administrativeStatus>preferredTerm-admn-sts</min:administrativeStatus>
<basic:termType>fullForm</basic:termType>
<note>matching::prefix</note>
<note>caseSensitive::yes</note>
</termSec>
<!-- second variant of the same concept, marked as not recommended -->
<termSec>
<term>Lingohub</term>
<min:administrativeStatus>deprecatedTerm-admn-sts</min:administrativeStatus>
<note>matching::prefix</note>
<note>caseSensitive::yes</note>
</termSec>
</langSec>
</conceptEntry>

<!-- Translatable term: one langSec per locale -->
<conceptEntry>
<min:subjectField>te_01a032c9-faa1-74ff-88ec-1c1de06559c0</min:subjectField>
<basic:definition>Group of components that generate power and deliver it to the road.</basic:definition>
<note>translationPreference::TRANSLATE</note>
<note>enforcementStatus::ENFORCED</note>
<langSec xml:lang="en">
<termSec>
<term>Powertrain</term>
<min:partOfSpeech>noun</min:partOfSpeech>
<min:administrativeStatus>preferredTerm-admn-sts</min:administrativeStatus>
<basic:termType>fullForm</basic:termType>
<note>matching::prefix</note>
<note>caseSensitive::no</note>
<note>grammaticalNumber::singular</note>
</termSec>
</langSec>
<langSec xml:lang="de">
<termSec>
<term>Antriebsstrang</term>
<min:partOfSpeech>noun</min:partOfSpeech>
<min:administrativeStatus>preferredTerm-admn-sts</min:administrativeStatus>
<basic:grammaticalGender>masculine</basic:grammaticalGender>
<basic:termType>fullForm</basic:termType>
<note>matching::prefix</note>
<note>caseSensitive::yes</note>
<note>grammaticalNumber::singular</note>
</termSec>
<termSec>
<term>Antriebssystem</term>
<min:partOfSpeech>noun</min:partOfSpeech>
<min:administrativeStatus>admittedTerm-admn-sts</min:administrativeStatus>
<basic:grammaticalGender>neuter</basic:grammaticalGender>
<basic:termType>variant</basic:termType>
<note>matching::prefix</note>
<note>caseSensitive::yes</note>
<note>grammaticalNumber::singular</note>
</termSec>
</langSec>
</conceptEntry>
</body>
</text>
</tbx>

Need more help?

Couldn't find what you were looking for? We are here to help! Reach out to our team at [email protected], and we will gladly assist you.

Did this answer your question?