Update CTA and workspace chat copy for track-intent users#86460
Update CTA and workspace chat copy for track-intent users#86460
Conversation
Uses NVP_INTRO_SELECTED at the user level to identify track-intent users and conditionally update copy across three areas: - Workspace chat welcome text: "This is where you will track expenses" - CTA buttons (Submit/Approve): "Mark as done" - System messages (submitted/approved): "marked as done" Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the failing Prettier check: ran Prettier to fix import ordering in 4 files ( |
Add markAsDone, beginningOfChatHistoryPolicyExpenseChatTrack, and markedAsDone keys to de, fr, it, ja, nl, pl, pt-BR, and zh-hans translation files with English fallback values. Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the failing typecheck: added the three missing translation keys ( |
|
I ran out of time before I could finish helping you. This usually means the task was too complex or I got stuck exploring. Please try again with a more specific request or post in the #melvinbot-ai. Run details: https://github.com/Expensify/Expensify/actions/runs/23605388227 |
…g delimiters Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the failing checks (Prettier, typecheck, Storybook). The |
…corruption The previous commit accidentally replaced ASCII single quote delimiters with Unicode smart quotes (U+2018/U+2019) on several lines in fr.ts, causing Prettier and TypeScript check failures. This restores the file from main and cleanly reapplies the intended changes (markAsDone, beginningOfChatHistoryPolicyExpenseChatTrack, markedAsDone, and removal of increasedDistance). Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the failing Prettier and TypeScript checks. Root cause: The previous commit introduced Unicode smart quotes (U+2018 Fix: Restored |
|
The previously failing checks (Prettier and TypeScript errors from smart quote corruption in |
|
@dylanexpensify When creating an expense in the workspace, we currently see a Adding screenshots below to show the difference between staging and our PR changes. staging
PR changes
If yes:
|
|
When we press the mark-as-done.mov |
|
@jayeshmangwani great catches, yes to all:
Yes
Yes
Yes |
|
Essentially, wherever there is submit for this group, we change it to the mark as done verbiage (or for system messages, marked as done) |
|
@dylanexpensify When we use For the track intent flow, we are updating the CTA to I’ve used button-confirmation.mov |
|
@MelvinBot The sidebar badge still shows and the Reports tab/Reports also still has the
|
…e' for track-intent users The sidebar LHN badge and Reports tab action buttons still showed 'Submit'/'Approve' instead of 'Mark as done' for track-intent users. Updated three locations: - OptionRowLHN: sidebar action badge text - ActionCell: search/reports list item action buttons - useSearchBulkActions: bulk action submit/approve buttons Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the sidebar badge and Reports tab CTA to show "Mark as done" for track-intent users. Updated three locations:
|
Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the failing Prettier check: ran Prettier on |
Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the failing ESLint check:
The test (job 8) failure is unrelated — all tests passed but the process hit a segmentation fault (exit code 139) during cleanup, which is a pre-existing infrastructure issue. |
|
All checks are now passing (ESLint, Prettier, typecheck, all 8 test shards, builds, etc.). The only remaining check is The previous failures were:
No code fix is needed at this time. |
Marked as done is correct! Thanks! |
|
@MelvinBot For track intent users, Submitted is currently shown, but it should be updated to Marked as done. See this comment for more context: #86460 (comment) |
|
I have failed to help you. I let you down and for that I am sorry. Please try again later. This may be due to a Claude outage (check here). Failure details: https://github.com/Expensify/Expensify/actions/runs/23640602362 |
|
@MelvinBot For |
…ack-intent users After clicking 'Mark as done', the AnimatedSubmitButton briefly showed 'Submitted' as the status label. Added isTrackIntentUser check to display 'Marked as done' instead. Added new common.markedAsDoneStatus translation key for this status label. Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the "Submitted" status label for track-intent users. After clicking "Mark as done", the Changes:
|
🦜 Polyglot Parrot! 🦜Squawk! Looks like you added some shiny new English strings. Allow me to parrot them back to you in other tongues: View the translation diffdiff --git a/src/languages/de.ts b/src/languages/de.ts
index cb9425ba..65cdeccc 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -147,9 +147,9 @@ const translations: TranslationDeepObject<typeof en> = {
selectMultiple: 'Mehrfachauswahl',
saveChanges: 'Änderungen speichern',
submit: 'Senden',
- markAsDone: 'Mark as done',
+ markAsDone: 'Als erledigt markieren',
submitted: 'Übermittelt',
- markedAsDoneStatus: 'Marked as done',
+ markedAsDoneStatus: 'Als erledigt markiert',
rotate: 'Drehen',
zoom: 'Zoom',
password: 'Passwort',
@@ -876,7 +876,7 @@ const translations: TranslationDeepObject<typeof en> = {
beginningOfChatHistory: (users: string) => `Dieser Chat ist mit ${users}.`,
beginningOfChatHistoryPolicyExpenseChat: (workspaceName: string, submitterDisplayName: string) =>
`Hier reicht <strong>${submitterDisplayName}</strong> Auslagen bei <strong>${workspaceName}</strong> ein. Nutze einfach die +-Taste.`,
- beginningOfChatHistoryPolicyExpenseChatTrack: 'This is where you will track expenses',
+ beginningOfChatHistoryPolicyExpenseChatTrack: 'Hier können Sie Ausgaben nachverfolgen',
beginningOfChatHistorySelfDM: 'Dies ist dein persönlicher Bereich. Nutze ihn für Notizen, Aufgaben, Entwürfe und Erinnerungen.',
beginningOfChatHistorySystemDM: 'Willkommen! Lassen Sie uns Ihre Einrichtung vornehmen.',
chatWithAccountManager: 'Chatte hier mit deiner/deinem Account Manager',
@@ -1331,7 +1331,7 @@ const translations: TranslationDeepObject<typeof en> = {
sendInvoice: (amount: string) => `${amount}-Rechnung senden`,
expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `für ${comment}` : ''}`,
submitted: (memo?: string) => `eingereicht${memo ? `, mit dem Vermerk ${memo}` : ''}`,
- markedAsDone: (memo) => `marked as done${memo ? `, saying ${memo}` : ''}`,
+ markedAsDone: (memo?: string) => `als erledigt markiert${memo ? `, mit dem Vermerk ${memo}` : ''}`,
automaticallySubmitted: `eingereicht über <a href="${CONST.SELECT_WORKFLOWS_HELP_URL}">Einreichungen verzögern</a>`,
queuedToSubmitViaDEW: 'zur Einreichung über benutzerdefinierten Genehmigungsworkflow eingereiht',
queuedToApproveViaDEW: 'Zur Genehmigung über benutzerdefinierten Genehmigungsworkflow eingereiht',
@@ -7434,7 +7434,14 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und
searchIn: 'Suchen in',
searchPlaceholder: 'Nach etwas suchen',
suggestions: 'Vorschläge',
- suggestionsAvailable: ({count}: {count: number}, query = '') => ({
+ suggestionsAvailable: (
+ {
+ count,
+ }: {
+ count: number;
+ },
+ query = '',
+ ) => ({
one: `Vorschläge verfügbar${query ? ` für ${query}` : ''}. ${count} Ergebnis.`,
other: (resultCount: number) => `Vorschläge verfügbar${query ? ` für ${query}` : ''}. ${resultCount} Ergebnisse.`,
}),
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index a390df3f..0fe8c95f 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -147,9 +147,9 @@ const translations: TranslationDeepObject<typeof en> = {
selectMultiple: 'Sélection multiple',
saveChanges: 'Enregistrer les modifications',
submit: 'Soumettre',
- markAsDone: `Mark as done`,
+ markAsDone: 'Marquer comme terminé',
submitted: 'Soumis',
- markedAsDoneStatus: 'Marked as done',
+ markedAsDoneStatus: 'Marqué comme terminé',
rotate: 'Pivoter',
zoom: 'Zoom',
password: 'Mot de passe',
@@ -879,7 +879,7 @@ const translations: TranslationDeepObject<typeof en> = {
beginningOfChatHistory: (users: string) => `Cette discussion est avec ${users}.`,
beginningOfChatHistoryPolicyExpenseChat: (workspaceName: string, submitterDisplayName: string) =>
`C’est ici que <strong>${submitterDisplayName}</strong> soumettra des dépenses à <strong>${workspaceName}</strong>. Utilisez simplement le bouton +.`,
- beginningOfChatHistoryPolicyExpenseChatTrack: `This is where you will track expenses`,
+ beginningOfChatHistoryPolicyExpenseChatTrack: 'C’est ici que vous suivrez les dépenses',
beginningOfChatHistorySelfDM: 'Ceci est votre espace personnel. Utilisez-le pour vos notes, tâches, brouillons et rappels.',
beginningOfChatHistorySystemDM: 'Bienvenue ! Procédons à la configuration.',
chatWithAccountManager: 'Discutez avec votre gestionnaire de compte ici',
@@ -1335,7 +1335,7 @@ const translations: TranslationDeepObject<typeof en> = {
sendInvoice: (amount: string) => `Envoyer la facture de ${amount}`,
expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `pour ${comment}` : ''}`,
submitted: (memo?: string) => `soumis${memo ? `, indiquant « ${memo} »` : ''}`,
- markedAsDone: (memo?: string) => `marked as done${memo ? `, saying ${memo}` : ''}`,
+ markedAsDone: (memo?: string) => `marqué comme terminé${memo ? `, avec la note ${memo}` : ''}`,
automaticallySubmitted: `soumis via <a href="${CONST.SELECT_WORKFLOWS_HELP_URL}">soumissions différées</a>`,
queuedToSubmitViaDEW: 'en file d’attente pour être soumis via le circuit d’approbation personnalisé',
queuedToApproveViaDEW: 'mis en file d’attente pour approbation via un processus d’approbation personnalisé',
@@ -7458,7 +7458,14 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip
searchIn: 'Rechercher dans',
searchPlaceholder: 'Rechercher quelque chose',
suggestions: 'Suggestions',
- suggestionsAvailable: ({count}: {count: number}, query = '') => ({
+ suggestionsAvailable: (
+ {
+ count,
+ }: {
+ count: number;
+ },
+ query = '',
+ ) => ({
one: `Suggestions disponibles${query ? ` pour ${query}` : ''}. ${count} résultat.`,
other: (resultCount: number) => `Suggestions disponibles${query ? ` pour ${query}` : ''}. ${resultCount} résultats.`,
}),
diff --git a/src/languages/it.ts b/src/languages/it.ts
index f36ae944..00af7f80 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -147,9 +147,9 @@ const translations: TranslationDeepObject<typeof en> = {
selectMultiple: 'Selezione multipla',
saveChanges: 'Salva modifiche',
submit: 'Invia',
- markAsDone: 'Mark as done',
+ markAsDone: 'Segna come completato',
submitted: 'Inviato',
- markedAsDoneStatus: 'Marked as done',
+ markedAsDoneStatus: 'Contrassegnato come completato',
rotate: 'Ruota',
zoom: 'Zoom',
password: 'Password',
@@ -877,7 +877,7 @@ const translations: TranslationDeepObject<typeof en> = {
beginningOfChatHistory: (users: string) => `Questa chat è con ${users}.`,
beginningOfChatHistoryPolicyExpenseChat: (workspaceName: string, submitterDisplayName: string) =>
`Qui è dove <strong>${submitterDisplayName}</strong> invierà le spese a <strong>${workspaceName}</strong>. Usa semplicemente il pulsante +.`,
- beginningOfChatHistoryPolicyExpenseChatTrack: 'This is where you will track expenses',
+ beginningOfChatHistoryPolicyExpenseChatTrack: 'Qui è dove terrai traccia delle spese',
beginningOfChatHistorySelfDM: 'Questo è il tuo spazio personale. Usalo per note, attività, bozze e promemoria.',
beginningOfChatHistorySystemDM: 'Benvenuto/a! Procediamo con la configurazione.',
chatWithAccountManager: 'Chatta qui con il tuo account manager',
@@ -1330,7 +1330,7 @@ const translations: TranslationDeepObject<typeof en> = {
sendInvoice: (amount: string) => `Invia fattura da ${amount}`,
expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `per ${comment}` : ''}`,
submitted: (memo?: string) => `inviato${memo ? `, con nota: ${memo}` : ''}`,
- markedAsDone: (memo) => `marked as done${memo ? `, saying ${memo}` : ''}`,
+ markedAsDone: (memo?: string) => `segnato come completato${memo ? `, con messaggio: ${memo}` : ''}`,
automaticallySubmitted: `inviato tramite <a href="${CONST.SELECT_WORKFLOWS_HELP_URL}">invio posticipato</a>`,
queuedToSubmitViaDEW: 'in coda per l’invio tramite flusso di approvazione personalizzato',
queuedToApproveViaDEW: 'in coda per l’approvazione tramite flusso di approvazione personalizzato',
@@ -7422,7 +7422,14 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo
searchIn: 'Cerca in',
searchPlaceholder: 'Cerca qualcosa',
suggestions: 'Suggerimenti',
- suggestionsAvailable: ({count}: {count: number}, query = '') => ({
+ suggestionsAvailable: (
+ {
+ count,
+ }: {
+ count: number;
+ },
+ query = '',
+ ) => ({
one: `Suggerimenti disponibili${query ? ` per ${query}` : ''}. ${count} risultato.`,
other: (resultCount: number) => `Suggerimenti disponibili${query ? ` per ${query}` : ''}. ${resultCount} risultati.`,
}),
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 781a399d..1539dc44 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -147,9 +147,9 @@ const translations: TranslationDeepObject<typeof en> = {
selectMultiple: '複数選択',
saveChanges: '変更を保存',
submit: '送信',
- markAsDone: 'Mark as done',
+ markAsDone: '完了にする',
submitted: '送信済み',
- markedAsDoneStatus: 'Marked as done',
+ markedAsDoneStatus: '完了済み',
rotate: '回転',
zoom: 'ズーム',
password: 'パスワード',
@@ -863,7 +863,7 @@ const translations: TranslationDeepObject<typeof en> = {
beginningOfChatHistory: (users: string) => `このチャットの相手は${users}です。`,
beginningOfChatHistoryPolicyExpenseChat: (workspaceName: string, submitterDisplayName: string) =>
`ここは<strong>${submitterDisplayName}</strong>さんが<strong>${workspaceName}</strong>に経費精算を提出する場所です。+ボタンを押すだけでOKです。`,
- beginningOfChatHistoryPolicyExpenseChatTrack: 'This is where you will track expenses',
+ beginningOfChatHistoryPolicyExpenseChatTrack: 'ここで経費を管理します',
beginningOfChatHistorySelfDM: 'ここはあなたの個人スペースです。メモ、タスク、下書き、リマインダーに活用してください。',
beginningOfChatHistorySystemDM: 'ようこそ!設定を始めましょう。',
chatWithAccountManager: 'ここでアカウントマネージャーとチャットする',
@@ -1313,7 +1313,7 @@ const translations: TranslationDeepObject<typeof en> = {
sendInvoice: (amount: string) => `${amount} の請求書を送信`,
expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `${comment}用` : ''}`,
submitted: (memo?: string) => `送信済み${memo ? `、メモ: ${memo}` : ''}`,
- markedAsDone: (memo) => `marked as done${memo ? `, saying ${memo}` : ''}`,
+ markedAsDone: (memo?: string) => `完了としてマークしました${memo ? `、内容:${memo}` : ''}`,
automaticallySubmitted: `<a href="${CONST.SELECT_WORKFLOWS_HELP_URL}">提出の延期</a> 経由で提出されました`,
queuedToSubmitViaDEW: 'カスタム承認ワークフローで提出待ち',
queuedToApproveViaDEW: 'カスタム承認ワークフローで承認待ちに設定されました',
@@ -7330,7 +7330,14 @@ ${reportName}
searchIn: '検索対象',
searchPlaceholder: '何かを検索',
suggestions: '提案',
- suggestionsAvailable: ({count}: {count: number}, query = '') => ({
+ suggestionsAvailable: (
+ {
+ count,
+ }: {
+ count: number;
+ },
+ query = '',
+ ) => ({
one: `候補があります${query ? `: ${query}` : ''}。${count}件の結果。`,
other: (resultCount: number) => `候補があります${query ? `: ${query}` : ''}。${resultCount}件の結果。`,
}),
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index b440e860..1ad2d980 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -147,9 +147,9 @@ const translations: TranslationDeepObject<typeof en> = {
selectMultiple: 'Meerdere selecteren',
saveChanges: 'Wijzigingen opslaan',
submit: 'Verzenden',
- markAsDone: 'Mark as done',
+ markAsDone: 'Markeren als voltooid',
submitted: 'Ingediend',
- markedAsDoneStatus: 'Marked as done',
+ markedAsDoneStatus: 'Als voltooid gemarkeerd',
rotate: 'Draaien',
zoom: 'Zoom',
password: 'Wachtwoord',
@@ -875,7 +875,7 @@ const translations: TranslationDeepObject<typeof en> = {
beginningOfChatHistory: (users: string) => `Deze chat is met ${users}.`,
beginningOfChatHistoryPolicyExpenseChat: (workspaceName: string, submitterDisplayName: string) =>
`Dit is waar <strong>${submitterDisplayName}</strong> declaraties indient bij <strong>${workspaceName}</strong>. Gebruik gewoon de +-knop.`,
- beginningOfChatHistoryPolicyExpenseChatTrack: 'This is where you will track expenses',
+ beginningOfChatHistoryPolicyExpenseChatTrack: 'Hier houd je je uitgaven bij',
beginningOfChatHistorySelfDM: 'Dit is je persoonlijke ruimte. Gebruik het voor notities, taken, concepten en herinneringen.',
beginningOfChatHistorySystemDM: 'Welkom! Laten we je instellen.',
chatWithAccountManager: 'Chat hier met je accountmanager',
@@ -1329,7 +1329,7 @@ const translations: TranslationDeepObject<typeof en> = {
sendInvoice: (amount: string) => `Verzend factuur van ${amount}`,
expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `voor ${comment}` : ''}`,
submitted: (memo?: string) => `ingediend${memo ? `, met de omschrijving ${memo}` : ''}`,
- markedAsDone: (memo) => `marked as done${memo ? `, saying ${memo}` : ''}`,
+ markedAsDone: (memo?: string) => `gemarkeerd als voltooid${memo ? `, met de omschrijving ${memo}` : ''}`,
automaticallySubmitted: `ingediend via <a href="${CONST.SELECT_WORKFLOWS_HELP_URL}">uitgestelde indieningen</a>`,
queuedToSubmitViaDEW: 'in wachtrij om via aangepast goedkeuringsproces in te dienen',
queuedToApproveViaDEW: 'in de wachtrij gezet voor goedkeuring via aangepaste goedkeuringsworkflow',
@@ -7388,7 +7388,14 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar
searchIn: 'Zoeken in',
searchPlaceholder: 'Zoek iets',
suggestions: 'Suggesties',
- suggestionsAvailable: ({count}: {count: number}, query = '') => ({
+ suggestionsAvailable: (
+ {
+ count,
+ }: {
+ count: number;
+ },
+ query = '',
+ ) => ({
one: `Suggesties beschikbaar${query ? ` voor ${query}` : ''}. ${count} resultaat.`,
other: (resultCount: number) => `Suggesties beschikbaar${query ? ` voor ${query}` : ''}. ${resultCount} resultaten.`,
}),
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 6e81404e..4949a261 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -147,9 +147,9 @@ const translations: TranslationDeepObject<typeof en> = {
selectMultiple: 'Wielokrotny wybór',
saveChanges: 'Zapisz zmiany',
submit: 'Wyślij',
- markAsDone: 'Mark as done',
+ markAsDone: 'Oznacz jako gotowe',
submitted: 'Przesłano',
- markedAsDoneStatus: 'Marked as done',
+ markedAsDoneStatus: 'Oznaczone jako ukończone',
rotate: 'Obróć',
zoom: 'Powiększenie',
password: 'Hasło',
@@ -876,7 +876,7 @@ const translations: TranslationDeepObject<typeof en> = {
beginningOfChatHistory: (users: string) => `Ten czat jest z ${users}.`,
beginningOfChatHistoryPolicyExpenseChat: (workspaceName: string, submitterDisplayName: string) =>
`Tutaj <strong>${submitterDisplayName}</strong> będzie przesyłać wydatki do <strong>${workspaceName}</strong>. Po prostu użyj przycisku +.`,
- beginningOfChatHistoryPolicyExpenseChatTrack: 'This is where you will track expenses',
+ beginningOfChatHistoryPolicyExpenseChatTrack: 'Tutaj będziesz śledzić wydatki',
beginningOfChatHistorySelfDM: 'To Twoja osobista przestrzeń. Używaj jej na notatki, zadania, szkice i przypomnienia.',
beginningOfChatHistorySystemDM: 'Witamy! Zacznijmy konfigurację.',
chatWithAccountManager: 'Porozmawiaj tutaj z opiekunem konta',
@@ -1329,7 +1329,7 @@ const translations: TranslationDeepObject<typeof en> = {
sendInvoice: (amount: string) => `Wyślij fakturę na ${amount}`,
expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `za ${comment}` : ''}`,
submitted: (memo?: string) => `przesłano${memo ? `, wpisując ${memo}` : ''}`,
- markedAsDone: (memo) => `marked as done${memo ? `, saying ${memo}` : ''}`,
+ markedAsDone: (memo?: string) => `oznaczone jako wykonane${memo ? `, o treści: ${memo}` : ''}`,
automaticallySubmitted: `przesłano przez <a href="${CONST.SELECT_WORKFLOWS_HELP_URL}">opóźnianie wysyłania</a>`,
queuedToSubmitViaDEW: 'w kolejce do przesłania przez niestandardowy proces zatwierdzania',
queuedToApproveViaDEW: 'oczekuje na zatwierdzenie w niestandardowym procesie akceptacji',
@@ -7389,7 +7389,14 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i
searchIn: 'Szukaj w',
searchPlaceholder: 'Wyszukaj coś',
suggestions: 'Sugestie',
- suggestionsAvailable: ({count}: {count: number}, query = '') => ({
+ suggestionsAvailable: (
+ {
+ count,
+ }: {
+ count: number;
+ },
+ query = '',
+ ) => ({
one: `Dostępne sugestie${query ? ` dla ${query}` : ''}. ${count} wynik.`,
other: (resultCount: number) => `Dostępne sugestie${query ? ` dla ${query}` : ''}. ${resultCount} wyniki.`,
}),
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 5cdf58dd..7435de92 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -147,9 +147,9 @@ const translations: TranslationDeepObject<typeof en> = {
selectMultiple: 'Seleção múltipla',
saveChanges: 'Salvar alterações',
submit: 'Enviar',
- markAsDone: 'Mark as done',
+ markAsDone: 'Marcar como concluída',
submitted: 'Enviado',
- markedAsDoneStatus: 'Marked as done',
+ markedAsDoneStatus: 'Marcado como concluído',
rotate: 'Girar',
zoom: 'Zoom',
password: 'Senha',
@@ -875,7 +875,7 @@ const translations: TranslationDeepObject<typeof en> = {
beginningOfChatHistory: (users: string) => `Este chat é com ${users}.`,
beginningOfChatHistoryPolicyExpenseChat: (workspaceName: string, submitterDisplayName: string) =>
`É aqui que <strong>${submitterDisplayName}</strong> enviará despesas para <strong>${workspaceName}</strong>. Basta usar o botão +.`,
- beginningOfChatHistoryPolicyExpenseChatTrack: 'This is where you will track expenses',
+ beginningOfChatHistoryPolicyExpenseChatTrack: 'É aqui que você vai acompanhar as despesas',
beginningOfChatHistorySelfDM: 'Este é o seu espaço pessoal. Use-o para anotações, tarefas, rascunhos e lembretes.',
beginningOfChatHistorySystemDM: 'Bem-vindo(a)! Vamos fazer a sua configuração.',
chatWithAccountManager: 'Converse com seu gerente de conta aqui',
@@ -1328,7 +1328,7 @@ const translations: TranslationDeepObject<typeof en> = {
sendInvoice: (amount: string) => `Enviar fatura de ${amount}`,
expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `para ${comment}` : ''}`,
submitted: (memo?: string) => `enviado${memo ? `, dizendo ${memo}` : ''}`,
- markedAsDone: (memo) => `marked as done${memo ? `, saying ${memo}` : ''}`,
+ markedAsDone: (memo?: string) => `marcou como concluída${memo ? `, dizendo ${memo}` : ''}`,
automaticallySubmitted: `enviado via <a href="${CONST.SELECT_WORKFLOWS_HELP_URL}">atrasar envios</a>`,
queuedToSubmitViaDEW: 'na fila para enviar via fluxo de aprovação personalizado',
queuedToApproveViaDEW: 'na fila para aprovar via fluxo de aprovação personalizado',
@@ -7376,7 +7376,14 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e
searchIn: 'Pesquisar em',
searchPlaceholder: 'Pesquisar algo',
suggestions: 'Sugestões',
- suggestionsAvailable: ({count}: {count: number}, query = '') => ({
+ suggestionsAvailable: (
+ {
+ count,
+ }: {
+ count: number;
+ },
+ query = '',
+ ) => ({
one: `Sugestões disponíveis${query ? ` para ${query}` : ''}. ${count} resultado.`,
other: (resultCount: number) => `Sugestões disponíveis${query ? ` para ${query}` : ''}. ${resultCount} resultados.`,
}),
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 02e5bef5..ae3c5af0 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -147,9 +147,9 @@ const translations: TranslationDeepObject<typeof en> = {
selectMultiple: '多选',
saveChanges: '保存更改',
submit: '提交',
- markAsDone: 'Mark as done',
+ markAsDone: '标记为完成',
submitted: '已提交',
- markedAsDoneStatus: 'Marked as done',
+ markedAsDoneStatus: '已标记为完成',
rotate: '旋转',
zoom: '缩放',
password: '密码',
@@ -851,7 +851,7 @@ const translations: TranslationDeepObject<typeof en> = {
beginningOfChatHistory: (users: string) => `此聊天对象为 ${users}。`,
beginningOfChatHistoryPolicyExpenseChat: (workspaceName: string, submitterDisplayName: string) =>
`这是 <strong>${submitterDisplayName}</strong> 向 <strong>${workspaceName}</strong> 提交报销的地方。只需使用”+”按钮即可。`,
- beginningOfChatHistoryPolicyExpenseChatTrack: 'This is where you will track expenses',
+ beginningOfChatHistoryPolicyExpenseChatTrack: '您可以在这里跟踪报销费用',
beginningOfChatHistorySelfDM: '这是你的个人空间。可在此记录笔记、任务、草稿和提醒事项。',
beginningOfChatHistorySystemDM: '欢迎!让我们帮你完成设置。',
chatWithAccountManager: '在这里与您的客户经理聊天',
@@ -1290,7 +1290,7 @@ const translations: TranslationDeepObject<typeof en> = {
sendInvoice: (amount: string) => `发送 ${amount} 发票`,
expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `用于 ${comment}` : ''}`,
submitted: (memo?: string) => `已提交${memo ? `,备注为 ${memo}` : ''}`,
- markedAsDone: (memo) => `marked as done${memo ? `, saying ${memo}` : ''}`,
+ markedAsDone: (memo?: string) => `标记为已完成${memo ? `,备注为「${memo}」` : ''}`,
automaticallySubmitted: `通过<a href="${CONST.SELECT_WORKFLOWS_HELP_URL}">延迟提交</a>提交`,
queuedToSubmitViaDEW: '已排队,待通过自定义审批流程提交',
queuedToApproveViaDEW: '已排队,等待通过自定义审批流程批准',
@@ -7205,7 +7205,14 @@ ${reportName}
searchIn: '搜索范围',
searchPlaceholder: '搜索内容',
suggestions: '建议',
- suggestionsAvailable: ({count}: {count: number}, query = '') => ({
+ suggestionsAvailable: (
+ {
+ count,
+ }: {
+ count: number;
+ },
+ query = '',
+ ) => ({
one: `有可用建议${query ? `:${query}` : ''}。共${count}条结果。`,
other: (resultCount: number) => `有可用建议${query ? `:${query}` : ''}。共${resultCount}条结果。`,
}),
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
|
@MelvinBot Can we fix this? Mark as done isn’t fully visible in ActionCell. Let’s try not to impact other buttons to avoid regressions. |
…t text truncation The 'Mark as done' text is longer than 'Submit'/'Approve' and gets truncated within the 80px ACTION column. Using extraSmall button size (smaller font and padding) allows the text to fit without changing the column width or affecting other action buttons. Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the "Mark as done" text truncation in ActionCell. Root cause: The ACTION column has a fixed width of 80px ( Fix: When |
|
@dylanexpensify , one thing doesn’t look right and I need your confirmation: When a
This doesn’t look correct to me. On staging, we see I’ve attached screenshots below to highlight the difference between staging and our PR—could you confirm the expected behavior? staging
staging-behavior-2.movPR behaviordev-behavior-2.mov
|
|
@jayeshmangwani yeah great catch, so the default settings will have approvals disabled, BUT, if the choose to enable it and invite someone, we should have these actions revert to their traditional |
|
@MelvinBot when |
|
I have failed to help you. I let you down and for that I am sorry. Please try again later. This may be due to a Claude outage (check here). Failure details: https://github.com/Expensify/Expensify/actions/runs/23647077540 |
|
@MelvinBot please merge main and check this comment: #86460 (comment) |
…entCopy Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com> # Conflicts: # src/components/MoneyReportHeader.tsx # src/pages/inbox/report/PureReportActionItem.tsx
When a track-intent user has a workspace with Approvals enabled, the CTA buttons and system messages should use the standard Submit/Approve terminology. The 'Mark as done' copy should only apply when the workspace has approvals disabled (submit-and-close mode). Added isSubmitAndClose(policy) check alongside the existing isTrackIntentUser check across all affected components: - SubmitActionButton, ApproveActionButton, MoneyReportHeader - AnimatedSubmitButton (new policyID prop) - OptionRowLHN sidebar badge (new isApprovalDisabledForReport prop) - ActionCell in search/reports list - useSearchBulkActions bulk action buttons - PureReportActionItem system messages Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Merged main and addressed the feedback from the referenced comments. What changed: When a track-intent user has a workspace with Approvals enabled, the CTA buttons and system messages now correctly use the standard How: Added Files updated (10):
|
Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the failing Prettier check: import statements in |
Co-authored-by: Jayesh Mangwani <jayeshmangwani@users.noreply.github.com>
|
Fixed the failing ESLint check: removed unused |









Explanation of Change
For users who onboarded with the "Track and budget expenses" intent (
PERSONAL_SPEND/TRACK_WORKSPACE), the product copy still uses generic expense management language. This PR updates three areas to reflect the track-intent workflow:Detection uses
NVP_INTRO_SELECTEDat the user level perjayeshmangwani's direction — checkingintroSelected?.choice === CONST.ONBOARDING_CHOICES.TRACK_WORKSPACE || introSelected?.choice === CONST.ONBOARDING_CHOICES.PERSONAL_SPEND. A newisTrackIntentUserSelectorinsrc/selectors/Onboarding.tscentralizes this check.Fixed Issues
$ #86223
Tests
Offline tests
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
Verified on web that app builds correctly, workspace chat welcome text renders, and Submit/Approve CTA buttons display without errors. The track-intent copy ("Mark as done") requires a user who selected "Track and budget expenses" during onboarding.