- Qt 5.15
- Internationalization with Qt
- Translation Rules for Plurals
- Qt 5.15.17 Reference Documentation

Writing Source Code for Translation

# Translation Rules for Plurals

The table below shows the specific rules that are produced by Qt Linguist and `lrelease` for a selection of languages. Cells marked otherwise indicate the form used when none of the other rules are appropriate for a specific language.

Language | Rule 1 | Rule 2 | Rule 3
--- | --- | --- | ---
English | `n == 1` | otherwise | N/A
French | `n < 2` | otherwise | N/A
Czech | `n % 100 == 1` | `n % 100 >= 2 && n % 100 <= 4` | otherwise
Irish | `n == 1` | `n == 2` | otherwise
Latvian | `n % 10 == 1&& n % 100 != 11` | `n != 0` | otherwise
Lithuanian | `n % 10 == 1&& n % 100 != 11` | `n % 100 != 12 && n % 10 == 2` | otherwise
Macedonian | `n % 10 == 1` | `n % 10 == 2` | otherwise
Polish | `n == 1` | `n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 > 20)` | otherwise
Romanian | `n == 1` | `n == 0|| (n % 100 >= 1 && n % 100 <= 20)` | otherwise
Russian | `n % 10 == 1&& n % 100 != 11` | `n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 > 20)` | otherwise
Slovak | `n == 1` | `n >= 2 && n <= 4` | otherwise
Japanese | otherwise | N/A | N/A

The rules themselves are not documented and are internal to Qt Linguist and `lrelease`.

Writing Source Code for Translation