Polish add-personal-details flow - #95516
Conversation
|
Hey, I noticed you changed If you want to automatically generate translations for other locales, an Expensify employee will have to:
Alternatively, if you are an external contributor, you can run the translation script locally with your own OpenAI API key. To learn more, try running: npx ts-node ./scripts/generateTranslations.ts --helpTypically, you'd want to translate only what you changed by running |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: effd727337
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@chuckdries Please help run this script: #95516 (comment) |
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
🦜 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 80767a35809..8a42bb52266 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -1,13 +1,3 @@
-import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
-import StringUtils from '@libs/StringUtils';
-
-import CONST from '@src/CONST';
-import type {Country} from '@src/CONST';
-import type OriginalMessage from '@src/types/onyx/OriginalMessage';
-import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
-
-import type {ValueOf} from 'type-fest';
-
/**
* _____ __ __
* / ___/__ ___ ___ _______ _/ /____ ___/ /
@@ -19,6 +9,16 @@ import type {ValueOf} from 'type-fest';
* - Improve the prompts in prompts/translation, or
* - Improve context annotations in src/languages/en.ts
*/
+import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
+import StringUtils from '@libs/StringUtils';
+
+import CONST from '@src/CONST';
+import type {Country} from '@src/CONST';
+import type OriginalMessage from '@src/types/onyx/OriginalMessage';
+import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
+
+import type {ValueOf} from 'type-fest';
+
import {CONST as COMMON_CONST, Str} from 'expensify-common';
import startCase from 'lodash/startCase';
@@ -63,7 +63,6 @@ import type {
YourPlanPriceParams,
} from './params';
import type {TranslationDeepObject} from './types';
-
type StateValue = {
stateISO: string;
stateName: string;
@@ -989,11 +988,7 @@ const translations: TranslationDeepObject<typeof en> = {
workspaceSubtitle: ({policyName}: {policyName: string}) => policyName,
personalSubtitle: 'Geldbörse',
},
- addVirtualCardPersonalDetails: {
- title: 'Fügen Sie Ihre persönlichen Daten hinzu',
- subtitle: 'Fügen Sie Ihre Daten hinzu, um Ihre Expensify Karte anzusehen und zu verwenden.',
- cta: 'Details hinzufügen',
- },
+ addVirtualCardPersonalDetails: {title: 'Expensify Karte', subtitle: 'Fügen Sie Ihre Daten hinzu, um Ihre Expensify Karte anzuzeigen und zu verwenden', cta: 'Details hinzufügen'},
enterSignerInfo: {title: 'Unterzeichnerdaten erforderlich', subtitle: ({bankAccountLastFour}: {bankAccountLastFour: string}) => `Bankkonto ${bankAccountLastFour}`},
},
announcements: 'Ankündigungen',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 9c7728f8bc6..f7aa51845c1 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -1,6 +1,3 @@
-import CONST from '@src/CONST';
-import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
-
/**
* _____ __ __
* / ___/__ ___ ___ _______ _/ /____ ___/ /
@@ -12,12 +9,14 @@ import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields
* - Improve the prompts in prompts/translation, or
* - Improve context annotations in src/languages/en.ts
*/
+import CONST from '@src/CONST';
+import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
+
import {CONST as COMMON_CONST, Str} from 'expensify-common';
import type en from './en';
import type {ConciergeBrokenCardConnectionParams, PaidElsewhereParams, RemoveCopilotAccessConfirmationParams, UnsupportedFormulaValueErrorParams} from './params';
import type {TranslationDeepObject} from './types';
-
const translations: TranslationDeepObject<typeof en> = {
common: {
count: 'Contar',
@@ -919,7 +918,7 @@ const translations: TranslationDeepObject<typeof en> = {
subtitle: 'Proporciona una dirección para recibir tu Tarjeta Expensify.',
cta: 'Añade dirección',
},
- addVirtualCardPersonalDetails: {title: 'Añade tus datos personales', subtitle: 'Añade tus datos para ver y empezar a usar tu Tarjeta Expensify.', cta: 'Añade detalles'},
+ addVirtualCardPersonalDetails: {title: 'Tarjeta Expensify', subtitle: 'Añade tus datos para ver y empezar a usar tu Tarjeta Expensify', cta: 'Añade detalles'},
addPaymentCard: {
title: 'Añade una tarjeta de pago para seguir usando Expensify',
subtitle: 'Cuenta > Suscripción',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 3c249b4dc3e..bdc9caa2ae9 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -1,13 +1,3 @@
-import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
-import StringUtils from '@libs/StringUtils';
-
-import CONST from '@src/CONST';
-import type {Country} from '@src/CONST';
-import type OriginalMessage from '@src/types/onyx/OriginalMessage';
-import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
-
-import type {ValueOf} from 'type-fest';
-
/**
* _____ __ __
* / ___/__ ___ ___ _______ _/ /____ ___/ /
@@ -19,6 +9,16 @@ import type {ValueOf} from 'type-fest';
* - Improve the prompts in prompts/translation, or
* - Improve context annotations in src/languages/en.ts
*/
+import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
+import StringUtils from '@libs/StringUtils';
+
+import CONST from '@src/CONST';
+import type {Country} from '@src/CONST';
+import type OriginalMessage from '@src/types/onyx/OriginalMessage';
+import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
+
+import type {ValueOf} from 'type-fest';
+
import {CONST as COMMON_CONST, Str} from 'expensify-common';
import startCase from 'lodash/startCase';
@@ -63,7 +63,6 @@ import type {
YourPlanPriceParams,
} from './params';
import type {TranslationDeepObject} from './types';
-
type StateValue = {
stateISO: string;
stateName: string;
@@ -993,8 +992,8 @@ const translations: TranslationDeepObject<typeof en> = {
personalSubtitle: 'Portefeuille',
},
addVirtualCardPersonalDetails: {
- title: 'Ajoutez vos informations personnelles',
- subtitle: 'Ajoutez vos informations pour afficher et commencer à utiliser votre Carte Expensify.',
+ title: 'Carte Expensify',
+ subtitle: 'Ajoutez vos informations pour voir et commencer à utiliser votre Carte Expensify',
cta: 'Ajouter des détails',
},
enterSignerInfo: {title: 'Informations du signataire requises', subtitle: ({bankAccountLastFour}: {bankAccountLastFour: string}) => `Compte bancaire ${bankAccountLastFour}`},
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 6a27c66746c..359746b7e3f 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -1,13 +1,3 @@
-import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
-import StringUtils from '@libs/StringUtils';
-
-import CONST from '@src/CONST';
-import type {Country} from '@src/CONST';
-import type OriginalMessage from '@src/types/onyx/OriginalMessage';
-import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
-
-import type {ValueOf} from 'type-fest';
-
/**
* _____ __ __
* / ___/__ ___ ___ _______ _/ /____ ___/ /
@@ -19,6 +9,16 @@ import type {ValueOf} from 'type-fest';
* - Improve the prompts in prompts/translation, or
* - Improve context annotations in src/languages/en.ts
*/
+import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
+import StringUtils from '@libs/StringUtils';
+
+import CONST from '@src/CONST';
+import type {Country} from '@src/CONST';
+import type OriginalMessage from '@src/types/onyx/OriginalMessage';
+import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
+
+import type {ValueOf} from 'type-fest';
+
import {CONST as COMMON_CONST, Str} from 'expensify-common';
import startCase from 'lodash/startCase';
@@ -63,7 +63,6 @@ import type {
YourPlanPriceParams,
} from './params';
import type {TranslationDeepObject} from './types';
-
type StateValue = {
stateISO: string;
stateName: string;
@@ -990,11 +989,7 @@ const translations: TranslationDeepObject<typeof en> = {
workspaceSubtitle: ({policyName}: {policyName: string}) => policyName,
personalSubtitle: 'Portafoglio',
},
- addVirtualCardPersonalDetails: {
- title: 'Aggiungi i tuoi dati personali',
- subtitle: 'Aggiungi i tuoi dati per visualizzare e iniziare a usare la tua Carta Expensify.',
- cta: 'Aggiungi dettagli',
- },
+ addVirtualCardPersonalDetails: {title: 'Carta Expensify', subtitle: 'Aggiungi i tuoi dati per visualizzare e iniziare a usare la tua Carta Expensify', cta: 'Aggiungi dettagli'},
enterSignerInfo: {title: 'Informazioni del firmatario necessarie', subtitle: ({bankAccountLastFour}: {bankAccountLastFour: string}) => `Conto bancario ${bankAccountLastFour}`},
},
announcements: 'Annunci',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 079d01c0825..a50fad02942 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -1,13 +1,3 @@
-import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
-import StringUtils from '@libs/StringUtils';
-
-import CONST from '@src/CONST';
-import type {Country} from '@src/CONST';
-import type OriginalMessage from '@src/types/onyx/OriginalMessage';
-import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
-
-import type {ValueOf} from 'type-fest';
-
/**
* _____ __ __
* / ___/__ ___ ___ _______ _/ /____ ___/ /
@@ -19,6 +9,16 @@ import type {ValueOf} from 'type-fest';
* - Improve the prompts in prompts/translation, or
* - Improve context annotations in src/languages/en.ts
*/
+import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
+import StringUtils from '@libs/StringUtils';
+
+import CONST from '@src/CONST';
+import type {Country} from '@src/CONST';
+import type OriginalMessage from '@src/types/onyx/OriginalMessage';
+import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
+
+import type {ValueOf} from 'type-fest';
+
import {CONST as COMMON_CONST, Str} from 'expensify-common';
import startCase from 'lodash/startCase';
@@ -63,7 +63,6 @@ import type {
YourPlanPriceParams,
} from './params';
import type {TranslationDeepObject} from './types';
-
type StateValue = {
stateISO: string;
stateName: string;
@@ -976,7 +975,7 @@ const translations: TranslationDeepObject<typeof en> = {
workspaceSubtitle: ({policyName}: {policyName: string}) => policyName,
personalSubtitle: 'ウォレット',
},
- addVirtualCardPersonalDetails: {title: '個人情報を追加してください', subtitle: 'Expensify カードを表示して使い始めるには、詳細情報を入力してください。', cta: '詳細を追加'},
+ addVirtualCardPersonalDetails: {title: 'Expensify カード', subtitle: 'Expensify カードを表示して利用を開始するには、ご自身の情報を追加してください', cta: '詳細を追加'},
enterSignerInfo: {title: '署名者情報が必要です', subtitle: ({bankAccountLastFour}: {bankAccountLastFour: string}) => `銀行口座 ${bankAccountLastFour}`},
},
announcements: 'お知らせ',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index eed36c301a5..86293ce752e 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -1,13 +1,3 @@
-import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
-import StringUtils from '@libs/StringUtils';
-
-import CONST from '@src/CONST';
-import type {Country} from '@src/CONST';
-import type OriginalMessage from '@src/types/onyx/OriginalMessage';
-import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
-
-import type {ValueOf} from 'type-fest';
-
/**
* _____ __ __
* / ___/__ ___ ___ _______ _/ /____ ___/ /
@@ -19,6 +9,16 @@ import type {ValueOf} from 'type-fest';
* - Improve the prompts in prompts/translation, or
* - Improve context annotations in src/languages/en.ts
*/
+import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
+import StringUtils from '@libs/StringUtils';
+
+import CONST from '@src/CONST';
+import type {Country} from '@src/CONST';
+import type OriginalMessage from '@src/types/onyx/OriginalMessage';
+import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
+
+import type {ValueOf} from 'type-fest';
+
import {CONST as COMMON_CONST, Str} from 'expensify-common';
import startCase from 'lodash/startCase';
@@ -63,7 +63,6 @@ import type {
YourPlanPriceParams,
} from './params';
import type {TranslationDeepObject} from './types';
-
type StateValue = {
stateISO: string;
stateName: string;
@@ -988,11 +987,7 @@ const translations: TranslationDeepObject<typeof en> = {
workspaceSubtitle: ({policyName}: {policyName: string}) => policyName,
personalSubtitle: 'Portemonnee',
},
- addVirtualCardPersonalDetails: {
- title: 'Voeg je persoonlijke gegevens toe',
- subtitle: 'Voeg je gegevens toe om je Expensify Kaart te bekijken en te gaan gebruiken.',
- cta: 'Details toevoegen',
- },
+ addVirtualCardPersonalDetails: {title: 'Expensify Kaart', subtitle: 'Voeg je gegevens toe om je Expensify Kaart te bekijken en te gebruiken', cta: 'Details toevoegen'},
enterSignerInfo: {title: 'Ondertekenaargegevens vereist', subtitle: ({bankAccountLastFour}: {bankAccountLastFour: string}) => `Bankrekening ${bankAccountLastFour}`},
},
announcements: 'Aankondigingen',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 97ee9de8759..fa39a075a3a 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -1,13 +1,3 @@
-import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
-import StringUtils from '@libs/StringUtils';
-
-import CONST from '@src/CONST';
-import type {Country} from '@src/CONST';
-import type OriginalMessage from '@src/types/onyx/OriginalMessage';
-import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
-
-import type {ValueOf} from 'type-fest';
-
/**
* _____ __ __
* / ___/__ ___ ___ _______ _/ /____ ___/ /
@@ -19,6 +9,16 @@ import type {ValueOf} from 'type-fest';
* - Improve the prompts in prompts/translation, or
* - Improve context annotations in src/languages/en.ts
*/
+import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
+import StringUtils from '@libs/StringUtils';
+
+import CONST from '@src/CONST';
+import type {Country} from '@src/CONST';
+import type OriginalMessage from '@src/types/onyx/OriginalMessage';
+import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
+
+import type {ValueOf} from 'type-fest';
+
import {CONST as COMMON_CONST, Str} from 'expensify-common';
import startCase from 'lodash/startCase';
@@ -63,7 +63,6 @@ import type {
YourPlanPriceParams,
} from './params';
import type {TranslationDeepObject} from './types';
-
type StateValue = {
stateISO: string;
stateName: string;
@@ -990,7 +989,7 @@ const translations: TranslationDeepObject<typeof en> = {
workspaceSubtitle: ({policyName}: {policyName: string}) => policyName,
personalSubtitle: 'Portfel',
},
- addVirtualCardPersonalDetails: {title: 'Dodaj swoje dane osobowe', subtitle: 'Dodaj swoje dane, aby wyświetlić i zacząć używać swojej Karty Expensify.', cta: 'Dodaj szczegóły'},
+ addVirtualCardPersonalDetails: {title: 'Karta Expensify', subtitle: 'Dodaj swoje dane, aby wyświetlić i zacząć używać swojej Karty Expensify', cta: 'Dodaj szczegóły'},
enterSignerInfo: {title: 'Wymagane dane podpisującego', subtitle: ({bankAccountLastFour}: {bankAccountLastFour: string}) => `Konto bankowe ${bankAccountLastFour}`},
},
announcements: 'Ogłoszenia',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index a1b9e47280f..fd0a1b84c66 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -1,13 +1,3 @@
-import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
-import StringUtils from '@libs/StringUtils';
-
-import CONST from '@src/CONST';
-import type {Country} from '@src/CONST';
-import type OriginalMessage from '@src/types/onyx/OriginalMessage';
-import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
-
-import type {ValueOf} from 'type-fest';
-
/**
* _____ __ __
* / ___/__ ___ ___ _______ _/ /____ ___/ /
@@ -19,6 +9,16 @@ import type {ValueOf} from 'type-fest';
* - Improve the prompts in prompts/translation, or
* - Improve context annotations in src/languages/en.ts
*/
+import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
+import StringUtils from '@libs/StringUtils';
+
+import CONST from '@src/CONST';
+import type {Country} from '@src/CONST';
+import type OriginalMessage from '@src/types/onyx/OriginalMessage';
+import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
+
+import type {ValueOf} from 'type-fest';
+
import {CONST as COMMON_CONST, Str} from 'expensify-common';
import startCase from 'lodash/startCase';
@@ -63,7 +63,6 @@ import type {
YourPlanPriceParams,
} from './params';
import type {TranslationDeepObject} from './types';
-
type StateValue = {
stateISO: string;
stateName: string;
@@ -988,11 +987,7 @@ const translations: TranslationDeepObject<typeof en> = {
workspaceSubtitle: ({policyName}: {policyName: string}) => policyName,
personalSubtitle: 'Carteira',
},
- addVirtualCardPersonalDetails: {
- title: 'Adicione seus dados pessoais',
- subtitle: 'Adicione seus dados para visualizar e começar a usar seu Cartão Expensify.',
- cta: 'Adicionar detalhes',
- },
+ addVirtualCardPersonalDetails: {title: 'Cartão Expensify', subtitle: 'Adicione seus dados para visualizar e começar a usar seu Cartão Expensify', cta: 'Adicionar detalhes'},
enterSignerInfo: {title: 'Informações do signatário necessárias', subtitle: ({bankAccountLastFour}: {bankAccountLastFour: string}) => `Conta bancária ${bankAccountLastFour}`},
},
announcements: 'Comunicados',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 0d253917ba4..e784155d970 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -1,13 +1,3 @@
-import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
-import StringUtils from '@libs/StringUtils';
-
-import CONST from '@src/CONST';
-import type {Country} from '@src/CONST';
-import type OriginalMessage from '@src/types/onyx/OriginalMessage';
-import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
-
-import type {ValueOf} from 'type-fest';
-
/**
* _____ __ __
* / ___/__ ___ ___ _______ _/ /____ ___/ /
@@ -19,6 +9,16 @@ import type {ValueOf} from 'type-fest';
* - Improve the prompts in prompts/translation, or
* - Improve context annotations in src/languages/en.ts
*/
+import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow';
+import StringUtils from '@libs/StringUtils';
+
+import CONST from '@src/CONST';
+import type {Country} from '@src/CONST';
+import type OriginalMessage from '@src/types/onyx/OriginalMessage';
+import type {OriginalMessageSettlementAccountLocked, PersonalRulesModifiedFields, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage';
+
+import type {ValueOf} from 'type-fest';
+
import {CONST as COMMON_CONST, Str} from 'expensify-common';
import startCase from 'lodash/startCase';
@@ -63,7 +63,6 @@ import type {
YourPlanPriceParams,
} from './params';
import type {TranslationDeepObject} from './types';
-
type StateValue = {
stateISO: string;
stateName: string;
@@ -959,7 +958,7 @@ const translations: TranslationDeepObject<typeof en> = {
workspaceSubtitle: ({policyName}: {policyName: string}) => policyName,
personalSubtitle: '钱包',
},
- addVirtualCardPersonalDetails: {title: '添加您的个人信息', subtitle: '添加您的详细信息以查看并开始使用 Expensify 卡。', cta: '添加详细信息'},
+ addVirtualCardPersonalDetails: {title: 'Expensify 卡', subtitle: '添加你的详细信息以查看并开始使用 Expensify 卡', cta: '添加详细信息'},
enterSignerInfo: {title: '需要签署人信息', subtitle: ({bankAccountLastFour}: {bankAccountLastFour: string}) => `银行账户 ${bankAccountLastFour}`},
},
announcements: '公告',
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
…' translations across multiple languages and improve import organization in language files.
…ple languages and improve import organization in language files.
…le languages to standardize titles and subtitles for Expensify card usage.
…sh translations to ensure consistency.
…across multiple language files to ensure consistency in translations.
…across multiple language files to enhance consistency in translations.
|
@chuckdries Ready for reviewing |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9dfc9e8f01
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| // `state` is only required for US addresses; countries without states (e.g. the UK) can have a complete address without it. | ||
| // Normalize first so legacy data storing the full country name ("United States") is still recognized as US. |
There was a problem hiding this comment.
This is technically correct but a little misleading. The state field is required for US, and for non-US, we require province instead, which is coalesced into state here. That field is now required when supplying personal details, but it didn't used to be. So we have some non-US users with legacy data who are missing only that field.
Per this discussion, we should:
- Ignore state/province for non-US when showing the home page alert and wallet GBR
- Require state/province when updating personal details on the profile or when ordering a physical card
- (TBD) Require full address when revealing virtual card details - we might not need to do this, depends on the outcome of the thread
|
@DylanDylann can you please merge main one more time, fix the eslint failure, and add QA steps? |
|
@rafecolton I think we should mark this as No QA and ask Tom to test again on his account, since there's no clear way to reproduce the missing-state-field problem. |
|
Oh I see, because it's no longer possible to enter an address through the UI without a state/province. Ok then, I'll mark it internal QA |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
🤔 the lint is failing on files you didn't touch. Try merging main? |
|
@chuckdries Ready to merge |
|
🚧 chuckdries has triggered a test Expensify/App build. You can view the workflow run here. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/chuckdries in version: 9.4.34-0 🚀
|
|
🤖 I reviewed the changes in this PR against the help site content in What this PR changes:
Why no docs update is needed:
Since no documentation changes are required, I did not create a draft help site PR. If you believe a specific help article should be updated to reflect this flow, let me know which one and I'll draft the change. |
|
🚀 Deployed to production by https://github.com/roryabraham in version: 9.4.34-14 🚀
|
|
🚀 Deployed to production by https://github.com/roryabraham in version: 9.4.34-14 🚀
Bundle Size Analysis (Sentry): |
Explanation of Change
Fixed Issues
$ #95513
$ #95512
PROPOSAL:
Tests
Offline tests
QA Steps
Assign to @trjExpensify, he will test on his account
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)Avatar, 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.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Screen.Recording.2026-07-08.at.00.08.15.mov