Conjugations

@a-or-an

  • parameter: some text (a word)

  • returns: that word, preceded by either “a” or “an”

This function inserts the undefined article “a” or “an” before an English word. For example, when passing “house” it will return “a house”, while if passing “animal” it will return “an animal”.

Please note that, while this special function uses a reasonably advanced algorithm and takes into account many different exceptions, there exists no exhaustive list of words and their undefined article, so in a few edge-cases errors may occur.

@acc

  • any type of parameter

  • returns: that same parameter, but flagged as requesting the accusative case

  • see also: @case

This function causes its parameter to be flagged as requiring the accusative case. Currently, the only scenario where this is supported, is for durations in Lithuanian. (Please contact us if you would have your own use cases).

This function has no effect in languages that do not support cases (such as English, French and Dutch).

@art-undef

  • parameter: a concept

  • returns either nothing (if no undefined articles apply in the language) or text representing the correct undefined article

For example, in French, @art-undef(#buyer) would return un if the conceptlabel would be set to “acheteur”.

This special function operates in exactly the same way as @art-def, except that it returns an undefined article.

@in-language

  • first parameters: either a datafield or a #concept

  • second parameter: a two-character string referring to the language (“en”, “nl”, “fr”, “lt”, “de”, …)

  • returns text (or nothing)

  • see also: @multi-language

When a text-datafield (#concept^datafield) is passed as a parameter, this function will return the value of that datafield in the specified language.

When a #concept is passed as a parameter, this function will return the current concept-label for that concept in the specified language.

In both scenarios, this function can help constructing multi-language documents. In particular, this function allows you to use phrases such as “Président / Chairman” in a paragraph that is prohibited from being translated in a multi-language output.

For example, assume that your main language is French and that you want to translate the French clauses to English, whereby the concept-label #president gets outputted as “Président” in French and “Chairman” in English. In the signature box — which should obviously not get translated — you can then insert the following text in the French version:

#president / @in-language(#president, "en")

This would then output as “Président / Chairman”. When you would change the concept-label, it would immediately get updated as well.

Similarly, if the function of a certain person would get stored in a multi-language text-datafield, you could use @in-language(#signatory^function, "en") in the uni-language signature box to pull the English data from the datafield.

@is-plural

  • parameter: a defined term (#concept)

  • returns true or false

  • see also: @is-singular

Returns true if the preferred number for the defined term is plural; otherwise returns false.

For example, @is-plural(#employee) will return true if the conceptlabel used for concept “employee” defaults to the plural form.

Tip: you can easily invert the behaviour of this special function: not(@is-plural(#employee)) will return true if concept “employee” is not currently set to a plural word.

@is-singular

  • parameter: a defined term (#concept)

  • returns true or false

  • see also: @is-plural

Returns true if the preferred number for the defined term is singular; otherwise returns false.

For example, @is-singular(#employee) will return true if the conceptlabel used for concept “employee” defaults to the singular form.

Tip: you can easily invert the behaviour of this special function: not(@is-singular(#employee)) will return true if concept “employee” is not currently set to a singular word.

@is-female

  • parameter: a defined term (#concept)

  • returns true or false

  • see also: @male-female and @is-male / @is-neutral

Returns true if the current conceptlabel of the specified concept is set to female.

For example, @is-female(#employee) will return true if the conceptlabel used for concept “employee” is currently set to a word with female gender.

Tip: you can easily invert the behaviour of this special function: not(@is-female(#employee)) will return true if concept “employee” is currently set to a word with neutral or male gender.

@is-male

  • parameter: a defined term (#concept)

  • returns true or false

  • see also: @male-female and @is-female / @is-neutral

Returns true if the current conceptlabel of the specified concept is set to male.

For example, @is-male(#employee) will return true if the conceptlabel used for concept “employee” is currently set to a word with male gender.

Tip: you can easily invert the behaviour of this special function: not(@is-male(#employee)) will return true if concept “employee” is currently set to a word with neutral or female gender.

@is-neutral

  • parameter: a defined term (#concept)

  • returns true or false

  • see also: @male-female and @is-female / @is-male

Returns true if the current conceptlabel of the specified concept is set to neutral gender (for those languages that support it, such as Dutch).

For example, @is-neutral(#employee) will return true if the conceptlabel used for concept “employee” is currently set to a word with neutral gender.

Tip: you can easily invert the behaviour of this special function: not(@is-neutral(#employee)) will return true if concept “employee” is currently set to a word with male or female gender.

@male-female

  • parameter: a defined term (#concept), some second parameter, and some third parameter

  • returns either the second parameter or the third parameter

  • see also: @is-male and @is-female

Returns the second parameter if the specified concept is currently set to a male conceptlabel, and returns the third parameter if the specified concept is currently set to a female conceptlabel. Returns nothing if no conceptlabel is set, or the conceptlabel is set to the neutral form (in languages that have a neutral form, such as Dutch).

For example, @male-female(#employee, 5, 6) will return 5 if the current conceptlabel of #employee is set to male, and returns 6 if set to female. Similarly, @male-female(#employee, "Mr", "Ms") will return either Mr or Ms

@multi-language

  • no parameters

  • returns true or false

  • see also: @in-language

Returns true if the current document contains multiple languages at once (i.e., is printed with multiple columns). Note that this will never be the case when a document is shown within the browser.

Tip: you can easily invert the behaviour of this special function: not(@multi-language) will return true only one single language is being outputted.

@case

  • parameters:

    • a concept or reference

    • text, with the first letter(s) of the required grammatical case

  • returns the parameter (e.g., if a concept was specified, it will return a concept) with the grammatical case applied to it

For example, @case(#buyer, "g") will return the specified concept, forced into the genitive. Read more about the use of grammatical cases on the Conjugations page.

@art-def

  • parameter: a concept

  • returns either nothing (if no defined articles apply in the language) or text representing the correct defined article

For example, in French, @art-def(#buyer) would return l' if the conceptlabel would be set to “acheteur”.

This special function can be useful for situations where you need to split the article from the concept — as would for example be the case when you want the defined term to be bold, but not its article. For languages such as English (where the defined article is always the same), you can simply write something like the ~#-employer~ . In German, however, the article will change depending on the gender and grammatical function of the noun (concept), so you do not necessarily know which article will apply. In such cases, @art-def is crucial, as it allows you to write @art-def(#employer) ~#-employer~ .

Tip: you can force a certain grammatical case by combining @art-def with @case. In the previous example, you could for example write @art-def(@case(#employer, "g")) ~#-@case(employer, "g")~ to force both the article and the conceptlabel into genitive.

@one-else

  • first parameter: a whole number (or a duration, for which the number will then be extracted)

  • second and third parameter: text

  • returns text

  • see also: @one-else-nr

Returns the second parameter if the first parameter is equal to 1 or -1. In all other cases, returns the third parameter.

This function is typically used as a shortcut form — see the examples below.

Examples:

  • @one-else(1, "unit", "units") will result in “unit”. It would be similar to writing {#some^datafield = 1: unit | else: units}

  • @one-else(3, "unit", "units") will result in “units”

@one-else-nr

  • first parameter: a whole number (or a duration, for which the number will then be extracted)

  • second and third parameter :text

  • returns the number, followed by the text

  • see also: @one-else

Returns the number, followed by:

  • the second parameter if the first parameter is equal to 1 or -1;

  • in all other cases, returns the third parameter.

This function is typically used as a shortcut form — see the examples below.

Examples:

  • @one-else-nr(1, "unit", "units") will result in “1 unit”. It would be similar to writing {#some^datafield = 1: 1 unit | else: #some^datafield units}

  • @one-else-nr(3, "unit", "units") will result in “3 units”

@possessive

  • parameter: text (or some parameter that can be converted to text)

  • returns the text with either 's or ' appended

Only supported in Danish, Dutch, English and Swedish. In all other languages, the word is returned as-is (unmodified).

In the supported languages, this function returns the word with either only an apostrophe, or both an apostrophe and the letter “s” appended. The idea is to return the possessive (genitive) form.

For example, in English, this adds both apostrophe and the letter “s” when the original word does not end on the letter “s” — e.g., house becomes house's, while series becomes series' . Slightly different rules apply for Dutch, Danish and Swedish.

Do note that the algorithm used is not perfect, and does not perform a lookup in the dictionary. A minority of words will therefore be incorrect in the possessive form.

@plural

  • parameter: #concept

  • returns text (label of the concept)

  • see also: @singular

Returns the label of the passed concept, in plural form if possible.

See a dedicated video that talks about this function.

@singular

  • parameter: #concept

  • returns text (label of the concept)

  • see also: @plural

Returns the label of the passed concept, in singular form if possible.

See a dedicated video that talks about this function.

@singular-plural

  • first parameter: a whole number

  • second parameter: a defined term (#concept)

  • see also: @one-else

Returns the singular form of the specified concept if the first parameter is equal to one; otherwise returns the plural form of the specified concept.

For example, @singular-plural(1, #concept) will return the singular form of the conceptlabel assigned to #concept.

Last updated