# What makes pluralized strings recognized?

**URL:** https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305
**Category:** Developers
**Created:** [November 29, 2024, 7:49am UTC](https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305 "2024-11-29T07:49:07Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![syl](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@syl](https://community.transifex.com/u/syl)
#### Post date: [November 29, 2024, 7:49am UTC](https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305/1 "2024-11-29T07:49:07Z")

</div>

I want to ask you what makes pluralized strings recognized by Transifex. As I have some of them available for translate via Transifex UI for plurals (one, few, many, others and so on) and some others language strings are not recognized and displayed in RAW mode (plain text). And they are not searchable by filter `pluralized:yes` (for translators).

Based on these topics:

> [@Cannot enter number placeholder for a plural form](https://community.transifex.com/t/cannot-enter-number-placeholder-for-a-plural-form/3033):
>
> I am trying to translate an Android [app](https://www.transifex.com/nextcloud/nextcloud/translate/#uk/android-notes) to Ukrainian but I am facing an issue with plural forms. transifex prevents me from using the number placeholder because in the original text one of the forms omits it. The [text](https://www.transifex.com/nextcloud/nextcloud/translate/#uk/android-notes/191740182) in question: \<plurals name="bulk\_notes\_deleted"\> \<item quantity="one"\>Deleted one note\</item\> \<item quantity="other"\>Deleted %1$d notes\</item\> \</plurals\> (notice that form “one” does not have the placeholder) The translation I need to enter should look like this: \<plur…

> [@Plural-Forms conflict](https://community.transifex.com/t/plural-forms-conflict/3875):
>
> When uploading a partially translated PO file from other sources into Transifex, I faced an issue related to the difference of the Plural-Forms used in Transifex for Brazilian Portuguese. The error message: Invalid plural types for string: local assignment to syntactic function: :local assignments to syntactic functions: . Language supports: [‘one’, ‘many’, ‘other’], but found: [‘one’, ‘many’] instead. Other translation open source software out there define pt\_BR Plural-Forms as "Plural-For…

> [@Where does the "5" come from in the json-export of pluralized strings?](https://community.transifex.com/t/where-does-the-5-come-from-in-the-json-export-of-pluralized-strings/1389/4):
>
> Hi @Bertrand_Delforge, Please note that the number of forms depends on the language. Each language has its own rules so for example, if you are referring to English then only 2 forms will be defined: ‘1’ for ‘one’ ‘5’ for ‘other’ If you are referring to Arabic, though, we need to have the following forms instead: ‘0’ for ‘zero’ ‘1’ for ‘one’ ‘2’ for ‘two’ ‘3’ for ‘few’ ‘4’ for ‘many’ ‘5’ for ‘other’

I guess you have rules for every single language [specified here](https://www.unicode.org/cldr/charts/46/supplemental/language_plural_rules.html) plus recognize standardized ICU message format.

Does Transifex’s plural UI only supports a subset of the ICU message format or there is no such limitation?

---

<div class="post-metadata">

### Author: ![Mylon](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.transifex.com/mylon/32/2139_2.png) [@Mylon](https://community.transifex.com/u/Mylon)
#### Post date: [November 29, 2024, 11:20am UTC](https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305/2 "2024-11-29T11:20:28Z")

</div>

Hello @syl,

I am Antonis from the Transifex Customer Success team.

You are correct. We follow Unicode CLDR rules for pluralized strings for all our languages, and this controls which plural forms are required for each language so that your string can be pluralized. For example, if a language requires one, many, and other plural forms, but you only have one and many, you will receive an error for that string (missing plural form).

Rarely, a language or locale might be out of date compared with the latest CLDR rules. If you’re following the latest rules and you are getting errors on Transifex, you can let us know about the issue, and we will resolve it.

The other half of the equation is the file type you are using. The formats that support pluralized strings might have a specific structure, which Transifex recognizes when parsing your file to display the string as pluralized. You can find a full list of our supported file types [here](https://help.transifex.com/en/collections/3519116-file-formats) with their expected structure.

Please let me know if you have any questions, and I will be happy to help.

---

<div class="post-metadata">

### Author: ![syl](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@syl](https://community.transifex.com/u/syl)
#### Post date: [November 29, 2024, 11:36am UTC](https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305/3 "2024-11-29T11:36:14Z")

</div>

What is the difference if any for:

tx config  
`lang_map = zh-Hans: zh_Hans, zh-Hant: zh_Hant`  
vs  
`lang_map = sr@latin: sr_Latn, zh_CN: zh_Hans, zh_TW: zh_Hant, tr_TR: tr`

language file  
`"Plural-Forms: nplurals=2; plural=(n != 1);\n"`  
vs  
`"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"`

What happens when `Plural-Forms:` is missing?

---

<div class="post-metadata">

### Author: ![Mylon](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.transifex.com/mylon/32/2139_2.png) [@Mylon](https://community.transifex.com/u/Mylon)
#### Post date: [November 29, 2024, 1:19pm UTC](https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305/4 "2024-11-29T13:19:04Z")

</div>

Hey @syl,

The logic behind the two language maps is the same: remote: local pairs separated by a comma, so both should work.

For the plural forms:

- The first rule is a simple binary plural form (commonly used in English and many other languages)

- The second rule is much more complex, with 6 plural forms (commonly used in Arabic)

When `Plural-Forms` is missing most systems will fall back to the simplest plural form: just 1 form (nplurals=1). This means all numbers will be treated the same way, without any plural distinction. This can lead to incorrect pluralization in the interface. The best practice is to always specify the plural forms for proper localization.

Does this help?

---

<div class="post-metadata">

### Author: ![syl](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@syl](https://community.transifex.com/u/syl)
#### Post date: [November 29, 2024, 2:06pm UTC](https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305/5 "2024-11-29T14:06:31Z")

</div>

Yes, your support is very helpful. Thank you.

---

<div class="post-metadata">

### Author: ![syl](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@syl](https://community.transifex.com/u/syl)
#### Post date: [November 29, 2024, 2:39pm UTC](https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305/6 "2024-11-29T14:39:54Z")

</div>

Translator is able to use filter `pluralized:yes` to get pluralized strings. A lot of open source projects do not know about this feature. As I see this means strings were correctly recognized as pluralized and are available to translate via Transifex UI.

How to detect strings which are not going to be recognized as pluralized? In other topic I have asked for Transifex tools responses when organization pushes new strings. Any documentation how to make it automated?

As pluralized but not recognized strings usually contains plural keyword. I guess Transifex is not looking for anything which is not compatible with what is expected.

---

<div class="post-metadata">

### Author: ![colvera](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.transifex.com/colvera/32/3187_2.png) [@colvera](https://community.transifex.com/u/colvera)
#### Post date: [November 29, 2024, 4:19pm UTC](https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305/7 "2024-11-29T16:19:52Z")

</div>

Hi @syl,

At the moment there is no way to identify strings that are not recognized as pluralized.

Regarding pushing new strings notifications, Project collaborators (translators, reviewers, language coordinators) can get notified about changes in the source strings in the project(s) they work on by enabling the Watch functionality

Those who enabled this feature are notified whenever one of the following events happens:

- A new source file is added;

- An existing source file is updated;

- A source file is deleted.

Collaborators who didn’t enable the Watch feature will still be notified when **a new resource is created** in Transifex.

Collaborators instantly receive an in-app notification, and a grouped notification email is sent 2 hours after the first event occurs.

The “Watch” feature can be found in the upper right corner of the project’s Overview page.

[![](https://downloads.intercomcdn.com/i/o/895100149/ae32fdbb0077b94ba12bff2d/image.png?expires=1732898700&signature=0ff0de12201089175dc40fdc51bfe51c1e18de6f6707962fd9fd21346bb9b546&req=fCkiF8l%2BnIVWFb4f3HP0gMexAXXgM61KpH6ixJxk64b5Z6%2BB9dxALtyE7qXh%0A3dqXqbVmeDnMVoIa%2Fg%3D%3D%0A)](https://downloads.intercomcdn.com/i/o/895100149/ae32fdbb0077b94ba12bff2d/image.png?expires=1732898700&signature=0ff0de12201089175dc40fdc51bfe51c1e18de6f6707962fd9fd21346bb9b546&req=fCkiF8l%2BnIVWFb4f3HP0gMexAXXgM61KpH6ixJxk64b5Z6%2BB9dxALtyE7qXh%0A3dqXqbVmeDnMVoIa%2Fg%3D%3D%0A)

Collaborators can check what projects they watch by clicking on their Organization \> My profile \> Notification settings \> Watches.

[![](https://downloads.intercomcdn.com/i/o/895107655/b63665bb841ff1727c3c9b7e/image.png?expires=1732898700&signature=c420c240d15aff7597d630a224de511a477acc2972e59ce05b8f986f31c38899&req=fCkiF8l5m4RaFb4f3HP0gK94litIMB%2Bc3RzgXIWYbtPBqj0vmdps4xSzWU%2FL%0AA%2F9HurUzVgsA7YBamw%3D%3D%0A)](https://downloads.intercomcdn.com/i/o/895107655/b63665bb841ff1727c3c9b7e/image.png?expires=1732898700&signature=c420c240d15aff7597d630a224de511a477acc2972e59ce05b8f986f31c38899&req=fCkiF8l5m4RaFb4f3HP0gK94litIMB%2Bc3RzgXIWYbtPBqj0vmdps4xSzWU%2FL%0AA%2F9HurUzVgsA7YBamw%3D%3D%0A)

More information about notifications can be found [here](https://help.transifex.com/en/articles/6304539-notifications#h_eace884dbe).  
I’m attendant to your comments,

---

<div class="post-metadata">

### Author: ![syl](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@syl](https://community.transifex.com/u/syl)
#### Post date: [November 29, 2024, 4:22pm UTC](https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305/8 "2024-11-29T16:22:34Z")

</div>

Yes, I get such notification and I like them. Thank you for mentioning them.

---

<div class="post-metadata">

### Author: ![syl](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@syl](https://community.transifex.com/u/syl)
#### Post date: [November 29, 2024, 6:30pm UTC](https://community.transifex.com/t/what-makes-pluralized-strings-recognized/4305/9 "2024-11-29T18:30:34Z")

</div>

For anyone using Python/Django this part of documentation may make your life easier.

> **[Gettext (PO) | Transifex Help Center](https://help.transifex.com/en/articles/6220794-gettext-po)**
>
> Information about how Transifex handles the Gettext (.po, .pot) file format.
