-
Notifications
You must be signed in to change notification settings - Fork 419
chore(localizations): Add taskChooseOrganization to all locales
#6527
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@clerk/localizations': patch | ||
| --- | ||
|
|
||
| Add `taskChooseOrganization` to all locales. |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -786,6 +786,26 @@ export const daDK: LocalizationResource = { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| socialButtonsBlockButton: 'Forsæt med {{provider|titleize}}', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| socialButtonsBlockButtonManyInView: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taskChooseOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chooseOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__createOrganization: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__invitationAccept: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__suggestionsAccept: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| subtitle: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| suggestionsAcceptedLabel: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| formButtonReset: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| formButtonSubmit: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| subtitle: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| signOut: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| actionLink: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| actionText: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+789
to
+808
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chainPopulate taskChooseOrganization with existing Danish strings to avoid undefined UI labels Structure matches en-US. However, leaving these keys undefined will surface blank labels until fallbacks kick in. You can reuse already-translated strings in this file (organizationList and createOrganization) to immediately cover the most visible actions and titles. Apply this minimal, safe prefill based on existing strings in the same file: taskChooseOrganization: {
chooseOrganization: {
- action__createOrganization: undefined,
- action__invitationAccept: undefined,
- action__suggestionsAccept: undefined,
- subtitle: undefined,
- suggestionsAcceptedLabel: undefined,
- title: undefined,
+ action__createOrganization: 'Opret organisation', // mirrors organizationList.action__createOrganization
+ action__invitationAccept: 'Deltag', // mirrors organizationList.action__invitationAccept
+ action__suggestionsAccept: 'Anmod om at deltage', // mirrors organizationList.action__suggestionsAccept
+ subtitle: undefined,
+ suggestionsAcceptedLabel: 'Afventer godkendelse', // mirrors organizationList.suggestionsAcceptedLabel
+ title: 'Vælg en organisation', // mirrors organizationList.titleWithoutPersonal
},
createOrganization: {
- formButtonReset: undefined,
- formButtonSubmit: undefined,
+ formButtonReset: 'Spring over', // mirrors createOrganization.invitePage.formButtonReset
+ formButtonSubmit: 'Opret organisation', // mirrors createOrganization.formButtonSubmit
subtitle: undefined,
title: undefined,
},
signOut: {
actionLink: undefined,
actionText: undefined,
},
},Run this script to verify parity with en-US and ensure all locales include the expected keys: Also, since no tests were added, consider adding a lightweight test ensuring every locale defines taskChooseOrganization with the complete shape (at least the keys above). 🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
echo "1) Verify en-US contains taskChooseOrganization"
fd -a "en-US.ts" | xargs rg -n "taskChooseOrganization" || { echo "Missing in en-US.ts"; exit 1; }
echo "2) Verify all locales include required subkeys"
fd -a "packages/localizations/src/*.ts" | while read -r f; do
if rg -q "export const .*: LocalizationResource" "$f"; then
if ! rg -q "taskChooseOrganization" "$f"; then
echo "Missing taskChooseOrganization in $f"
continue
fi
for k in \
"chooseOrganization:.*action__createOrganization" \
"chooseOrganization:.*action__invitationAccept" \
"chooseOrganization:.*action__suggestionsAccept" \
"chooseOrganization:.*subtitle" \
"chooseOrganization:.*suggestionsAcceptedLabel" \
"chooseOrganization:.*title" \
"createOrganization:.*formButtonReset" \
"createOrganization:.*formButtonSubmit" \
"createOrganization:.*subtitle" \
"createOrganization:.*title" \
"signOut:.*actionLink" \
"signOut:.*actionText"
do
rg -Nq "$k" "$f" || echo "Missing subkey ($k) in $f"
done
fi
done
echo "3) Optional: report undefined values for taskChooseOrganization keys (so you can track gaps)"
rg -n "taskChooseOrganization:[\s\S]*?" -A 60 packages/localizations/src/*.ts | rg -n ":\s*undefined\s*,?\s*$" || trueLength of output: 99713 Populate Leaving these entries undefined will render blank strings until fallback. We can mirror existing Danish translations from In taskChooseOrganization: {
chooseOrganization: {
- action__createOrganization: undefined,
- action__invitationAccept: undefined,
- action__suggestionsAccept: undefined,
- subtitle: undefined,
- suggestionsAcceptedLabel: undefined,
- title: undefined,
+ action__createOrganization: 'Opret organisation', // from organizationList.action__createOrganization
+ action__invitationAccept: 'Deltag', // from organizationList.action__invitationAccept
+ action__suggestionsAccept: 'Anmod om at deltage', // from organizationList.action__suggestionsAccept
+ subtitle: undefined,
+ suggestionsAcceptedLabel: 'Afventer godkendelse', // from organizationList.suggestionsAcceptedLabel
+ title: 'Vælg en organisation', // from organizationList.titleWithoutPersonal
},
createOrganization: {
- formButtonReset: undefined,
- formButtonSubmit: undefined,
+ formButtonReset: 'Spring over', // from createOrganization.invitePage.formButtonReset
+ formButtonSubmit: 'Opret organisation', // from createOrganization.formButtonSubmit
subtitle: undefined,
title: undefined,
},
},• Note: da-DK isn’t the only locale with undefined 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| unstable__errors: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| already_a_member_in_organization: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| captcha_invalid: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -799,6 +799,26 @@ export const deDE: LocalizationResource = { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| socialButtonsBlockButton: 'Weiter mit {{provider|titleize}}', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| socialButtonsBlockButtonManyInView: '{{provider|titleize}}', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taskChooseOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chooseOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__createOrganization: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__invitationAccept: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__suggestionsAccept: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| subtitle: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| suggestionsAcceptedLabel: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| formButtonReset: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| formButtonSubmit: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| subtitle: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| signOut: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| actionLink: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| actionText: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+802
to
+821
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Provide de-DE translations for taskChooseOrganization Replace placeholders with German translations consistent with the rest of the file (tone and terminology). Apply this diff: taskChooseOrganization: {
chooseOrganization: {
- action__createOrganization: undefined,
- action__invitationAccept: undefined,
- action__suggestionsAccept: undefined,
- subtitle: undefined,
- suggestionsAcceptedLabel: undefined,
- title: undefined,
+ action__createOrganization: 'Neue Organisation erstellen',
+ action__invitationAccept: 'Beitreten',
+ action__suggestionsAccept: 'Beitritt anfragen',
+ subtitle: 'Einer bestehenden Organisation beitreten oder eine neue erstellen',
+ suggestionsAcceptedLabel: 'Genehmigung ausstehend',
+ title: 'Organisation auswählen',
},
createOrganization: {
- formButtonReset: undefined,
- formButtonSubmit: undefined,
- subtitle: undefined,
- title: undefined,
+ formButtonReset: 'Abbrechen',
+ formButtonSubmit: 'Neue Organisation erstellen',
+ subtitle: 'Erzählen Sie uns etwas über Ihre Organisation',
+ title: 'Organisation einrichten',
},
signOut: {
- actionLink: undefined,
- actionText: undefined,
+ actionLink: 'Abmelden',
+ actionText: 'Angemeldet als {{identifier}}',
},
},📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| unstable__errors: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| already_a_member_in_organization: 'Sie sind bereits Mitglied in dieser Organisation.', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| captcha_invalid: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -790,6 +790,26 @@ export const elGR: LocalizationResource = { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| socialButtonsBlockButton: 'Συνέχεια με {{provider|titleize}}', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| socialButtonsBlockButtonManyInView: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taskChooseOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chooseOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__createOrganization: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__invitationAccept: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__suggestionsAccept: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| subtitle: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| suggestionsAcceptedLabel: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| formButtonReset: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| formButtonSubmit: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| subtitle: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| signOut: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| actionLink: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| actionText: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+793
to
+812
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Fill obvious Greek translations from existing keys to avoid undefineds You can safely reuse existing strings from organizationList and createOrganization to populate the new taskChooseOrganization block. This prevents runtime fallbacks and keeps UX consistent. Apply this diff: taskChooseOrganization: {
chooseOrganization: {
- action__createOrganization: undefined,
- action__invitationAccept: undefined,
- action__suggestionsAccept: undefined,
- subtitle: undefined,
- suggestionsAcceptedLabel: undefined,
- title: undefined,
+ action__createOrganization: 'Δημιουργία οργανισμού',
+ action__invitationAccept: 'Συμμετοχή',
+ action__suggestionsAccept: 'Αίτηση συμμετοχής',
+ subtitle: 'για να συνεχίσετε στο {{applicationName}}',
+ suggestionsAcceptedLabel: 'Εκκρεμεί έγκριση',
+ title: 'Επιλέξτε οργανισμό',
},
createOrganization: {
- formButtonReset: undefined,
- formButtonSubmit: undefined,
- subtitle: undefined,
- title: undefined,
+ formButtonReset: 'Παράλειψη',
+ formButtonSubmit: 'Δημιουργία οργανισμού',
+ subtitle: undefined,
+ title: 'Δημιουργία Οργανισμού',
},
signOut: {
actionLink: undefined,
actionText: undefined,
},
},Follow-up: createOrganization.subtitle and signOut.* are still missing in el-GR; please complete or confirm intended fallback. 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| unstable__errors: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| already_a_member_in_organization: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| captcha_invalid: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -790,6 +790,26 @@ export const enGB: LocalizationResource = { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| socialButtonsBlockButton: 'Continue with {{provider|titleize}}', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| socialButtonsBlockButtonManyInView: '{{provider|titleize}}', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| taskChooseOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| chooseOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__createOrganization: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__invitationAccept: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action__suggestionsAccept: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| subtitle: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| suggestionsAcceptedLabel: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createOrganization: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| formButtonReset: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| formButtonSubmit: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| subtitle: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| signOut: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| actionLink: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| actionText: undefined, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+793
to
+812
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Fill The block shape is correct, but leaving these as Apply this diff: taskChooseOrganization: {
chooseOrganization: {
- action__createOrganization: undefined,
- action__invitationAccept: undefined,
- action__suggestionsAccept: undefined,
- subtitle: undefined,
- suggestionsAcceptedLabel: undefined,
- title: undefined,
+ action__createOrganization: 'Create organisation',
+ action__invitationAccept: 'Join',
+ action__suggestionsAccept: 'Request to join',
+ subtitle: 'to continue to {{applicationName}}',
+ suggestionsAcceptedLabel: 'Pending approval',
+ title: 'Choose an account',
},
createOrganization: {
- formButtonReset: undefined,
- formButtonSubmit: undefined,
- subtitle: undefined,
- title: undefined,
+ formButtonReset: 'Skip',
+ formButtonSubmit: 'Create organisation',
+ subtitle: undefined,
+ title: 'Create organisation',
},
signOut: {
actionLink: undefined,
actionText: undefined,
},
},📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents💡 Verification agent 🧩 Analysis chainAdd a sanity check to enforce Consider adding a simple check that every locale includes the new group with all three subgroups. This prevents regressions as locales evolve. Run this script to report locales missing the new group or its subgroups: 🏁 Script executed: #!/bin/bash
set -euo pipefail
# Find all locale files
mapfile -t FILES < <(fd -t f -e ts '^packages/localizations/src/')
missing_any=0
for f in "${FILES[@]}"; do
has_root=$(rg -n "taskChooseOrganization\\s*:" "$f" || true)
if [[ -z "$has_root" ]]; then
echo "MISSING taskChooseOrganization in: $f"
missing_any=1
continue
fi
for subgroup in "chooseOrganization" "createOrganization" "signOut"; do
if ! rg -U -n -P "taskChooseOrganization\\s*:\\s*\\{[\\s\\S]*?${subgroup}\\s*:" "$f" >/dev/null; then
echo "MISSING subgroup '${subgroup}' in: $f"
missing_any=1
fi
done
done
if [[ $missing_any -eq 0 ]]; then
echo "All locales contain taskChooseOrganization with required subgroups."
fiLength of output: 195 Let’s rerun the check using find instead of fd/mapfile to avoid the 🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
missing_any=0
# Iterate over every .ts locale file
while IFS= read -r -d '' f; do
# Check for the root key
if ! grep -q "taskChooseOrganization\s*:" "$f"; then
echo "MISSING taskChooseOrganization in: $f"
missing_any=1
continue
fi
# Check each required subgroup
for subgroup in "chooseOrganization" "createOrganization" "signOut"; do
if ! grep -q "taskChooseOrganization.*${subgroup}" "$f"; then
echo "MISSING subgroup '${subgroup}' in: $f"
missing_any=1
fi
done
done < <(find packages/localizations/src -type f -name "*.ts" -print0)
if [[ $missing_any -eq 0 ]]; then
echo "All locales contain taskChooseOrganization with required subgroups."
fiLength of output: 209 Let’s avoid process-substitution and use a simple pipeline to ensure portability: 🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
missing_any=0
find packages/localizations/src -type f -name "*.ts" | while IFS= read -r f; do
# Check for the root key
if ! grep -q "taskChooseOrganization\s*:" "$f"; then
echo "MISSING taskChooseOrganization in: $f"
missing_any=1
continue
fi
# Check each required subgroup
for subgroup in chooseOrganization createOrganization signOut; do
if ! grep -q "taskChooseOrganization.*${subgroup}" "$f"; then
echo "MISSING subgroup '${subgroup}' in: $f"
missing_any=1
fi
done
done
if [[ $missing_any -eq 0 ]]; then
echo "All locales contain taskChooseOrganization with required subgroups."
fiLength of output: 54690 Add a CI sanity check for Enforce that every locale file defines • Create import fs from 'fs';
import path from 'path';
const LOCALE_DIR = path.resolve(__dirname, '../');
const REQUIRED_SUBGROUPS = ['chooseOrganization', 'createOrganization', 'signOut'];
describe('taskChooseOrganization keys in locale files', () => {
const files = fs
.readdirSync(LOCALE_DIR)
.filter(f => f.endsWith('.ts') && f !== 'index.ts');
for (const file of files) {
test(file, () => {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const locale = require(path.join(LOCALE_DIR, file)).default;
expect(locale.taskChooseOrganization).toBeDefined();
for (const key of REQUIRED_SUBGROUPS) {
expect(locale.taskChooseOrganization[key]).toBeDefined();
}
});
}
});• Ensure your CI (e.g. GitHub Actions) runs 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| unstable__errors: { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| already_a_member_in_organization: '{{email}} is already a member of the organisation.', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| captcha_invalid: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -789,6 +789,26 @@ export const esES: LocalizationResource = { | |
| }, | ||
| socialButtonsBlockButton: 'Continuar con {{provider|titleize}}', | ||
| socialButtonsBlockButtonManyInView: undefined, | ||
| taskChooseOrganization: { | ||
| chooseOrganization: { | ||
| action__createOrganization: undefined, | ||
| action__invitationAccept: undefined, | ||
| action__suggestionsAccept: undefined, | ||
| subtitle: undefined, | ||
| suggestionsAcceptedLabel: undefined, | ||
| title: undefined, | ||
| }, | ||
| createOrganization: { | ||
| formButtonReset: undefined, | ||
| formButtonSubmit: undefined, | ||
| subtitle: undefined, | ||
| title: undefined, | ||
| }, | ||
| signOut: { | ||
| actionLink: undefined, | ||
| actionText: undefined, | ||
| }, | ||
| }, | ||
|
Comment on lines
+792
to
+811
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chainPopulate Spanish translations for taskChooseOrganization; currently all keys are undefined The shape matches the expected subgroups, but every value is undefined. Please add Spanish translations (or confirm a short-term fallback plan) so UI strings don’t render empty or fall back inconsistently.
Given no tests were added, please add a small test/assertion that all locales provide taskChooseOrganization with the expected keys. I can help prefill using nearby organizationList strings where appropriate and create a test scaffold that validates presence of keys across locales. Want me to proceed? 🏁 Script executed: #!/bin/bash
echo "----- ES-ES taskChooseOrganization -----"
rg -n "taskChooseOrganization" -A 15 packages/localizations/src/es-ES.ts
echo
echo "----- EN-US taskChooseOrganization -----"
rg -n "taskChooseOrganization" -A 15 packages/localizations/src/en-US.tsLength of output: 1516 Populate Spanish Translations for taskChooseOrganization • File:
Action Items:
|
||
| unstable__errors: { | ||
| already_a_member_in_organization: '{{email}} ya es miembro de la organización.', | ||
| captcha_invalid: | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Add translations or confirm fallback; verify structure against en-US; add tests
The new taskChooseOrganization block is added with all values set to undefined. If undefined is intended to fall back to en-US, please confirm. Also verify that the structure exactly matches the en-US base (keys and nesting), and consider adding a test to ensure all locales include these keys going forward.
Run this script to check all locales contain the required keys and no duplicates of taskChooseOrganization:
If desired, I can open a follow-up issue to track providing actual translations for these new keys across locales, or scaffold a test that asserts parity with en-US.
🏁 Script executed:
Length of output: 36407
All locales include the new taskChooseOrganization block – please confirm fallback & add parity tests
taskChooseOrganizationblock with all nested keys present, and no duplicates.• Confirm that setting these entries to
undefinedcorrectly falls back to the en-US strings; otherwise supply the actual translations.• Scaffold a CI test (e.g. a deep-key comparison against en-US) to ensure all locales stay in sync for this block going forward.
🤖 Prompt for AI Agents