',
+ subsidiary: 'Tochtergesellschaft',
+ subsidiarySelectDescription: 'Wählen Sie die Tochtergesellschaft in Rillet aus, aus der Sie Daten importieren möchten.',
+ noSubsidiariesFound: 'Keine Tochtergesellschaften gefunden',
+ noSubsidiariesFoundDescription: 'Bitte fügen Sie eine Tochtergesellschaft in Rillet hinzu und synchronisieren Sie die Verbindung erneut.',
+ },
type: {
free: 'Kostenlos',
control: 'Steuerung',
@@ -6461,6 +6472,7 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU
xero: 'Xero',
netsuite: 'NetSuite',
intacct: 'Sage Intacct',
+ rillet: 'Rillet',
sap: 'SAP',
oracle: 'Oracle',
microsoftDynamics: 'Microsoft Dynamics',
@@ -6478,6 +6490,8 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU
return 'NetSuite';
case CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT:
return 'Sage Intacct';
+ case CONST.POLICY.CONNECTIONS.NAME.RILLET:
+ return 'Rillet';
default: {
return '';
}
@@ -6703,6 +6717,12 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU
return 'Dimensionen werden importiert';
case 'financialForceMarkAsReimbursed':
return 'Berichte werden als erstattet markiert';
+ case 'rilletSyncTitle':
+ return 'Rillet-Daten werden synchronisiert';
+ case 'rilletSyncConnection':
+ return 'Verbindung mit Rillet wird initialisiert';
+ case 'rilletSyncImportData':
+ return 'Daten werden geladen';
default: {
return `Übersetzung fehlt für Stufe: ${stage}`;
}
@@ -6973,6 +6993,12 @@ ${reportName}`,
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
`Unsere Certinia-Integration ist nur im Control-Tarif verfügbar, beginnend bei ${formattedPrice} ${hasTeam2025Pricing ? `pro Mitglied und Monat.` : `pro aktivem Mitglied und Monat.`}`,
},
+ [CONST.POLICY.CONNECTIONS.NAME.RILLET]: {
+ title: 'Rillet',
+ description: `Profitiere von automatisierter Synchronisierung und reduziere manuelle Eingaben mit der Expensify + Rillet-Integration. Richte Spesenkodierungsdimensionen und die Steuersynchronisierung auf deine Rillet-Einrichtung aus, um eine klarere finanzielle Übersicht zu erhalten.`,
+ onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
+ `Unsere Rillet-Integration ist nur im Control-Tarif verfügbar, beginnend bei ${formattedPrice} ${hasTeam2025Pricing ? `pro Mitglied und Monat.` : `pro aktivem Mitglied und Monat.`}`,
+ },
[CONST.UPGRADE_FEATURE_INTRO_MAPPING.approvals.id]: {
title: 'Erweiterte Genehmigungen',
description: `Wenn du weitere Genehmigungsstufen hinzufügen möchtest – oder einfach sicherstellen willst, dass die höchsten Ausgaben noch einmal geprüft werden – bist du bei uns richtig. Erweiterte Genehmigungen helfen dir, auf jeder Ebene die passenden Kontrollen einzurichten, damit du die Ausgaben deines Teams im Griff behältst.`,
diff --git a/src/languages/en.ts b/src/languages/en.ts
index e1b8fb07ffa3..ab6c9a545b7b 100644
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -536,6 +536,7 @@ const translations = {
goToConcierge: 'Go to Concierge',
allSet: 'All Set!',
enterDigitLabel: ({digitIndex, totalDigits}: {digitIndex: number; totalDigits: number}) => `enter digit ${digitIndex} of ${totalDigits}`,
+ apiKey: 'API key',
},
socials: {
podcast: 'Follow us on Podcast',
@@ -5553,6 +5554,20 @@ const translations = {
}
},
},
+ rillet: {
+ rilletSetup: 'Rillet setup',
+ enterCredentials: 'Enter your Rillet API key',
+ howToFindAPIKey: 'Finding your API key.
Log in to Rillet
Navigate to Account -> Settings
Copy the API key below
',
+ subsidiary: 'Subsidiary',
+ subsidiarySelectDescription: "Choose the subsidiary in Rillet that you'd like to import data from.",
+ noSubsidiariesFound: 'No subsidiaries found',
+ noSubsidiariesFoundDescription: 'Please add a subsidiary in Rillet and sync the connection again',
+ accountTypesDescription: 'Your Rillet accounts will import as categories.',
+ enableNewAccountsTitle: 'Enable newly imported accounts',
+ enableNewAccountsDescription: 'New Rillet accounts will be available as categories.',
+ dimensionsImport: 'All Rillet dimensions import as tags',
+ importDescription: 'Choose which coding configurations to import from Rillet.',
+ },
type: {
free: 'Free',
control: 'Control',
@@ -6276,6 +6291,7 @@ const translations = {
value: 'Value',
taxReclaimableOn: 'Tax reclaimable on',
taxRate: 'Tax rate',
+ taxRates: 'Tax rates',
findTaxRate: 'Find tax rate',
error: {
taxRateAlreadyExists: 'This tax name is already in use',
@@ -6521,6 +6537,7 @@ const translations = {
xero: 'Xero',
netsuite: 'NetSuite',
intacct: 'Sage Intacct',
+ rillet: 'Rillet',
sap: 'SAP',
oracle: 'Oracle',
microsoftDynamics: 'Microsoft Dynamics',
@@ -6538,6 +6555,8 @@ const translations = {
return 'NetSuite';
case CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT:
return 'Sage Intacct';
+ case CONST.POLICY.CONNECTIONS.NAME.RILLET:
+ return 'Rillet';
default: {
return '';
}
@@ -6766,6 +6785,12 @@ const translations = {
return 'Importing dimensions';
case 'financialForceMarkAsReimbursed':
return 'Marking reports as reimbursed';
+ case 'rilletSyncTitle':
+ return 'Syncing Rillet data';
+ case 'rilletSyncConnection':
+ return 'Initializing connection to Rillet';
+ case 'rilletSyncImportData':
+ return 'Loading data';
default: {
return `Translation missing for stage: ${stage}`;
}
@@ -7110,6 +7135,12 @@ const translations = {
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
`Our Certinia integration is only available on the Control plan, starting at ${formattedPrice} ${hasTeam2025Pricing ? `per member per month.` : `per active member per month.`}`,
},
+ [CONST.POLICY.CONNECTIONS.NAME.RILLET]: {
+ title: 'Rillet',
+ description: `Enjoy automated syncing and reduce manual entries with the Expensify + Rillet integration. Align expense coding dimensions and tax sync with your Rillet setup for clearer financial visibility.`,
+ onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
+ `Our Rillet integration is only available on the Control plan, starting at ${formattedPrice} ${hasTeam2025Pricing ? `per member per month.` : `per active member per month.`}`,
+ },
[CONST.UPGRADE_FEATURE_INTRO_MAPPING.approvals.id]: {
title: 'Advanced Approvals',
description: `If you want to add more layers of approval to the mix – or just make sure the largest expenses get another set of eyes – we’ve got you covered. Advanced approvals help you put the right checks in place at every level so you keep your team’s spend under control.`,
diff --git a/src/languages/es.ts b/src/languages/es.ts
index f8e09a6398d1..7d2062d5a8bb 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -463,6 +463,7 @@ const translations: TranslationDeepObject = {
goToConcierge: 'Ir a Concierge',
allSet: '¡Todo listo!',
enterDigitLabel: ({digitIndex, totalDigits}: {digitIndex: number; totalDigits: number}) => `introducir dígito ${digitIndex} de ${totalDigits}`,
+ apiKey: 'Clave API',
editor: 'Editor',
restrictions: 'Restricciones',
off: 'Desactivado',
@@ -5336,6 +5337,16 @@ ${amount} para ${merchant} - ${date}`,
}
},
},
+ rillet: {
+ rilletSetup: 'Configuración de Rillet',
+ enterCredentials: 'Introduce tu clave de API de Rillet',
+ howToFindAPIKey:
+ 'Encontrar tu clave de API.
Inicia sesión en Rillet
Ve a Cuenta -> Configuración
Copia la clave de API de abajo
',
+ subsidiary: 'Filial',
+ subsidiarySelectDescription: 'Elige la filial en Rillet desde la que te gustaría importar datos.',
+ noSubsidiariesFound: 'No se encontraron filiales',
+ noSubsidiariesFoundDescription: 'Por favor, añade una filial en Rillet y sincroniza de nuevo la conexión',
+ },
type: {
free: 'Gratis',
control: 'Controlar',
@@ -6233,6 +6244,7 @@ ${amount} para ${merchant} - ${date}`,
xero: 'Xero',
netsuite: 'NetSuite',
intacct: 'Sage Intacct',
+ rillet: 'Rillet',
sap: 'SAP',
oracle: 'Oracle',
microsoftDynamics: 'Microsoft Dynamics',
@@ -6250,6 +6262,8 @@ ${amount} para ${merchant} - ${date}`,
return 'NetSuite';
case CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT:
return 'Sage Intacct';
+ case CONST.POLICY.CONNECTIONS.NAME.RILLET:
+ return 'Rillet';
default: {
return '';
}
@@ -6476,6 +6490,12 @@ ${amount} para ${merchant} - ${date}`,
return 'Importando dimensiones';
case 'financialForceMarkAsReimbursed':
return 'Marcando informes como reembolsados';
+ case 'rilletSyncTitle':
+ return 'Sincronizando datos de Rillet';
+ case 'rilletSyncConnection':
+ return 'Iniciando conexión con Rillet';
+ case 'rilletSyncImportData':
+ return 'Cargando datos';
default: {
return `Translation missing for stage: ${stage}`;
}
@@ -6899,6 +6919,12 @@ ${amount} para ${merchant} - ${date}`,
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}) =>
`Nuestra integración con Certinia solo está disponible en el plan Controlar, a partir de ${formattedPrice} ${hasTeam2025Pricing ? `por miembro al mes.` : `por miembro activo al mes.`}`,
},
+ [CONST.POLICY.CONNECTIONS.NAME.RILLET]: {
+ title: 'Rillet',
+ description: `Disfruta de la sincronización automatizada y reduce las entradas manuales con la integración Expensify + Rillet. Alinea dimensiones de codificación de gastos y la sincronización de impuestos con tu configuración de Rillet para una visibilidad financiera más clara.`,
+ onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}) =>
+ `Nuestra integración con Rillet solo está disponible en el plan Controlar, a partir de ${formattedPrice} ${hasTeam2025Pricing ? `por miembro al mes.` : `por miembro activo al mes.`}`,
+ },
[CONST.UPGRADE_FEATURE_INTRO_MAPPING.approvals.id]: {
title: 'Aprobaciones anticipadas',
description: `Si quieres añadir más niveles de aprobación, o simplemente asegurarte de que los gastos más importantes reciben otro vistazo, no hay problema. Las aprobaciones avanzadas ayudan a realizar las comprobaciones adecuadas a cada nivel para mantener los gastos de tu equipo bajo control.`,
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 88fa4ebcae0d..28d8d23e2cb3 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -515,6 +515,7 @@ const translations: TranslationDeepObject = {
editor: 'Éditeur',
restrictions: 'Restrictions',
off: 'Désactivé',
+ apiKey: 'Clé API',
},
socials: {
podcast: 'Suivez-nous sur Podcast',
@@ -5507,6 +5508,16 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST.
}
},
},
+ rillet: {
+ rilletSetup: 'Configuration Rillet',
+ enterCredentials: 'Saisissez votre clé API Rillet',
+ howToFindAPIKey:
+ 'Recherche de votre clé API.
Connectez-vous à Rillet
Accédez à Compte -> Paramètres
Copiez la clé API ci-dessous
',
+ subsidiary: 'Filiale',
+ subsidiarySelectDescription: 'Choisissez la filiale dans Rillet depuis laquelle vous souhaitez importer des données.',
+ noSubsidiariesFound: 'Aucune filiale trouvée',
+ noSubsidiariesFoundDescription: 'Veuillez ajouter une filiale dans Rillet et synchroniser à nouveau la connexion',
+ },
type: {
free: 'Gratuit',
control: 'Contrôle',
@@ -6486,6 +6497,7 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST.
xero: 'Xero',
netsuite: 'NetSuite',
intacct: 'Sage Intacct',
+ rillet: 'Rillet',
sap: 'SAP',
oracle: 'Oracle',
microsoftDynamics: 'Microsoft Dynamics',
@@ -6503,6 +6515,8 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST.
return 'NetSuite';
case CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT:
return 'Sage Intacct';
+ case CONST.POLICY.CONNECTIONS.NAME.RILLET:
+ return 'Rillet';
default: {
return '';
}
@@ -6729,6 +6743,12 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST.
return 'Importation des dimensions';
case 'financialForceMarkAsReimbursed':
return 'Marquage des notes de frais comme remboursées';
+ case 'rilletSyncTitle':
+ return 'Synchronisation des données Rillet';
+ case 'rilletSyncConnection':
+ return 'Initialisation de la connexion à Rillet';
+ case 'rilletSyncImportData':
+ return 'Chargement des données';
default: {
return `Traduction manquante pour l’étape : ${stage}`;
}
@@ -6999,6 +7019,12 @@ ${reportName}`,
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
`Notre intégration Certinia est disponible uniquement avec l’offre Control, à partir de ${formattedPrice} ${hasTeam2025Pricing ? `par membre et par mois.` : `par membre actif et par mois.`}`,
},
+ [CONST.POLICY.CONNECTIONS.NAME.RILLET]: {
+ title: 'Rillet',
+ description: `Profitez de la synchronisation automatisée et réduisez les saisies manuelles grâce à l’intégration Expensify + Rillet. Alignez les dimensions de codage des dépenses et la synchronisation fiscale sur votre configuration Rillet pour une meilleure visibilité financière.`,
+ onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
+ `Notre intégration Rillet est disponible uniquement avec l’offre Control, à partir de ${formattedPrice} ${hasTeam2025Pricing ? `par membre et par mois.` : `par membre actif et par mois.`}`,
+ },
[CONST.UPGRADE_FEATURE_INTRO_MAPPING.approvals.id]: {
title: 'Approbations avancées',
description: `Si vous souhaitez ajouter plusieurs niveaux d’approbation au processus – ou simplement vous assurer que les plus grosses dépenses sont examinées une fois de plus – nous avons ce qu’il vous faut. Les approbations avancées vous aident à mettre en place les bons contrôles à chaque niveau afin de garder les dépenses de votre équipe sous contrôle.`,
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 22f1c24f722a..2d9f270dd16f 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -515,6 +515,7 @@ const translations: TranslationDeepObject = {
editor: 'Editor',
restrictions: 'Restrizioni',
off: 'Disattivato',
+ apiKey: 'Chiave API',
},
socials: {
podcast: 'Seguici su Podcast',
@@ -5480,6 +5481,15 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST.
}
},
},
+ rillet: {
+ rilletSetup: 'Configurazione Rillet',
+ enterCredentials: 'Inserisci la tua chiave API Rillet',
+ howToFindAPIKey: 'Come trovare la tua chiave API.
Accedi a Rillet
Vai su Account -> Impostazioni
Copia la chiave API qui sotto
',
+ subsidiary: 'Filiale',
+ subsidiarySelectDescription: 'Scegli la consociata in Rillet da cui vuoi importare i dati.',
+ noSubsidiariesFound: 'Nessuna consociata trovata',
+ noSubsidiariesFoundDescription: 'Aggiungi una consociata in Rillet e sincronizza di nuovo la connessione',
+ },
type: {
free: 'Gratis',
control: 'Controllo',
@@ -6449,6 +6459,7 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST.
xero: 'Xero',
netsuite: 'NetSuite',
intacct: 'Sage Intacct',
+ rillet: 'Rillet',
sap: 'SAP',
oracle: 'Oracle',
microsoftDynamics: 'Microsoft Dynamics',
@@ -6466,6 +6477,8 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST.
return 'NetSuite';
case CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT:
return 'Sage Intacct';
+ case CONST.POLICY.CONNECTIONS.NAME.RILLET:
+ return 'Rillet';
default: {
return '';
}
@@ -6691,6 +6704,12 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST.
return 'Importazione delle dimensioni';
case 'financialForceMarkAsReimbursed':
return 'Contrassegno dei report come rimborsati';
+ case 'rilletSyncTitle':
+ return 'Sincronizzazione dei dati Rillet';
+ case 'rilletSyncConnection':
+ return 'Inizializzazione della connessione a Rillet';
+ case 'rilletSyncImportData':
+ return 'Caricamento dati';
default: {
return `Traduzione mancante per lo stato: ${stage}`;
}
@@ -6957,6 +6976,12 @@ ${reportName}`,
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
`La nostra integrazione con Certinia è disponibile solo con il piano Control, a partire da ${formattedPrice} ${hasTeam2025Pricing ? `per utente al mese.` : `per membro attivo al mese.`}`,
},
+ [CONST.POLICY.CONNECTIONS.NAME.RILLET]: {
+ title: 'Rillet',
+ description: `Approfitta della sincronizzazione automatizzata e riduci le registrazioni manuali con l’integrazione Expensify + Rillet. Allinea dimensioni di codifica delle spese e sincronizzazione fiscale alla tua configurazione Rillet per una maggiore visibilità finanziaria.`,
+ onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
+ `La nostra integrazione con Rillet è disponibile solo con il piano Control, a partire da ${formattedPrice} ${hasTeam2025Pricing ? `per utente al mese.` : `per membro attivo al mese.`}`,
+ },
[CONST.UPGRADE_FEATURE_INTRO_MAPPING.approvals.id]: {
title: 'Approvazioni avanzate',
description: `Se desideri aggiungere altri livelli di approvazione al processo – o semplicemente assicurarti che le spese più elevate ricevano un ulteriore controllo – ci pensiamo noi. Le approvazioni avanzate ti aiutano a impostare i controlli giusti a ogni livello, così mantieni la spesa del tuo team sotto controllo.`,
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index d9d7f87120e2..18aa5317190a 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -514,6 +514,7 @@ const translations: TranslationDeepObject = {
editor: '編集者',
restrictions: '制限',
off: 'オフ',
+ apiKey: 'API キー',
},
socials: {
podcast: 'ポッドキャストでフォロー',
@@ -5429,6 +5430,16 @@ _詳しい手順については、[ヘルプサイトをご覧ください](${CO
}
},
},
+ rillet: {
+ rilletSetup: 'Rillet のセットアップ',
+ enterCredentials: 'Rillet の API キーを入力してください',
+ howToFindAPIKey:
+ 'API キーの確認方法
',
+ subsidiary: 'Dochteronderneming',
+ subsidiarySelectDescription: 'Kies het dochterbedrijf in Rillet waarvan je gegevens wilt importeren.',
+ noSubsidiariesFound: 'Geen dochterondernemingen gevonden',
+ noSubsidiariesFoundDescription: 'Voeg alsjeblieft een dochteronderneming toe in Rillet en synchroniseer de verbinding opnieuw',
+ },
type: {
free: 'Gratis',
control: 'Beheer',
@@ -6431,6 +6441,7 @@ _Voor meer gedetailleerde instructies, [bezoek onze help-site](${CONST.NETSUITE_
xero: 'Xero',
netsuite: 'NetSuite',
intacct: 'Sage Intacct',
+ rillet: 'Rillet',
sap: 'SAP',
oracle: 'Oracle',
microsoftDynamics: 'Microsoft Dynamics',
@@ -6448,6 +6459,8 @@ _Voor meer gedetailleerde instructies, [bezoek onze help-site](${CONST.NETSUITE_
return 'NetSuite';
case CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT:
return 'Sage Intacct';
+ case CONST.POLICY.CONNECTIONS.NAME.RILLET:
+ return 'Rillet';
default: {
return '';
}
@@ -6673,6 +6686,12 @@ _Voor meer gedetailleerde instructies, [bezoek onze help-site](${CONST.NETSUITE_
return 'Dimensies importeren';
case 'financialForceMarkAsReimbursed':
return 'Rapporten als vergoed markeren';
+ case 'rilletSyncTitle':
+ return 'Rillet-gegevens synchroniseren';
+ case 'rilletSyncConnection':
+ return 'Verbinding met Rillet initialiseren';
+ case 'rilletSyncImportData':
+ return 'Gegevens laden';
default: {
return `Vertaling ontbreekt voor fase: ${stage}`;
}
@@ -6940,6 +6959,12 @@ ${reportName}`,
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
`Onze Certinia-integratie is alleen beschikbaar in het Control-abonnement, vanaf ${formattedPrice} ${hasTeam2025Pricing ? `per lid per maand.` : `per actieve deelnemer per maand.`}`,
},
+ [CONST.POLICY.CONNECTIONS.NAME.RILLET]: {
+ title: 'Rillet',
+ description: `Profiteer van automatische synchronisatie en verminder handmatige invoer met de Expensify + Rillet-integratie. Stem uitgavendimensies en belastingsynchronisatie af op je Rillet-configuratie voor helderder financieel inzicht.`,
+ onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
+ `Onze Rillet-integratie is alleen beschikbaar in het Control-abonnement, vanaf ${formattedPrice} ${hasTeam2025Pricing ? `per lid per maand.` : `per actieve deelnemer per maand.`}`,
+ },
[CONST.UPGRADE_FEATURE_INTRO_MAPPING.approvals.id]: {
title: 'Geavanceerde goedkeuringen',
description: `Als je extra lagen van goedkeuring wilt toevoegen – of gewoon zeker wilt weten dat de hoogste uitgaven een extra controle krijgen – dan ben je bij ons aan het juiste adres. Geavanceerde goedkeuringen helpen je om op elk niveau de juiste controles in te bouwen, zodat je de uitgaven van je team onder controle houdt.`,
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 5f6f2b1f6a82..d2ca7a1664db 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -514,6 +514,7 @@ const translations: TranslationDeepObject = {
editor: 'Edytor',
restrictions: 'Ograniczenia',
off: 'Wyłączone',
+ apiKey: 'Klucz API',
},
socials: {
podcast: 'Śledź nas na Podcast',
@@ -5463,6 +5464,15 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy
}
},
},
+ rillet: {
+ rilletSetup: 'Konfiguracja Rillet',
+ enterCredentials: 'Wpisz swój klucz API Rillet',
+ howToFindAPIKey: 'Znajdowanie klucza API.
Zaloguj się do Rillet
Przejdź do Konto -> Ustawienia
Skopiuj poniższy klucz API
',
+ subsidiary: 'Spółka zależna',
+ subsidiarySelectDescription: 'Wybierz spółkę zależną w Rillet, z której chcesz zaimportować dane.',
+ noSubsidiariesFound: 'Nie znaleziono spółek zależnych',
+ noSubsidiariesFoundDescription: 'Dodaj proszę spółkę zależną w Rillet i ponownie zsynchronizuj połączenie',
+ },
type: {
free: 'Darmowy',
control: 'Sterowanie',
@@ -6423,6 +6433,7 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy
xero: 'Xero',
netsuite: 'NetSuite',
intacct: 'Sage Intacct',
+ rillet: 'Rillet',
sap: 'SAP',
oracle: 'Oracle',
microsoftDynamics: 'Microsoft Dynamics',
@@ -6440,6 +6451,8 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy
return 'NetSuite';
case CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT:
return 'Sage Intacct';
+ case CONST.POLICY.CONNECTIONS.NAME.RILLET:
+ return 'Rillet';
default: {
return '';
}
@@ -6665,6 +6678,12 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy
return 'Importowanie wymiarow';
case 'financialForceMarkAsReimbursed':
return 'Oznaczanie raportow jako zwrocone';
+ case 'rilletSyncTitle':
+ return 'Synchronizowanie danych Rillet';
+ case 'rilletSyncConnection':
+ return 'Inicjowanie połączenia z Rillet';
+ case 'rilletSyncImportData':
+ return 'Wczytywanie danych';
default: {
return `Brak tłumaczenia dla etapu: ${stage}`;
}
@@ -6930,6 +6949,12 @@ ${reportName}`,
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
`Integracja z Certinia jest dostępna tylko w planie Control, zaczynającym się od ${formattedPrice} ${hasTeam2025Pricing ? `za użytkownika miesięcznie.` : `na aktywnego członka miesięcznie.`}`,
},
+ [CONST.POLICY.CONNECTIONS.NAME.RILLET]: {
+ title: 'Rillet',
+ description: `Korzystaj z automatycznej synchronizacji i ogranicz ręczne wprowadzanie danych dzięki integracji Expensify + Rillet. Dopasuj wymiary kategoryzacji wydatków i synchronizację podatków do konfiguracji Rillet, aby uzyskać lepszą widoczność finansową.`,
+ onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
+ `Integracja z Rillet jest dostępna tylko w planie Control, zaczynającym się od ${formattedPrice} ${hasTeam2025Pricing ? `za użytkownika miesięcznie.` : `na aktywnego członka miesięcznie.`}`,
+ },
[CONST.UPGRADE_FEATURE_INTRO_MAPPING.approvals.id]: {
title: 'Zaawansowane zatwierdzanie',
description: `Jeśli chcesz dodać więcej poziomów akceptacji – albo po prostu upewnić się, że największe wydatki zostaną przejrzane przez kolejną osobę – mamy na to rozwiązanie. Zaawansowane zatwierdzanie pomaga wdrożyć odpowiednie mechanizmy kontrolne na każdym poziomie, aby utrzymać wydatki zespołu pod kontrolą.`,
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index f7c967cebe8c..d68a850e6c53 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -513,6 +513,7 @@ const translations: TranslationDeepObject = {
editor: 'Editor',
restrictions: 'Restrições',
off: 'Desligado',
+ apiKey: 'Chave de API',
},
socials: {
podcast: 'Siga-nos no Podcast',
@@ -5460,6 +5461,16 @@ _Para instruções mais detalhadas, [visite nossa central de ajuda](${CONST.NETS
}
},
},
+ rillet: {
+ rilletSetup: 'Configuração do Rillet',
+ enterCredentials: 'Insira sua chave de API Rillet',
+ howToFindAPIKey:
+ 'Encontrando sua chave de API.
Faça login no Rillet
Vá para Conta -> Configurações
Copie a chave de API abaixo
',
+ subsidiary: 'Subsidiária',
+ subsidiarySelectDescription: 'Escolha a subsidiária no Rillet da qual você gostaria de importar dados.',
+ noSubsidiariesFound: 'Nenhuma subsidiária encontrada',
+ noSubsidiariesFoundDescription: 'Adicione uma subsidiária no Rillet e sincronize a conexão novamente',
+ },
type: {
free: 'Grátis',
control: 'Controle',
@@ -6423,6 +6434,7 @@ _Para instruções mais detalhadas, [visite nossa central de ajuda](${CONST.NETS
xero: 'Xero',
netsuite: 'NetSuite',
intacct: 'Sage Intacct',
+ rillet: 'Rillet',
sap: 'SAP',
oracle: 'Oracle',
microsoftDynamics: 'Microsoft Dynamics',
@@ -6440,6 +6452,8 @@ _Para instruções mais detalhadas, [visite nossa central de ajuda](${CONST.NETS
return 'NetSuite';
case CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT:
return 'Sage Intacct';
+ case CONST.POLICY.CONNECTIONS.NAME.RILLET:
+ return 'Rillet';
default: {
return '';
}
@@ -6665,6 +6679,12 @@ _Para instruções mais detalhadas, [visite nossa central de ajuda](${CONST.NETS
return 'Importando dimensoes';
case 'financialForceMarkAsReimbursed':
return 'Marcando relatorios como reembolsados';
+ case 'rilletSyncTitle':
+ return 'Sincronizando dados do Rillet';
+ case 'rilletSyncConnection':
+ return 'Inicializando conexão com Rillet';
+ case 'rilletSyncImportData':
+ return 'Carregando dados';
default: {
return `Tradução ausente para o estágio: ${stage}`;
}
@@ -6931,6 +6951,12 @@ ${reportName}`,
onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
`Nossa integração com a Certinia está disponível apenas no plano Control, a partir de ${formattedPrice} ${hasTeam2025Pricing ? `por membro por mês.` : `por membro ativo por mês.`}`,
},
+ [CONST.POLICY.CONNECTIONS.NAME.RILLET]: {
+ title: 'Rillet',
+ description: `Aproveite a sincronização automática e reduza lançamentos manuais com a integração Expensify + Rillet. Alinhe dimensões de categorização de despesas e a sincronização de impostos à sua configuração Rillet para maior visibilidade financeira.`,
+ onlyAvailableOnPlan: ({formattedPrice, hasTeam2025Pricing}: {formattedPrice: string; hasTeam2025Pricing: boolean}) =>
+ `Nossa integração com a Rillet está disponível apenas no plano Control, a partir de ${formattedPrice} ${hasTeam2025Pricing ? `por membro por mês.` : `por membro ativo por mês.`}`,
+ },
[CONST.UPGRADE_FEATURE_INTRO_MAPPING.approvals.id]: {
title: 'Aprovações Avançadas',
description: `Se você quiser adicionar mais camadas de aprovação ao processo – ou apenas garantir que as maiores despesas recebam uma segunda revisão – nós ajudamos você. As aprovações avançadas ajudam a colocar os controles certos em cada nível, para manter os gastos da sua equipe sob controle.`,
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 4ad48b461da4..64b947b9afaf 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -510,6 +510,7 @@ const translations: TranslationDeepObject = {
editor: '编辑',
restrictions: '限制',
off: '关',
+ apiKey: 'API 密钥',
},
socials: {
podcast: '在播客上关注我们',
@@ -5324,6 +5325,15 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM
}
},
},
+ rillet: {
+ rilletSetup: 'Rillet 设置',
+ enterCredentials: '输入你的 Rillet API 密钥',
+ howToFindAPIKey: '查找您的 API 密钥。