Notice the “_” (correct) vs “-” (wrong) in language code! Wrong language code (for example “en-GB”) results in pluralisation rules NOT being loaded by Qt runtime and breaks plural strings in applications.
Problem is that QT is internally using extended language codes with underscore “_” and not with dash “-”.
So if TS file with language=“en-US” gets compiled into QM file and then loaded by QTranslator in QT/c++ source code, QT library does not recognize what actual language the translation is.
Translation gets loaded and user sees translated strings but QT does not load proper pluralisation rules because of unrecognized language. This causes all plural strings to be incorrectly displayed in all QT-based applications for all languages which have extended codes (“en-US”, “en-GB”, “pt-BR”, etc.).
In most file formats, Crowdin uses standard language codes by default. You’re welcome to verify these codes on our reference page here: Crowdin Language Codes
For specific or custom requirements, we offer various additional apps that can modify language codes as needed.