[Rules Revamp] Release 3: Add Agents tab to Rules Revamp Beta#95322
[Rules Revamp] Release 3: Add Agents tab to Rules Revamp Beta#95322Krishna2323 wants to merge 20 commits into
Conversation
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
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 |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@codex review |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bd0d025024
ℹ️ 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".
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@codex review |
|
Codex Review: Didn't find any major issues. Swish! Reviewed commit: ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
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". |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
JS00001
left a comment
There was a problem hiding this comment.
One nab, otherwise code looks good
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@JS00001, could you please run the translation script? |
🦜 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 a62f082fe36..9376c0602c0 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;
@@ -7594,6 +7593,11 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
agentCreatedTitle: 'RuleBot wurde zu Ihrem Arbeitsbereich hinzugefügt!',
agentCreatedDescription: (agentsRoute: string) =>
`<muted-text>Um Ihre Agent-Regeln durchzusetzen, haben wir einen Agenten für Sie erstellt und ihn als Administrator zu Ihrem Arbeitsbereich hinzugefügt.<br><br>Bearbeiten Sie die Details Ihres Agenten unter <a href="${agentsRoute}">Konto > Agenten</a>.</muted-text>`,
+ revampSubtitle: 'Beschreiben Sie flexible Regeln, die bei Bedarf ausgeführt werden.',
+ newRuleTitle: 'Neue Regel',
+ describeRuleForConcierge: 'Beschreiben Sie Ihre Regel und Concierge erstellt sie',
+ nextButton: 'Weiter',
+ gotIt: 'Verstanden',
},
tabs: {
general: 'Allgemein',
@@ -7601,6 +7605,7 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
expenseDefaults: 'Standardausgaben',
requireFields: 'Felder erforderlich',
flagForReview: 'Zur Überprüfung markieren',
+ agents: 'Agents',
},
bulkActions: {
deleteMultiple: () => ({
@@ -7659,9 +7664,11 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
applyExpenseDefaults: 'Standardspesen übernehmen',
applyExpenseDefaultsDescription: 'Felder aktualisieren, ohne dass die einreichende Person etwas tun muss',
flagForReview: 'Zur Überprüfung markieren',
- flagForReviewDescription: 'Genehmigende benachrichtigen, wenn Ausgaben Kategorienlimits überschreiten',
+ flagForReviewDescription: 'Benachrichtigen, wenn Ihre Bedingungen erfüllt sind.',
requireFields: 'Felder erforderlich',
- requireFieldsDescription: 'Stellen Sie sicher, dass die wichtigsten Felder ausgefüllt sind, bevor Ausgaben eingereicht werden',
+ requireFieldsDescription: 'Belege, Kategorien usw. beim Einreichen.',
+ createAgentRule: 'Agentenregel',
+ createAgentRuleDescription: 'Beschreiben Sie flexible Regeln, die bei Bedarf ausgeführt werden.',
},
expenseDefaultsTable: {
tableColumnType: 'Typ',
@@ -7725,6 +7732,11 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
confirmErrorAmount: 'Bitte geben Sie einen Betrag ein.',
thenFlagForReview: 'Dann zur Überprüfung kennzeichnen, wenn:',
},
+ agentRulesEmptyState: {
+ title: 'Keine Agentenregeln hinzugefügt',
+ subtitle: 'Erstellen Sie eine Regel, um Ihre Arbeitsbereichsrichtlinien zu automatisieren.',
+ cta: 'KI-Regel hinzufügen',
+ },
},
planTypePage: {
planTypes: {
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 9b8219bd0b3..740ef0be9db 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',
@@ -7485,6 +7484,11 @@ ${amount} para ${merchant} - ${date}`,
agentCreatedTitle: '¡RuleBot se ha añadido a tu espacio de trabajo!',
agentCreatedDescription: (agentsRoute: string) =>
`<muted-text>Para aplicar tus reglas de agente, hemos creado un agente para ti y lo hemos añadido como administrador de tu espacio de trabajo.<br><br>Edita los datos de tu agente en <a href="${agentsRoute}">Cuenta > Agentes</a>.</muted-text>`,
+ revampSubtitle: 'Describe reglas flexibles que se ejecutan cuando las necesitas.',
+ newRuleTitle: 'Nueva regla',
+ describeRuleForConcierge: 'Describe tu regla y Concierge la creará',
+ nextButton: 'Siguiente',
+ gotIt: 'Entendido',
},
tabs: {
general: 'General',
@@ -7492,6 +7496,7 @@ ${amount} para ${merchant} - ${date}`,
expenseDefaults: 'Valores predeterminados de gastos',
requireFields: 'Campos obligatorios',
flagForReview: 'Marcar para revisión',
+ agents: 'Agentes',
},
bulkActions: {
deleteMultiple: () => ({
@@ -7550,9 +7555,11 @@ ${amount} para ${merchant} - ${date}`,
applyExpenseDefaults: 'Aplicar valores predeterminados de gastos',
applyExpenseDefaultsDescription: 'Actualizar campos sin que quien los envía haga nada',
flagForReview: 'Marcar para revisión',
- flagForReviewDescription: 'Notificar a los aprobadores cuando los gastos superen los límites de categoría',
+ flagForReviewDescription: 'Notificar cuando se cumplan tus condiciones.',
requireFields: 'Campos obligatorios',
- requireFieldsDescription: 'Asegúrate de que los campos clave estén rellenos antes de enviar los gastos',
+ requireFieldsDescription: 'Recibos, categorías, etc., al enviar.',
+ createAgentRule: 'Regla de agente',
+ createAgentRuleDescription: 'Describe reglas flexibles que se ejecutan cuando las necesitas.',
},
expenseDefaultsTable: {
tableColumnType: 'Tipo',
@@ -7616,6 +7623,11 @@ ${amount} para ${merchant} - ${date}`,
confirmErrorAmount: 'Por favor, introduce una cantidad.',
thenFlagForReview: 'Luego marcar para revisión cuando:',
},
+ agentRulesEmptyState: {
+ title: 'No se han añadido reglas de agente',
+ subtitle: 'Crea una regla para automatizar las políticas de tu espacio de trabajo.',
+ cta: 'Añadir regla de IA',
+ },
},
emptyDomain: {
title: 'Mejora tu seguridad con dominios',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 194741bd75c..0d0e80c480e 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;
@@ -7621,6 +7620,11 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
agentCreatedTitle: 'RuleBot a été ajouté à votre espace de travail !',
agentCreatedDescription: (agentsRoute: string) =>
`<muted-text>Pour appliquer vos règles d’agent, nous avons créé un agent pour vous et l’avons ajouté comme administrateur de votre espace de travail.<br><br>Modifiez les détails de votre agent dans <a href="${agentsRoute}">Compte > Agents</a>.</muted-text>`,
+ revampSubtitle: 'Décrivez des règles flexibles qui s’exécutent quand vous en avez besoin.',
+ newRuleTitle: 'Nouvelle règle',
+ describeRuleForConcierge: 'Décrivez votre règle et Concierge la créera',
+ nextButton: 'Suivant',
+ gotIt: 'Compris',
},
tabs: {
general: 'Général',
@@ -7628,6 +7632,7 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
expenseDefaults: 'Paramètres par défaut des dépenses',
requireFields: 'Champs obligatoires',
flagForReview: 'Marquer pour examen',
+ agents: 'Agents',
},
bulkActions: {
deleteMultiple: () => ({
@@ -7686,9 +7691,11 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
applyExpenseDefaults: 'Appliquer les valeurs de dépense par défaut',
applyExpenseDefaultsDescription: 'Mettre à jour les champs sans que le déclarant ne fasse quoi que ce soit',
flagForReview: 'Marquer pour examen',
- flagForReviewDescription: 'Avertir les approbateurs lorsque les dépenses dépassent les limites de catégorie',
+ flagForReviewDescription: 'Avertir lorsque vos conditions sont remplies.',
requireFields: 'Champs obligatoires',
- requireFieldsDescription: 'Assurez-vous que les champs clés sont remplis avant que les dépenses soient soumises',
+ requireFieldsDescription: 'Reçus, catégories, etc., lors de la soumission.',
+ createAgentRule: 'Règle d’agent',
+ createAgentRuleDescription: 'Décrivez des règles flexibles qui s’exécutent quand vous en avez besoin.',
},
expenseDefaultsTable: {
tableColumnType: 'Type',
@@ -7752,6 +7759,11 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
confirmErrorAmount: 'Veuillez saisir un montant.',
thenFlagForReview: 'Puis signaler pour examen lorsque :',
},
+ agentRulesEmptyState: {
+ title: 'Aucune règle d’agent ajoutée',
+ subtitle: 'Créez une règle pour automatiser les politiques de votre espace de travail.',
+ cta: 'Ajouter une règle IA',
+ },
},
planTypePage: {
planTypes: {
diff --git a/src/languages/it.ts b/src/languages/it.ts
index ced18bde486..179a28daf2a 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;
@@ -7578,6 +7577,11 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
agentCreatedTitle: 'RuleBot è stato aggiunto al tuo spazio di lavoro!',
agentCreatedDescription: (agentsRoute: string) =>
`<muted-text>Per applicare le tue regole dell’agente, abbiamo creato un agente per te e lo abbiamo aggiunto come amministratore del tuo spazio di lavoro.<br><br>Modifica i dettagli del tuo agente in <a href="${agentsRoute}">Account > Agenti</a>.</muted-text>`,
+ revampSubtitle: 'Descrivi regole flessibili che vengono eseguite quando ne hai bisogno.',
+ newRuleTitle: 'Nuova regola',
+ describeRuleForConcierge: 'Descrivi la tua regola e Concierge la creerà',
+ nextButton: 'Avanti',
+ gotIt: 'Capito',
},
tabs: {
general: 'Generale',
@@ -7585,6 +7589,7 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
expenseDefaults: 'Impostazioni predefinite spese',
requireFields: 'Rendi obbligatori i campi',
flagForReview: 'Contrassegna per revisione',
+ agents: 'Agenti',
},
bulkActions: {
deleteMultiple: () => ({
@@ -7643,9 +7648,11 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
applyExpenseDefaults: 'Applica impostazioni predefinite spese',
applyExpenseDefaultsDescription: 'Aggiorna i campi senza che chi invia debba fare nulla',
flagForReview: 'Contrassegna per revisione',
- flagForReviewDescription: 'Avvisa gli approvatori quando le spese superano i limiti di categoria',
+ flagForReviewDescription: 'Notifica quando le tue condizioni sono soddisfatte.',
requireFields: 'Rendi obbligatori i campi',
- requireFieldsDescription: 'Assicurati che i campi chiave siano compilati prima di inviare le spese',
+ requireFieldsDescription: 'Ricevute, categorie, ecc. durante l’invio.',
+ createAgentRule: 'Regola agente',
+ createAgentRuleDescription: 'Descrivi regole flessibili che vengono eseguite quando ne hai bisogno.',
},
expenseDefaultsTable: {
tableColumnType: 'Tipo',
@@ -7709,6 +7716,7 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
confirmErrorAmount: 'Inserisci un importo.',
thenFlagForReview: 'Poi segnala per revisione quando:',
},
+ agentRulesEmptyState: {title: 'Nessuna regola agente aggiunta', subtitle: 'Crea una regola per automatizzare le policy del tuo workspace.', cta: 'Aggiungi regola IA'},
},
planTypePage: {
planTypes: {
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 00ac27dbd9a..97266155bbd 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;
@@ -7485,8 +7484,20 @@ ${reportName}`,
agentCreatedTitle: 'RuleBot がワークスペースに追加されました!',
agentCreatedDescription: (agentsRoute: string) =>
`<muted-text>エージェント ルールを適用するために、エージェントを作成し、ワークスペースの管理者として追加しました。<br><br>エージェントの詳細は <a href="${agentsRoute}">「アカウント」>「エージェント」</a> で編集できます。</muted-text>`,
+ revampSubtitle: '必要なときに実行できる柔軟なルールを設定します。',
+ newRuleTitle: '新しいルール',
+ describeRuleForConcierge: 'ルールの内容を入力すると、Concierge が自動作成します',
+ nextButton: '次へ',
+ gotIt: '了解しました',
+ },
+ tabs: {
+ general: '一般',
+ cardRestrictions: 'カードの制限',
+ expenseDefaults: '経費のデフォルト設定',
+ requireFields: '必須項目',
+ flagForReview: '確認のためにフラグを付ける',
+ agents: 'エージェント',
},
- tabs: {general: '一般', cardRestrictions: 'カードの制限', expenseDefaults: '経費のデフォルト設定', requireFields: '必須項目', flagForReview: '確認のためにフラグを付ける'},
bulkActions: {
deleteMultiple: () => ({
one: 'ルールを削除',
@@ -7544,9 +7555,11 @@ ${reportName}`,
applyExpenseDefaults: '経費のデフォルトを適用',
applyExpenseDefaultsDescription: '申請者が何も操作しなくてもフィールドを更新する',
flagForReview: '確認のためにフラグを付ける',
- flagForReviewDescription: '経費がカテゴリの上限を超えたとき承認者に通知します',
+ flagForReviewDescription: '条件が満たされたときに通知します。',
requireFields: '必須項目',
- requireFieldsDescription: '経費を提出する前に、主要な項目が入力されていることを確認してください',
+ requireFieldsDescription: '提出時の領収書、カテゴリなど',
+ createAgentRule: 'エージェントルール',
+ createAgentRuleDescription: '必要なときに実行できる柔軟なルールを設定します。',
},
expenseDefaultsTable: {
tableColumnType: '種類',
@@ -7610,6 +7623,7 @@ ${reportName}`,
confirmErrorAmount: '金額を入力してください。',
thenFlagForReview: '次の条件で確認フラグを付けます:',
},
+ agentRulesEmptyState: {title: 'エージェントルールが追加されていません', subtitle: 'ワークスペースのポリシーを自動化するルールを作成します。', cta: 'AIルールを追加'},
},
planTypePage: {
planTypes: {
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index cd605d22e0d..fea862b39f3 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;
@@ -7556,6 +7555,11 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
agentCreatedTitle: 'RuleBot is toegevoegd aan je werkruimte!',
agentCreatedDescription: (agentsRoute: string) =>
`<muted-text>Om je agentregels af te dwingen, hebben we een agent voor je gemaakt en deze als beheerder aan je werkruimte toegevoegd.<br><br>Bewerk de gegevens van je agent in <a href="${agentsRoute}">Account > Agents</a>.</muted-text>`,
+ revampSubtitle: 'Beschrijf flexibele regels die worden uitgevoerd wanneer jij dat nodig hebt.',
+ newRuleTitle: 'Nieuwe regel',
+ describeRuleForConcierge: 'Beschrijf je regel en Concierge bouwt hem voor je',
+ nextButton: 'Volgende',
+ gotIt: 'Begrepen',
},
tabs: {
general: 'Algemeen',
@@ -7563,6 +7567,7 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
expenseDefaults: 'Standaardinstellingen voor uitgaven',
requireFields: 'Maak velden verplicht',
flagForReview: 'Markeren voor controle',
+ agents: 'Agenten',
},
bulkActions: {
deleteMultiple: () => ({
@@ -7621,9 +7626,11 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
applyExpenseDefaults: 'Standaardinstellingen voor uitgaven toepassen',
applyExpenseDefaultsDescription: 'Velden bijwerken zonder dat de indiener iets hoeft te doen',
flagForReview: 'Markeren voor controle',
- flagForReviewDescription: 'Goedkeurders informeren wanneer onkosten de categorielimieten overschrijden',
+ flagForReviewDescription: 'Stel een melding in wanneer aan je voorwaarden is voldaan.',
requireFields: 'Maak velden verplicht',
- requireFieldsDescription: 'Zorg dat belangrijke velden zijn ingevuld voordat onkosten worden ingediend',
+ requireFieldsDescription: 'Bonnetjes, categorieën, enz. bij het indienen.',
+ createAgentRule: 'Agentregel',
+ createAgentRuleDescription: 'Beschrijf flexibele regels die worden uitgevoerd wanneer jij dat nodig hebt.',
},
expenseDefaultsTable: {
tableColumnType: 'Type',
@@ -7687,6 +7694,7 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
confirmErrorAmount: 'Voer een bedrag in.',
thenFlagForReview: 'Vlag dan voor controle wanneer:',
},
+ agentRulesEmptyState: {title: 'Geen agentregels toegevoegd', subtitle: 'Maak een regel om je werkruimtebeleid te automatiseren.', cta: 'AI-regel toevoegen'},
},
planTypePage: {
planTypes: {
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 2127c980854..f13b2d2bf46 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;
@@ -7538,6 +7537,11 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`,
agentCreatedTitle: 'RuleBot został dodany do Twojego obszaru roboczego!',
agentCreatedDescription: (agentsRoute: string) =>
`<muted-text>Aby egzekwować Twoje reguły agenta, utworzyliśmy dla Ciebie agenta i dodaliśmy go jako administratora do Twojego obszaru roboczego.<br><br>Edytuj dane swojego agenta w sekcji <a href="${agentsRoute}">Konto > Agenci</a>.</muted-text>`,
+ revampSubtitle: 'Opisuj elastyczne reguły, które uruchamiają się wtedy, kiedy tego potrzebujesz.',
+ newRuleTitle: 'Nowa reguła',
+ describeRuleForConcierge: 'Opisz swoją regułę, a Concierge ją utworzy',
+ nextButton: 'Dalej',
+ gotIt: 'Jasne',
},
tabs: {
general: 'Ogólne',
@@ -7545,6 +7549,7 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`,
expenseDefaults: 'Domyślne ustawienia wydatków',
requireFields: 'Wymagaj pól',
flagForReview: 'Oznacz do przejrzenia',
+ agents: 'Agenci',
},
bulkActions: {
deleteMultiple: () => ({
@@ -7603,9 +7608,11 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`,
applyExpenseDefaults: 'Zastosuj domyślne ustawienia wydatków',
applyExpenseDefaultsDescription: 'Aktualizuj pola bez wymagania działania od osoby zgłaszającej',
flagForReview: 'Oznacz do przejrzenia',
- flagForReviewDescription: 'Powiadamiaj zatwierdzających, gdy wydatki przekraczają limity kategorii',
+ flagForReviewDescription: 'Powiadom, gdy twoje warunki zostaną spełnione.',
requireFields: 'Wymagaj pól',
- requireFieldsDescription: 'Upewnij się, że kluczowe pola są wypełnione przed wysłaniem wydatków',
+ requireFieldsDescription: 'Paragony, kategorie itd. przy wysyłaniu.',
+ createAgentRule: 'Reguła agenta',
+ createAgentRuleDescription: 'Opisuj elastyczne reguły, które uruchamiają się wtedy, kiedy tego potrzebujesz.',
},
expenseDefaultsTable: {
tableColumnType: 'Typ',
@@ -7669,6 +7676,7 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`,
confirmErrorAmount: 'Wpisz kwotę.',
thenFlagForReview: 'Następnie oznacz do przejrzenia, gdy:',
},
+ agentRulesEmptyState: {title: 'Nie dodano reguł agenta', subtitle: 'Utwórz regułę, żeby zautomatyzować zasady swojego workspace’u.', cta: 'Dodaj regułę AI'},
},
planTypePage: {
planTypes: {
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 0b7f5c5bb7c..d71a8a35d90 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;
@@ -7548,6 +7547,11 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`,
agentCreatedTitle: 'O RuleBot foi adicionado ao seu espaço de trabalho!',
agentCreatedDescription: (agentsRoute: string) =>
`<muted-text>Para aplicar suas regras de agente, criamos um agente para você e o adicionamos como administrador do seu espaço de trabalho.<br><br>Edite os detalhes do seu agente em <a href="${agentsRoute}">Conta > Agentes</a>.</muted-text>`,
+ revampSubtitle: 'Descreva regras flexíveis que são executadas quando você precisar.',
+ newRuleTitle: 'Nova regra',
+ describeRuleForConcierge: 'Descreva sua regra e o Concierge vai criá-la',
+ nextButton: 'Próximo',
+ gotIt: 'Entendi',
},
tabs: {
general: 'Geral',
@@ -7555,6 +7559,7 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`,
expenseDefaults: 'Padrões de despesa',
requireFields: 'Tornar campos obrigatórios',
flagForReview: 'Marcar para revisão',
+ agents: 'Agentes',
},
bulkActions: {
deleteMultiple: () => ({
@@ -7613,9 +7618,11 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`,
applyExpenseDefaults: 'Aplicar padrões de despesa',
applyExpenseDefaultsDescription: 'Atualizar campos sem o responsável pelo envio fazer nada',
flagForReview: 'Marcar para revisão',
- flagForReviewDescription: 'Notificar aprovadores quando as despesas excederem os limites da categoria',
+ flagForReviewDescription: 'Notificar quando suas condições forem atendidas.',
requireFields: 'Tornar campos obrigatórios',
- requireFieldsDescription: 'Certifique-se de que os campos principais estejam preenchidos antes de enviar as despesas',
+ requireFieldsDescription: 'Recibos, categorias, etc., ao enviar.',
+ createAgentRule: 'Regra do agente',
+ createAgentRuleDescription: 'Descreva regras flexíveis que são executadas quando você precisar.',
},
expenseDefaultsTable: {
tableColumnType: 'Tipo',
@@ -7679,6 +7686,7 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`,
confirmErrorAmount: 'Insira um valor.',
thenFlagForReview: 'Então sinalizar para revisão quando:',
},
+ agentRulesEmptyState: {title: 'Nenhuma regra de agente adicionada', subtitle: 'Crie uma regra para automatizar as políticas do seu workspace.', cta: 'Adicionar regra de IA'},
},
planTypePage: {
planTypes: {
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 24cdbbf2cbe..00f0ce4e89e 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;
@@ -7342,8 +7341,13 @@ ${reportName}`,
agentCreatedTitle: 'RuleBot 已添加到你的工作区!',
agentCreatedDescription: (agentsRoute: string) =>
`<muted-text>为了执行你的代理规则,我们为你创建了一个代理,并将其添加为你工作区的管理员。<br><br>你可以在 <a href="${agentsRoute}">“账户”>“代理”</a> 中编辑代理的详细信息。</muted-text>`,
+ revampSubtitle: '按需运行的灵活规则描述',
+ newRuleTitle: '新规则',
+ describeRuleForConcierge: '描述你的规则,Concierge 会帮你创建',
+ nextButton: '下一步',
+ gotIt: '知道了',
},
- tabs: {general: '常规', cardRestrictions: '卡片限制', expenseDefaults: '报销默认设置', requireFields: '必填字段', flagForReview: '标记以供审核'},
+ tabs: {general: '常规', cardRestrictions: '卡片限制', expenseDefaults: '报销默认设置', requireFields: '必填字段', flagForReview: '标记以供审核', agents: '代理人'},
bulkActions: {
deleteMultiple: () => ({
one: '删除规则',
@@ -7401,9 +7405,11 @@ ${reportName}`,
applyExpenseDefaults: '应用报销默认设置',
applyExpenseDefaultsDescription: '在提交人无须执行任何操作的情况下更新字段',
flagForReview: '标记以供审核',
- flagForReviewDescription: '当费用超出类别限额时通知审批人',
+ flagForReviewDescription: '在满足您的条件时通知。',
requireFields: '必填字段',
- requireFieldsDescription: '请确保在提交报销前填写所有关键字段',
+ requireFieldsDescription: '提交时的收据、类别等。',
+ createAgentRule: '代理规则',
+ createAgentRuleDescription: '按需运行的灵活规则描述',
},
expenseDefaultsTable: {
tableColumnType: '类型',
@@ -7459,6 +7465,7 @@ ${reportName}`,
confirmErrorAmount: '请输入金额。',
thenFlagForReview: '然后在以下情况下标记为待审核:',
},
+ agentRulesEmptyState: {title: '未添加代理规则', subtitle: '创建规则以自动化您的工作区策略。', cta: '添加 AI 规则'},
},
planTypePage: {
planTypes: {
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
|
Added myself since I'm on the parent issue. |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
🚧 JmillsExpensify has triggered a test Expensify/App build. You can view the workflow run here. |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
Agree with Shawn on both of those points. Otherwise, the main flows tested well. |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
Nice, thanks! |
@shawnborton for the RuleBot avatar mismatch: the first-rule modal uses a static/hardcoded blue bot avatar ( Should both use the same RuleBot avatar once it's provisioned? Checking before I change it. |
|
Yeah, the modal should not be using a hard-coded avatar (cc @NicolasBonet @yuwenmemon ) - the avatar should always match the bot avatar that the actual RuleBot is using. |



Explanation of Change
Fixed Issues
$ #94975
PROPOSAL:
Tests
Prerequisites: Account with
RULES_REVAMPandCUSTOM_AGENTbetas. Use a workspace with Rules enabled and admin access.AddAgentRulePage)Offline tests
QA Steps
Same as tests
Verify that no errors appear in the JS console
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand 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