---
title: ICU support in Matecat
description: This article describes Matecat's support for ICU's message format, incuding support for automated QA checks.
---

[Skip to content](https://guides.matecat.com/icu-support#main-content)

[![matecat-logos\_Tavola disegno 1 copia (1)](https://guides.matecat.com/hs-fs/hubfs/matecat-logos_Tavola%20disegno%201%20copia%20(1).png?width=200&height=40&name=matecat-logos_Tavola%20disegno%201%20copia%20(1).png)](https://www.matecat.com/)

Open main navigation

Close main navigation

- [Contact us](https://guides.matecat.com/kb-tickets/new)

[Contact us](https://guides.matecat.com/kb-tickets/new?hsLang=en)

 How can we help you today?

- There are no suggestions because the search field is empty.

1. [User guide](https://guides.matecat.com/?hsLang=en)
2. [Quality check tools](https://guides.matecat.com/quality-check-tools?hsLang=en)

# ICU support in Matecat

Matecat supports the **ICU (International Components for Unicode) Message Format**, a standardized syntax used to create dynamic and localized content.

The ICU Message Format allows translators and developers to handle language variations directly within a single string, ensuring that translations remain grammatically correct and contextually appropriate across languages.

With ICU Message Format, you can manage:

- **Plural forms**
- **Ordinal numbers**
- **Conditional text output (such as gender variations)**

This format is widely used in multilingual applications and websites to ensure translations adapt correctly to different grammatical structures and language rules.

Matecat specifically supports the **plural**, **selectordinal** and **select** complex ICU arguments (see below for more information).

Matecat’s detection of ICU syntax can be activated through the dedicated toggle in the ***Other*** tab of Matecat’s project creation settings.  
When ICU syntax detection is activated:

- Strings containing valid complex ICU arguments are never segmented.
- Matecat performs ICU-specific QA checks on these strings (more details below).

![](https://guides.matecat.com/hs-fs/hubfs/undefined-Mar-12-2026-05-32-21-9970-PM.png?width=670&height=399&name=undefined-Mar-12-2026-05-32-21-9970-PM.png)

### **Supported Complex Arguments**

#### **Plural (Cardinal Numbers)**

The **plural** **argument** allows a message to change depending on the value of cardinal numbers (e.g. 1, 15, 100 etc.).

This ensures your translation remains grammatically correct, no matter what number is inserted into the sentence.

An example of a valid **plural** argument could be:  
`{itemCount, plural, one{He has one book} other{He has # books}}`

In the example above, the # symbol acts as a placeholder that automatically displays the actual number. In your translations, you can use two different methods to display this value:

- **The # symbol**: This is the standard ICU shorthand for the numeric value.
- **The variable name in curly brackets**: For example, {itemCount}.

Both will result in the same final output (e.g., "He has 15 books").

**Plural** rules vary by language, Matecat follows the rules established in the latest [CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules) version.  
When you translate a **plural** argument, Matecat identifies the specific categories your target language requires and displays them in the ICU tab (details below).

All required **plural** forms must be included in the translation. If a form is missing, Matecat will flag it as a blocking issue to prevent errors in the final localized product.

#### **Selectordinal (Ordinal Numbers)**

The **selectordinal argument** is similar to the **plural** argument, but it is used for ordinal numbers (e.g. 1st, 2nd, 3rd, 4th etc.).

An example of a valid **selectordinal** argument could be:  
`{year, selectordinal, one {It's my cat's #st birthday!} two {It's my cat's #nd birthday!} few {It's my cat's #rd birthday!} other {It's my cat's #th birthday!}}`

Just like with plurals, you can display the numeric value in your translation using:

- **The # symbol**: The standard shorthand.
- **The variable name in curly brackets**: For example, **{year}**.

**Selectordinal** rules vary by language, Matecat follows the rules established in the latest [CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules) version.  
When you translate a **selectordinal** argument, Matecat identifies the specific categories your target language requires and displays them in the ICU tab (details below).

All required **selectordinal** forms must be included in the translation. If a form is missing, Matecat will flag it as a blocking issue to prevent errors in the final localized product.

#### **Select (Gender or Conditional Content)**

The **select argument** is used when the text changes depending on a variable’s value (a specific word or category).  
It is most commonly used to handle **gender-based grammar variations**.

An example of a valid **select** argument could be:  
`{gender, select, male{He uses Matecat} female{She uses Matecat} other{They use Matecat}}`

In this case, the sentence will change based on the value of the **gender** variable.

The only rule for **select** arguments is that the **other clause is always required**.  
Failure to include the **other** clause in the translation is flagged as a blocking issue by Matecat.

#### **Nested ICU Arguments**

ICU syntax allows you to nest arguments inside one another. This is useful when a sentence contains multiple dynamic values that each require different grammatical rules, such as a sentence that changes based on both gender and quantity.  
Nesting can involve identical argument types or a mix of different types.

An example of a **plural** argument nested inside a **select** argument could be:  
`{gender, select, male} female} other}}`

Tips for handling nested arguments:

- **Track your braces:** Every opening bracket { must have a matching closing bracket }. Nested arguments often end with multiple brackets (e.g., }}}), and missing even one will cause a syntax error.
- **Use the ICU Tab:** For complex nested strings, the **ICU tab** is highly recommended. It breaks the logic down into separate fields, so you don't have to manage the nested brackets manually in the main editor.
- **Check the Live Preview:** Use the preview tool in the ICU tab to test different combinations of your variables (e.g., "female" + "plural") to ensure the sentence flows naturally in every scenario.

### **ICU Messages in Matecat’s Editor**

When ICU detection is enabled, Matecat automatically identifies complex arguments. To help you translate effectively, several features are activated:

- **Syntax Highlighting:** ICU code elements are highlighted in **blue**. These are functional parts of the segment and should not be translated.
- **Automatic QA:** Matecat enables specific checks for ICU syntax and CLDR language rules.
- **The ICU Tab:** A dedicated interface appears to help you manage complex logic without manual coding.

![](https://guides.matecat.com/hs-fs/hubfs/undefined-Mar-12-2026-05-33-18-2131-PM.png?width=670&height=132&name=undefined-Mar-12-2026-05-33-18-2131-PM.png)

#### **The ICU Tab**

The ICU tab is designed to simplify the translation of complex arguments. It provides:

- **Plural & Ordinal Rules:** It shows the specific rules for your target language, including descriptions and examples of when to use each form (e.g., *one*, *few*, *many*).
- **Interactive Testing:** You can input different "Test values" for your variables to see how the sentence adapts.
- **Live Preview:** This section shows the rendered output in real time, allowing you to verify that the grammar and flow are perfect before confirming the segment.

![](https://guides.matecat.com/hs-fs/hubfs/undefined-Mar-12-2026-05-33-17-9531-PM.png?width=670&height=125&name=undefined-Mar-12-2026-05-33-17-9531-PM.png)

![](https://guides.matecat.com/hs-fs/hubfs/undefined-Mar-12-2026-05-33-18-8507-PM.png?width=670&height=211&name=undefined-Mar-12-2026-05-33-18-8507-PM.png)

#### **Syntax and QA Checks**

To ensure the final product works correctly, Matecat runs automatic checks for both syntax errors (like missing brackets) and linguistic requirements (like missing plural forms).

If an issue is found:

1. **A Warning Message is displayed:** You will see a clear notification of what is wrong.
2. **A Suggestion is provided:** Whenever possible, Matecat will suggest a fix to help you correct the issue quickly.

These errors are flagged as a blocking issue by Matecat.

![](https://guides.matecat.com/hs-fs/hubfs/undefined-Mar-12-2026-05-33-18-4840-PM.png?width=670&height=253&name=undefined-Mar-12-2026-05-33-18-4840-PM.png)

- [Getting Started](https://guides.matecat.com/getting-started?hsLang=en#main-content)

    - [Matecat overview](https://guides.matecat.com/getting-started?hsLang=en#matecat-overview)
    - [Data security](https://guides.matecat.com/getting-started?hsLang=en#data-security)
- [Workflow](https://guides.matecat.com/workflow?hsLang=en)
- [Machine Translation](https://guides.matecat.com/machine-translation?hsLang=en)
- [Language assets](https://guides.matecat.com/language-assets?hsLang=en#main-content)

    - [Translation Memories](https://guides.matecat.com/language-assets?hsLang=en#translation-memories)
    - [Termbase](https://guides.matecat.com/language-assets?hsLang=en#termbase)
- [Project Analysis](https://guides.matecat.com/project-analysis?hsLang=en)
- [Editor](https://guides.matecat.com/editor?hsLang=en#main-content)

    - [Revision](https://guides.matecat.com/editor?hsLang=en#revision)
    - [Settings](https://guides.matecat.com/editor?hsLang=en#settings)
- [Workspace](https://guides.matecat.com/workspace?hsLang=en)
- [Tags](https://guides.matecat.com/tags?hsLang=en)
- [Working faster](https://guides.matecat.com/working-faster?hsLang=en)
- [Quality check tools](https://guides.matecat.com/quality-check-tools?hsLang=en)
- [Advanced Features](https://guides.matecat.com/advanced-features?hsLang=en)
- [Matecat utilities](https://guides.matecat.com/matecat-utilities?hsLang=en)
- [Google integration](https://guides.matecat.com/google-integration?hsLang=en)
- [Contact us](https://guides.matecat.com/contact-us?hsLang=en)

[![Chill listening crop-3](https://guides.matecat.com/hubfs/logo_matecat_small-1.svg "Chill listening crop-3")](https://www.matecat.com)

The Matecat support team is available Monday/Friday from 9:00 to 19:00 CET.

Copyright © 2025, Translated