Complete missing translations across all modules#6374
Conversation
PR checklist ✅All required conditions are satisfied:
🎉 Great job! This PR is ready for review. |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
SDK Size Comparison 📏
|
WalkthroughThis pull request adds and updates localization strings across multiple Stream Chat Android libraries (client, compose, ui-common, and ui-components) for seven languages (Spanish, French, Hindi, Indonesian, Italian, Japanese, and Korean). New notification reminder, permission, and UI strings are introduced, with significant expansion of compose and message handling features. Changes
Estimated Code Review Effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 18
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@stream-chat-android-client/src/main/res/values-es/strings.xml`:
- Line 26: Update the Spanish string resource
stream_chat_notification_reminder_due_title to use a direct non-reflexive
phrasing; replace the current text with a natural alternative such as "Has
pedido que te recordemos este mensaje" so the notification reads clearly.
In `@stream-chat-android-client/src/main/res/values-hi/strings.xml`:
- Line 26: The localized string stream_chat_notification_reminder_due_title uses
a first-person phrasing ("मुझसे") which personifies the app; update the Hindi
text to a neutral app voice by removing or replacing "मुझसे" (for example change
to a neutral phrase like "आपने इस संदेश के बारे में याद दिलाने को कहा था") so
the notification copy matches the app's neutral tone; edit the value of
stream_chat_notification_reminder_due_title accordingly.
In `@stream-chat-android-compose/src/main/res/values-es/strings.xml`:
- Around line 246-249: The plural resource stream_compose_member_count uses
incorrect format specifiers ("%1d") which can break string formatting; update
both <item> entries for quantity="one" and quantity="other" to use the correct
Android positional format "%1$d" so they read "%1$d Miembro" and "%1$d Miembros"
respectively, ensuring the plural name stream_compose_member_count retains the
same text but with proper specifiers.
In `@stream-chat-android-compose/src/main/res/values-fr/strings.xml`:
- Around line 246-249: The plural resource stream_compose_member_count uses the
wrong format specifier (%1d) which is interpreted as width, not positional
argument; update both items in the <plurals name="stream_compose_member_count">
("one" and "other") to use the positional integer specifier %1$d so the runtime
substitutes the first argument correctly.
In `@stream-chat-android-compose/src/main/res/values-hi/strings.xml`:
- Around line 26-29: The plural resource stream_compose_member_count uses an
incorrect format specifier "%1d सदस्य"; update both <item> strings in the
plurals named "stream_compose_member_count" to use the correct Android
positional specifier "%1$d सदस्य" so the integer parameter is formatted properly
at runtime.
In `@stream-chat-android-compose/src/main/res/values-in/strings.xml`:
- Around line 244-246: The plural resource stream_compose_member_count contains
an incorrect format specifier "%1d"; update the string item for
stream_compose_member_count to use a proper Android format specifier (either "%d
Anggota" or "%1$d Anggota") so it matches other locale files and prevents
runtime formatting errors.
In `@stream-chat-android-compose/src/main/res/values-it/strings.xml`:
- Around line 26-29: The plural resource stream_compose_member_count uses an
incorrect format specifier ("%1d") in both <item> entries; update each
occurrence to the correct Android positional format "%1$d" so the integer
argument is formatted properly (modify the items inside the plurals named
stream_compose_member_count).
In `@stream-chat-android-compose/src/main/res/values-ja/strings.xml`:
- Around line 99-101: The plural string stream_compose_member_count contains an
incorrect format specifier "%1dメンバー"; replace it with a proper positional or
standard specifier (e.g., "%1$dメンバー" or "%dメンバー") so Android's String.format
receives the argument correctly; update the item with quantity="other" to use
"%1$dメンバー" for consistency with other locales.
In `@stream-chat-android-compose/src/main/res/values-ko/strings.xml`:
- Around line 99-101: The plural resource stream_compose_member_count uses an
incorrect format specifier "%1d" which treats 1 as field width instead of a
positional argument; update the item value to use the positional integer
specifier "%1$d" (i.e., change "%1d명의 멤버" to "%1$d명의 멤버") so the member count is
formatted correctly when using the plural resource.
In `@stream-chat-android-ui-common/src/main/res/values-es/strings.xml`:
- Line 94: The Spanish confirmation string resource
stream_ui_channel_info_remove_member_modal_message contains an extra space
before the question mark ("%s ?"); update the resource value so the placeholder
is directly followed by the question mark ("%s?") while preserving the newline
and surrounding punctuation to remove the awkward spacing.
In `@stream-chat-android-ui-common/src/main/res/values-it/strings.xml`:
- Line 94: Update the Italian string resource
stream_ui_channel_info_remove_member_modal_message to remove the extra space
before the question mark so the formatting becomes "%s?" (i.e., change "Sei
sicuro di voler rimuovere\n%s ?" to "Sei sicuro di voler rimuovere\n%s?")
ensuring the placeholder and punctuation are adjacent and preserving any
intended newline or surrounding quotes formatting in the XML entry.
In `@stream-chat-android-ui-components/src/main/res/values-es/strings.xml`:
- Around line 39-42: The plural resource stream_ui_channel_header_member_count
uses the incorrect format specifier `%1d`; update the English source plural in
values/strings.xml (stream_ui_channel_header_member_count) to use the positional
specifier `%1$d` so Java's Formatter treats it as the first integer argument,
then propagate the same change to all locale variants (es, fr, it, hi, in, ja,
ko) so translations mirror the corrected source.
In `@stream-chat-android-ui-components/src/main/res/values-fr/strings.xml`:
- Around line 39-42: The plural resource stream_ui_channel_header_member_count
uses inconsistent format specifiers ("%1d"); update both <item> entries to use
the positional integer specifier "%1$d" (i.e., replace "%1d Membre" and "%1d
Membres" with "%1$d Membre" and "%1$d Membres") to match the rest of the strings
and ensure consistent formatting.
In `@stream-chat-android-ui-components/src/main/res/values-hi/strings.xml`:
- Around line 39-42: The plural resource stream_ui_channel_header_member_count
uses an invalid format specifier `%1d`; update both <item> strings to use a
correct specifier (`%d` for a single argument or `%1$d` for explicit positional)
so the plural entries (quantity="one" and quantity="other") format correctly at
runtime.
In `@stream-chat-android-ui-components/src/main/res/values-in/strings.xml`:
- Around line 39-41: The plural string resource
stream_ui_channel_header_member_count uses an incorrect format specifier "%1d";
update the item value to use the correct Android positional format "%1$d" so the
integer member count is formatted safely (replace "%1d Anggota" with "%1$d
Anggota" in the stream_ui_channel_header_member_count plural entry).
In `@stream-chat-android-ui-components/src/main/res/values-it/strings.xml`:
- Around line 39-42: The plural resource stream_ui_channel_header_member_count
uses an incorrect format specifier `%1d`; update both <item quantity="one"> and
<item quantity="other"> entries to use the correct Android/Java positional
specifier `%1$d` (e.g., replace `%1d` with `%1$d`) so runtime string formatting
works properly with the integer argument.
In `@stream-chat-android-ui-components/src/main/res/values-ja/strings.xml`:
- Around line 178-180: The plural entry named
stream_ui_channel_header_member_count contains an incorrect format specifier
("%1d人のメンバー"); change the positional placeholder to the correct syntax ("%1$d")
so it matches other locales and Android's positional argument format—update the
<item> content for stream_ui_channel_header_member_count accordingly.
In `@stream-chat-android-ui-components/src/main/res/values-ko/strings.xml`:
- Around line 178-180: The plural resource stream_ui_channel_header_member_count
uses a non-positional specifier "%1d명"; update the item string to use the
positional format "%1$d명" so it matches other locales and Android formatting
expectations—locate the <plurals name="stream_ui_channel_header_member_count">
entry and replace the item content accordingly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: a31e3cde-e6b6-402d-be57-c2686d2eb4de
📒 Files selected for processing (31)
stream-chat-android-client/src/main/res/values-es/strings.xmlstream-chat-android-client/src/main/res/values-fr/strings.xmlstream-chat-android-client/src/main/res/values-hi/strings.xmlstream-chat-android-client/src/main/res/values-id/strings.xmlstream-chat-android-client/src/main/res/values-in/strings.xmlstream-chat-android-client/src/main/res/values-it/strings.xmlstream-chat-android-client/src/main/res/values-ja/strings.xmlstream-chat-android-client/src/main/res/values-ko/strings.xmlstream-chat-android-compose/src/main/res/values-es/strings.xmlstream-chat-android-compose/src/main/res/values-fr/strings.xmlstream-chat-android-compose/src/main/res/values-hi/strings.xmlstream-chat-android-compose/src/main/res/values-in/strings.xmlstream-chat-android-compose/src/main/res/values-it/strings.xmlstream-chat-android-compose/src/main/res/values-ja/strings.xmlstream-chat-android-compose/src/main/res/values-ko/strings.xmlstream-chat-android-ui-common/src/main/res/values-es/strings.xmlstream-chat-android-ui-common/src/main/res/values-fr/strings.xmlstream-chat-android-ui-common/src/main/res/values-hi/strings.xmlstream-chat-android-ui-common/src/main/res/values-id/strings.xmlstream-chat-android-ui-common/src/main/res/values-in/strings.xmlstream-chat-android-ui-common/src/main/res/values-it/strings.xmlstream-chat-android-ui-common/src/main/res/values-ja/strings.xmlstream-chat-android-ui-common/src/main/res/values-ko/strings.xmlstream-chat-android-ui-components/src/main/res/values-es/strings.xmlstream-chat-android-ui-components/src/main/res/values-fr/strings.xmlstream-chat-android-ui-components/src/main/res/values-hi/strings.xmlstream-chat-android-ui-components/src/main/res/values-id/strings.xmlstream-chat-android-ui-components/src/main/res/values-in/strings.xmlstream-chat-android-ui-components/src/main/res/values-it/strings.xmlstream-chat-android-ui-components/src/main/res/values-ja/strings.xmlstream-chat-android-ui-components/src/main/res/values-ko/strings.xml
💤 Files with no reviewable changes (3)
- stream-chat-android-ui-components/src/main/res/values-id/strings.xml
- stream-chat-android-ui-common/src/main/res/values-id/strings.xml
- stream-chat-android-client/src/main/res/values-id/strings.xml
93e35f5 to
ac409ca
Compare
ac409ca to
e9d1672
Compare
e9d1672 to
47df82f
Compare
|
|
🚀 Available in v7.0.1 |



Goal
Fill all missing translations across the 4 translatable modules and 7 locales (es, fr, hi, in, it, ja, ko), and fix existing translation quality issues. This replaces the Localazy-based workflow with AI-generated translations.
Implementation
Indonesian locale consolidation:
values-idintovalues-in(the standard Android qualifier for Indonesian) across client, ui-common, and ui-componentsvalues-iddirectoriesvalues-inlocale for compose (previously missing)Quality fixes in existing translations:
%→%) in Japanese compose stringshint_cannot_send_message,sending_links_not_allowed)pinned_message_list_empty_description)translatable="false"from locale filesMissing translations added (~2,500 total):
No UI changes.
Testing
./gradlew spotlessApplypasses with no changes./gradlew assembleDebugcompiles all 4 modules successfully — no broken format specifiers or invalid XMLSummary by CodeRabbit
Release Notes
New Features
Localization