Skip to content

fix(auth): stop dropping the user identifier from localized sign-in labels - #2501

Draft
demolaf wants to merge 1 commit into
ci/run-android-lint-in-the-buildfrom
fix/localized-signed-in-as-identifier
Draft

fix(auth): stop dropping the user identifier from localized sign-in labels#2501
demolaf wants to merge 1 commit into
ci/run-android-lint-in-the-buildfrom
fix/localized-signed-in-as-identifier

Conversation

@demolaf

@demolaf demolaf commented Sep 9, 2026

Copy link
Copy Markdown
Member

55 locales declared fui_signed_in_as without the %1$s that the base string and DefaultAuthUIStringProvider both expect, so users in those locales saw a bare "Signed in as" with nobody named. Every locale now carries the argument, placed where that language puts it.

That, plus the localization findings that needed no translator, takes auth/lint-baseline.xml from 180 entries to 55:

  • values/strings.xml: literal ... becomes , which the locales already use. One of those strings also held a format specifier, and that pairing is what crashed TypographyDetector on lint's first run here, so fixing the text removes the trigger rather than baselining around it.
  • The Romance locales that require a CLDR many plural get one, derived from each file's own other text.
  • The 14 AuthException messages that ship empty become translatable="false" — they are override hooks that fall back to the Firebase SDK message, so there is no source text to translate.
  • PluralsCandidate is suppressed with tools:ignore on the four declarations that trigger it, rather than disabled for the module — minimumPasswordLength is an unbounded Int, so "at least 1 characters long" is reachable, and the check still needs to guard every other string.

What stays baselined is 43 MissingTranslation findings, real UI copy the Compose rewrite never sent for translation, plus 12 Compose findings tracked separately.


Maintainer note: Fixes internal CPRN-432

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request configures and integrates Android Lint checks across modules, introducing a repo-wide lintAll task, updating the CI build script, and documenting the linting policy. It also includes various bug fixes and optimizations, such as optimizing QR code generation to reduce JNI crossings, refining coroutine cancellation in AuthFlowController, updating localized strings with proper placeholders, and adding nullability annotations in the paging source. Feedback suggests explicitly validating the non-null Query parameter in DatabasePagingSource using Objects.requireNonNull to prevent potential null pointer exceptions.

@demolaf
demolaf force-pushed the fix/localized-signed-in-as-identifier branch from 8460e8e to fff04f7 Compare September 9, 2026 13:14
@demolaf
demolaf force-pushed the ci/run-android-lint-in-the-build branch 2 times, most recently from 64ce7cf to 4f2b154 Compare September 9, 2026 13:35
@demolaf
demolaf force-pushed the fix/localized-signed-in-as-identifier branch from fff04f7 to c667639 Compare September 9, 2026 13:36
@demolaf
demolaf force-pushed the fix/localized-signed-in-as-identifier branch from c667639 to 50f0fdd Compare September 9, 2026 13:42
@demolaf
demolaf marked this pull request as draft September 9, 2026 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant