> For the complete documentation index, see [llms.txt](https://docs.elentra.org/ejs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.elentra.org/ejs/1.4/guide/internationalization/escl/concepts/terms.md).

# Terms

## Introduction

A **term** is a special type of [string](/ejs/1.4/guide/internationalization/escl/concepts/string-resources.md) that is evaluated against the environmental context in addition to the [active locale](/ejs/1.4/guide/internationalization/locales.md#active-locale).  Identifiers for terms are prefixed with the dollar character (`$`).

Terms are intended to represent domain-specific terminology used by a [module](/ejs/1.4/guide/modules.md) or application.

{% hint style="info" %}
**Naming Convention**

Term identifiers must be lower case, alphanumeric, begin with a dollar character (`$`) and a letter, and may include underscores (e.g. `$my_term_identifier`).
{% endhint %}

## When to use terms

A [string](/ejs/1.4/guide/internationalization/escl/concepts/string-resources.md) is the best way to represent some text that needs to be translated to another language when the [active locale](/ejs/1.4/guide/internationalization/locales.md#active-locale) changes.  However, sometimes you may need to modify a string based on different conditions, even within a single locale.  This is where terms come in.

For example, you may want to replace the word "course" with the word "program" for the **en-US** [locale](/ejs/1.4/guide/internationalization/locales.md), but only for users with a given flag on their account.

Leveraging environmental contexts, terms can be customized based on any number of conditions.

## Working with terms
