[BUG] Auth fields of pieces with multiple auth methods are never translated
Problem
When a piece declares several auth methods (auth: [authA, authB]), none of its connection texts are translated: auth descriptions, field labels and field descriptions stay in English in every locale.
They are missing from the piece's src/i18n/translation.json, so they never reach Crowdin. Example: Umami (umamiAuth = [selfHostedAuth, cloudAuth]) still defines Instance URL, Username, Password, API Key and their descriptions in lib/auth.ts, but the generator dropped them from translation.json in #12530. Same for Slack, SavvyCal and Google Sheets: none of their auth texts are in their translation.json.
Root cause
pieceTranslation.pathsToValuesToTranslate in packages/pieces/framework/src/lib/i18n.ts only walks a single auth object (auth.props.*.displayName, auth.description, …). When auth is an array, these paths resolve to undefined, so nothing is found.
Both sides rely on these paths:
- extraction:
generateTranslationFileFromPieceinpackages/cli/src/lib/commands/generate-translation-file-for-piece.ts - display:
pieceTranslation.translatePiece
Adding the keys to Crowdin by hand would therefore not help either.
Affected pieces (30)
amazon-bedrock, amazon-s3, amazon-secrets-manager, aws-bedrock, baremetrics, clicdata, digital-ocean, fathom, getresponse, github, gmail, google-bigquery, google-calendar, google-docs, google-drive, google-forms, google-sheets, hubspot, intercom, klaviyo, mistral-ai, notion, savvycal, sendgrid, sign-now, slack, snowflake, teable, tenzo, umami
Expected
Each entry of an auth array is extracted and translated like a single auth. There is also no path for auth.displayName, which is what labels each method when a piece offers several.
Related: #13530
Source: activepieces/activepieces