Bundt User's Manual · Bundt Toolset version


One of the aspects supported by ConML is multilingualism. This means that we can represent things in multiple natural languages (such as English or Spanish) within the same model.


When we represent things, we tend to think of the words used to refer to, or describe, those things as their intrinsic properties. For example, the word "Building" probably evokes a clear picture in our head. However, words are just symbols that we use to refer to things, and they are language-dependent. In Spanish we wouldn't use "Building" but probably "Edificio" to refer to the same kind of things.

For this reason, model elements are not related to specific words in a language, but to the underlying concepts. We can, of course, use words on top of those concepts to easily refer to them.

For example, the name of a class in Bundt, such as Building, is not an intrinsic property of the class, and doesn't identify it. Rather, each class is identified by a key. The name of the class is an additional label that we assign for each language of interest. In this manner, a multilingual type model can store the names (and other texts) of model elements in multiple languages, and switch between them as necessary. Similarly, a multilingual instance model can store text contents of its values in multiple languages, and switch between them as necessary.

Languages and multilingual data

When you create a model in Bundt, it contains an initial language, which defaults to en_GB "English" if you don't specify otherwise. From that point on, most text values that you enter are linked to that language. For example, when you create a Building class, the model records that the name "Building" is in English.

You can add extra languages at any point through the Languages property page. If you do that, you will need to specify class names (and most other texts) in a type model, or multilingual text values in an instance model, for each individual language in the model.

Default language

There is always a default language in a model. When any multilingual text is displayed or retrieved, the default language is used automatically. For example, if the default language for a type model was en_GB, a class would be displayed as "Building". If you then change the default language to es_ES, the same class would be displayed as "Edificio".

Language names

Every language has a name, such as en_GB for British English or es_ES for European Spanish. By convention, language names are expressed by following the IETF BCP 47 language tag standard. Specifically, a language name is composed of:

  • An ISO 639 two-letter lowercase code associated with a language, such as "en" for English or "es" for Spanish.
  • An ISO 3166 two-letter uppercase code associated with a country or region, such as "GB" for Britain or "ES" for Spain.

Although the IETF BCP 47 language tag establishes that a hyphen "-" is used to separate the two codes, Bundt uses an underscore character "_" so that language names comply with identifier syntax.

User interface

If there is a single language in the model, Bundt assumes that any text is in that language, and you don't need to do anything special. However, if there are more than one language in the model, Bundt uses multilingual text boxes for text input:

Multilingual text box screenshot

Note that, in the image, a special icon appears to the right of the text box. By clicking this icon, a menu pops up with options to edit localized texts. By clicking "Edit" on the menu, or Ctrl-clicking the button, you can enter the text in each applicable language:

Multilingual text box screenshot

See Also

Contents distributed under a Creative Commons Attribution 4.0 International License · About · Terms of Use · Contact Us · last updated on 08 October 2020