[GH-ISSUE #5458] Missing plural forms #28158

Closed
opened 2026-04-18 12:05:02 -05:00 by GiteaMirror · 4 comments
Owner

Originally created by @mKoonrad on GitHub (Jul 2, 2025).
Original GitHub issue: https://github.com/bitwarden/android/issues/5458

Steps To Reproduce

In many languages, there is more than one plural form. App currently does not support plural forms. There is no way to translate some strings correctly. You need to add full support for plurals. Then Crowdin translator will have opportunity to translate plurals in specific country format.

Example English:
1 character
2 characters,
10 characters
etc.

Polish:
1 znak
2 znaki
5 znaków

Expected Result

Strings with missing plurals to add:

1.

18bafaba8a/app/src/main/res/values/strings.xml (L112)
to

<plurals name="master_password_length_val_message_x">
    <item quantity="one">Master password must be at least %1$s character long.</item>
    <item quantity="other">Master password must be at least %1$s characters long.</item>
</plurals>

and changes in Kotlin files, which I do not know how to fix.

2.

18bafaba8a/app/src/main/res/values/strings.xml (L311)
to

<plurals name="password_exposed">
    <item quantity="one">This password has been exposed %1$s time in data breaches. You should change it.</item>
    <item quantity="other">This password has been exposed %1$s times in data breaches. You should change it.</item>
</plurals>

and changes in Kotlin files, which I do not know how to fix.

3.

18bafaba8a/app/src/main/res/values/strings.xml (L613)
to

<plurals name="your_master_password_cannot_be_recovered_if_you_forget_it_x_characters_minimum">
    <item quantity="one">Your master password cannot be recovered if you forget it! %1$s character minimum.</item>
    <item quantity="other">Your master password cannot be recovered if you forget it! %1$s characters minimum.</item>
</plurals>

and changes in Kotlin files, which I do not know how to fix.

4.

18bafaba8a/app/src/main/res/values/strings.xml (L757)
to

<plurals name="minimum_characters">
    <item quantity="one">%1$s character</item>
    <item quantity="other">%1$s characters</item>
</plurals>

and changes in Kotlin files, which I do not know how to fix.

Actual Result

Missing plural forms. Can't translate some strings correctly.

Screenshots or Videos

No response

Additional Context

More info about plurals: https://developer.android.com/guide/topics/resources/string-resource?hl=en#Plurals
https://www.unicode.org/cldr/charts/47/supplemental/language_plural_rules.html

Build Version

not relevant

What server are you connecting to?

N/A

Self-host Server Version

No response

Environment Details

No response

Issue Tracking Info

  • I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
Originally created by @mKoonrad on GitHub (Jul 2, 2025). Original GitHub issue: https://github.com/bitwarden/android/issues/5458 ### Steps To Reproduce In many languages, there is more than one plural form. App currently does not support plural forms. There is no way to translate some strings correctly. You need to add full support for plurals. Then Crowdin translator will have opportunity to translate plurals in specific country format. Example English: 1 character 2 character**s**, 10 character**s** etc. Polish: 1 znak 2 znak**i** 5 znak**ów** ### Expected Result Strings with missing plurals to add: ### 1. https://github.com/bitwarden/android/blob/18bafaba8a5acc15edbddab194c7a489378acec1/app/src/main/res/values/strings.xml#L112 to ``` <plurals name="master_password_length_val_message_x"> <item quantity="one">Master password must be at least %1$s character long.</item> <item quantity="other">Master password must be at least %1$s characters long.</item> </plurals> ``` and changes in Kotlin files, which I do not know how to fix. ### 2. https://github.com/bitwarden/android/blob/18bafaba8a5acc15edbddab194c7a489378acec1/app/src/main/res/values/strings.xml#L311 to ``` <plurals name="password_exposed"> <item quantity="one">This password has been exposed %1$s time in data breaches. You should change it.</item> <item quantity="other">This password has been exposed %1$s times in data breaches. You should change it.</item> </plurals> ``` and changes in Kotlin files, which I do not know how to fix. ### 3. https://github.com/bitwarden/android/blob/18bafaba8a5acc15edbddab194c7a489378acec1/app/src/main/res/values/strings.xml#L613 to ``` <plurals name="your_master_password_cannot_be_recovered_if_you_forget_it_x_characters_minimum"> <item quantity="one">Your master password cannot be recovered if you forget it! %1$s character minimum.</item> <item quantity="other">Your master password cannot be recovered if you forget it! %1$s characters minimum.</item> </plurals> ``` and changes in Kotlin files, which I do not know how to fix. ### 4. https://github.com/bitwarden/android/blob/18bafaba8a5acc15edbddab194c7a489378acec1/app/src/main/res/values/strings.xml#L757 to ``` <plurals name="minimum_characters"> <item quantity="one">%1$s character</item> <item quantity="other">%1$s characters</item> </plurals> ``` and changes in Kotlin files, which I do not know how to fix. ### Actual Result Missing plural forms. Can't translate some strings correctly. ### Screenshots or Videos _No response_ ### Additional Context More info about plurals: https://developer.android.com/guide/topics/resources/string-resource?hl=en#Plurals https://www.unicode.org/cldr/charts/47/supplemental/language_plural_rules.html ### Build Version not relevant ### What server are you connecting to? N/A ### Self-host Server Version _No response_ ### Environment Details _No response_ ### Issue Tracking Info - [x] I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
GiteaMirror added the bugapp:password-manager labels 2026-04-18 12:05:02 -05:00
Author
Owner

@bitwarden-bot commented on GitHub (Jul 2, 2025):

Thank you for your report! We've added this to our internal board for review.
ID: PM-23235

<!-- gh-comment-id:3027649322 --> @bitwarden-bot commented on GitHub (Jul 2, 2025): Thank you for your report! We've added this to our internal board for review. ID: PM-23235
Author
Owner

@jtodddd commented on GitHub (Jul 2, 2025):

Hi there,

This has been escalated for further investigation. If you have more information that can help us, please add it below.

Thanks!

<!-- gh-comment-id:3028822240 --> @jtodddd commented on GitHub (Jul 2, 2025): Hi there, This has been escalated for further investigation. If you have more information that can help us, please add it below. Thanks!
Author
Owner

@mKoonrad commented on GitHub (Aug 3, 2025):

@jtodddd Hi! I edited my post. I added info how to edit original strings.xml file. I don't have enough knowledge to edit Kotlin files and prepare pull request.

<!-- gh-comment-id:3148754305 --> @mKoonrad commented on GitHub (Aug 3, 2025): @jtodddd Hi! I edited my post. I added info how to edit original strings.xml file. I don't have enough knowledge to edit Kotlin files and prepare pull request.
Author
Owner

@mKoonrad commented on GitHub (Sep 7, 2025):

@SaintPatrck Thank you for your help! I'm glad that app finally supports plurals 💪

<!-- gh-comment-id:3264007635 --> @mKoonrad commented on GitHub (Sep 7, 2025): @SaintPatrck Thank you for your help! I'm glad that app finally supports plurals 💪
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#28158