Closed andris-zalitis closed 1 year ago
Hey @andris-zalitis,
Thank you for bringing this to our attention. This is not an issue with the client. The client is not capable of looking inside .stringsdict files, neither in any other file format. This error is raised by Transifex itself. You can verify this by uploading the same source file via the UI.
Unfortunately, this is a very hard issue to solve. The way the database internals interpret plurals, each language is configured with specific rules that are dictated by the Unicode CLDR Project.
Feel free to contact our support so that issue can be in consideration by our product team.
This is not an issue with the client. The client is not capable of looking inside .stringsdict files, neither in any other file format. This error is raised by Transifex itself. You can verify this by uploading the same source file via the UI.
👍
The way the database internals interpret plurals, each language is configured with specific rules that are dictated by the Unicode CLDR Project.
Yup, but .zero
should be also included additionally to language specific pluralization rules.
Feel free to contact our support so that issue can be in consideration by our product team.
That does not sound promising 😟
When trying to upload a source English
stringsdict
resource withzero
plural rule property, transifex client fails with:<...> - upload of resource '<...>' failed - parse_error: Invalid plural types for string: <...> Language supports: ['one', 'other'], but found: ['zero', 'one', 'other'] instead.
Note that even though for English
zero
does not provide different fromother
pluralization rule, it is still supported by Xcode for the purpose of differentiation for cases like this:Now, since we are using Transifex for our project we are forced to use
if else
😬 to implement different string resource for zero and non zero cases.In Apple's documentation we can see that
zero
is listed as non language dependent rule (i.e. available in all languages).As a side note - if the rule is not used by language, it is simply ignored so it can't harm. The incorrect check done by transifex client does harm by blocking translation syncing and subsequently a workaround for it harms code quality.