Promote chat-history strings for translation#8703
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
| <string name="preOnboardingWelcomeDialogBody1">Chceš rychlejší prohlížeč, se kterým budeš mít vše pod kontrolou?</string> | ||
| <string name="preOnboardingWelcomeDialogBody2">Umělá inteligence je vždy volitelná a ochrana soukromí je vždy zapnutá.</string> | ||
| <string name="onboardingStepIndicatorText" instruction="a counter above our instructions in onboarding that tells a user what step they are on">%1$d z %2$d</string> | ||
| <string name="onboardingStepIndicatorText" instruction="a counter above our instructions in onboarding that tells a user what step they are on">%1$d %2$d</string> |
There was a problem hiding this comment.
Step indicator missing "z" separator in three locales
High Severity
The word z (meaning "of") between the two format placeholders in onboardingStepIndicatorText was accidentally removed in the Czech, Polish, and Slovak translations. The string now reads %1$d %2$d instead of %1$d z %2$d, so the onboarding step indicator will display e.g. "1 3" instead of "1 z 3" ("1 of 3"). The English base string is %1$d of %2$d.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit cd3371c. Configure here.
| <string name="onboardingSearchDaxDialogOption1Quoted" instruction="translate 'duck' too.">hvordan si «and» på engelsk</string> | ||
| <string name="onboardingSearchDaxDialogOption1EnglishQuoted" instruction="translate 'duck' too. Don't add question mark">hvordan si «and» på spansk</string> | ||
| <string name="onboardingSearchDaxDialogOption1Quoted" instruction="translate 'duck' too.">hvordan si «duck» på engelsk</string> | ||
| <string name="onboardingSearchDaxDialogOption1EnglishQuoted" instruction="translate 'duck' too. Don't add question mark">hvordan si duck» på spansk</string> |
There was a problem hiding this comment.
Norwegian string missing opening guillemet quote character
Medium Severity
The opening guillemet « was dropped from the onboardingSearchDaxDialogOption1EnglishQuoted string in Norwegian. It now reads hvordan si duck» på spansk instead of hvordan si «duck» på spansk, leaving an unmatched closing » visible to users.
Reviewed by Cursor Bugbot for commit cd3371c. Configure here.
deb3752 to
ba4a93b
Compare
| <string name="preOnboardingWelcomeDialogBody2">Изкуственият интелект винаги е по избор, а защитата на поверителността винаги е включена.</string> | ||
| <string name="onboardingStepIndicatorText" instruction="a counter above our instructions in onboarding that tells a user what step they are on">%1$d от %2$d</string> | ||
| <string name="onboardingSearchDaxDialogOption1Quoted" instruction="translate 'duck' too.">как се казва „патица“ на английски</string> | ||
| <string name="onboardingSearchDaxDialogOption1Quoted" instruction="translate 'duck' too.">как се казва “патица“ на английски</string> |
There was a problem hiding this comment.
Bulgarian string uses unescaped ASCII quotes, will be stripped
Medium Severity
The onboardingSearchDaxDialogOption1Quoted string changed from typographic „патица" quotes to what appear to be unescaped ASCII " (U+0022) around "патица". AAPT treats paired ASCII " as quoting delimiters (for whitespace preservation) and strips them from output. The user will see the word without any surrounding quotation marks. The English source uses \"duck\" and the sibling string on line 1010 uses \"патица\" — both properly escaped.
Triggered by learned rule: Do not flag string resource copy content (grammar, wording, phrasing)
Reviewed by Cursor Bugbot for commit ba4a93b. Configure here.
| <string name="onboardingStepIndicatorText" instruction="a counter above our instructions in onboarding that tells a user what step they are on">%1$d van %2$d</string> | ||
| <string name="onboardingSearchDaxDialogOption1Quoted" instruction="translate 'duck' too.">hoe zeg je \'eend\' in het Engels?</string> | ||
| <string name="onboardingSearchDaxDialogOption1EnglishQuoted" instruction="translate 'duck' too. Don't add question mark">hoe zeg je \'eend\' in het Spaans</string> | ||
| <string name="onboardingSearchDaxDialogOption1EnglishQuoted" instruction="translate 'duck' too. Don't add question mark">hoe zeg je \'eend\' in het Nederlands</string> |
There was a problem hiding this comment.
Dutch search suggestion targets user's own language
Medium Severity
The onboardingSearchDaxDialogOption1EnglishQuoted string in Dutch changed from in het Spaans (in Spanish) to in het Nederlands (in Dutch). Every other locale targets "Spanish" as the foreign language in this search suggestion. Asking a Dutch-speaking user "how to say 'eend' in Dutch" is nonsensical — they already know the answer. This appears to be an accidental edit.
Reviewed by Cursor Bugbot for commit 4b7b416. Configure here.
Copy is locked for the native chat history screen, so move the placeholder strings from donottranslate.xml into strings-duckchat.xml to enter the Smartling pipeline ahead of release. Replaces the two temporary "Coming soon" placeholders on the Search and Overflow toolbar entries with proper content descriptions, and applies the final wording revisions (Unpin → Remove Pin; sentence-case pin/unpin snackbars).
Translate strings to values-es Translate strings to values-ro Translate strings to values-tr Translate strings to values-sk Translate strings to values-ru Translate strings to values-et Translate strings to values-it Translate strings to values-pl Translate strings to values-bg Translate strings to values-lv Translate strings to values-fi Translate strings to values-sl Translate strings to values-nl Translate strings to values-hr Translate strings to values-hu Translate strings to values-nb Translate strings to values-sv Translate strings to values-da Translate strings to values-el Translate strings to values-fr Translate strings to values-lt Translate strings to values-pt Translate strings to values-cs
Ship review feedback flagged that "Delete All" is misleading when the chat-history Fire-all and Delete-selected flows show the dialog operating on a specific set of chats rather than everything. The new label lands behind a generic isInSelectionMode flag on the ViewState so future selection-style entry points (e.g. tab-switcher multi-select) can adopt the same wording without changes to the view.
265552d to
4fcdd5e
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 5 total unresolved issues (including 4 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 75e336f. Configure here.
| <string name="preOnboardingWelcomeDialogBody2">La IA es siempre opcional y la protección de privacidad está siempre activada.</string> | ||
| <string name="onboardingStepIndicatorText" instruction="a counter above our instructions in onboarding that tells a user what step they are on">%1$d de %2$d</string> | ||
| <string name="onboardingSearchDaxDialogOption1Quoted" instruction="translate 'duck' too.">cómo se dice «pato» en inglés</string> | ||
| <string name="onboardingSearchDaxDialogOption1Quoted" instruction="translate 'duck' too.">cómo se dice «duck» en inglés</string> |
There was a problem hiding this comment.
Translated word "duck" reverted to English in multiple locales
Medium Severity
In onboardingSearchDaxDialogOption1Quoted (and EnglishQuoted in some locales), the correctly translated local word for "duck" was replaced with the English word "duck": Spanish «pato» → «duck», Latvian "pīle" → "duck", Norwegian «and» → «duck», Polish „kaczka" → „duck". The instruction attribute on these strings explicitly says "translate 'duck' too," confirming the local word is required. This appears to be accidental data corruption.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 75e336f. Configure here.



Task/Issue URL: https://app.asana.com/1/137249556945/project/1211850753229323/task/1214820120386828?focus=true
Description
Promotes the native chat-history UI strings out of
donottranslate.xmland intostrings-duckchat.xmlso the 35 keys enter the Smartling translation pipeline ahead of release. Also replaces the two temporaryduck_ai_chat_history_coming_soonplaceholders wired into the Search and Overflow toolbar icons with their real content descriptions, and applies the final wording revisions agreed during copy review (Unpin → Remove Pin; sentence-case "Chat Pinned" / "Chat Unpinned" snackbars).No new resource keys for UI surfaces that don't already exist — every promoted string is already consumed by the chat-history screen shipped behind
duckAiChatHistory.historyScreen.Steps to test this PR
n/a
UI changes
n/a
Note
Low Risk
Mostly resource and copy changes on an existing feature-flagged screen, plus a small fire-dialog label branch for chat selection.
Overview
Moves native Duck.ai chat history copy out of
donottranslate.xmlintostrings-duckchat.xmland adds the same keys across localestrings-duckchatfiles so Smartling can translate them. Search and overflow toolbar items no longer use the temporary “coming soon” placeholder; they use dedicated content-description strings. English copy is refreshed (e.g. Remove pin, snackbar wording, new overflow/search descriptions).The fire confirmation sheet labels bulk delete as Delete Chats when opened from chat-history selection (
isInChatSelectionMode/FireDialogOrigin.ChatHistory), backed by a newsingleTabFireDialogDeleteChatsstring.Also includes minor onboarding string edits in some
applocalestrings.xmlfiles (step counter / Dax example text).Reviewed by Cursor Bugbot for commit d39f97c. Bugbot is set up for automated code reviews on this repo. Configure here.