- We found some possible schedules in your current transactions. Select
- the ones you want to create.
-
-
- If you expected a schedule here and don't see it, it might be because
- the payees of the transactions don't match. Make sure you rename payees
- on all transactions for a schedule to be the same payee.
-
-
- You can always do this later
{Platform.isBrowser
- ? ' from the "Find schedules" item in the sidebar menu'
- : ' from the "Tools > Find schedules" menu item'}
- .
+ ? t('schedules.doFromFindSchedules')
+ : t('schedules.doFromToolsFindSchedules')}
@@ -194,14 +191,16 @@ export default function DiscoverSchedules() {
justify="flex-end"
style={{ paddingTop: 20 }}
>
-
+
- Create schedules
+ {t('schedules.createSchedule', { count: selectedInst.items.size })}
diff --git a/packages/desktop-client/src/components/schedules/EditSchedule.js b/packages/desktop-client/src/components/schedules/EditSchedule.js
index 1310c74..4828f89 100644
--- a/packages/desktop-client/src/components/schedules/EditSchedule.js
+++ b/packages/desktop-client/src/components/schedules/EditSchedule.js
@@ -437,7 +437,7 @@ export default function ScheduleDetails() {
>
-
+
- {t('general.payee')}
+ {t('general.payee_one')}{t('general.account_one')}{t('schedules.nextDate')}{t('general.status')}
diff --git a/packages/desktop-client/src/components/util/AmountInput.js b/packages/desktop-client/src/components/util/AmountInput.js
index bdf657e..f9e9820 100644
--- a/packages/desktop-client/src/components/util/AmountInput.js
+++ b/packages/desktop-client/src/components/util/AmountInput.js
@@ -1,4 +1,5 @@
import React, { useState } from 'react';
+import { useTranslation } from 'react-i18next';
import {
integerToCurrency,
@@ -52,6 +53,8 @@ export function BetweenAmountInput({ defaultValue, onChange }) {
let [num1, setNum1] = useState(defaultValue.num1);
let [num2, setNum2] = useState(defaultValue.num2);
+ const { t } = useTranslation();
+
return (
- and
+ {t('general.and')} {
diff --git a/packages/desktop-client/src/locales/en-GB.json b/packages/desktop-client/src/locales/en-GB.json
index 5f5a058..49ee421 100644
--- a/packages/desktop-client/src/locales/en-GB.json
+++ b/packages/desktop-client/src/locales/en-GB.json
@@ -2,58 +2,148 @@
"account": {
"addAccount": "Add account",
"addAccountInFutureFromSidebar": "In the future, you can add accounts from the sidebar.",
+ "allAccounts": "All Accounts",
"allReconciled": "All reconciled!",
+ "budgetedAccount_other": "Budgeted Accounts",
+ "cleared": "Cleared",
"clearedBalance": "Your cleared balance {{cleared}} needs {{diff}} to match your bank's balance of {{balance}}",
+ "clearedTotal": "Cleared Total: {{amount}}",
+ "closeAccount": "Close Account",
+ "closedNamed": "Close: {{name}}",
+ "collapseSplitTransaction_other": "Collapse split transactions",
"doneReconciling": "Done Reconciling",
- "needAccountMessage": "For Actual to be useful, you need to add an account. You can link an account to automatically download transactions, or manage it locally yourself."
+ "enterCurrentBalanceToReconcileAdvice": "Enter the current balance of your bank account that you want to reconcile with:",
+ "expandSplitTransaction_other": "Expand split transactions",
+ "hideRunningBalance": "Hide Running Balance",
+ "linkAccount": "Link account",
+ "needAccountMessage": "For Actual to be useful, you need to add an account. You can link an account to automatically download transactions, or manage it locally yourself.",
+ "offBudgetAccount_other": "Off Budget Accounts",
+ "reconcile": "Reconcile",
+ "reopenAccount": "Reopen account",
+ "selectedBalance": "Selected Balance: {{amount}}",
+ "selectedTransaction_other": "Selected Transactions",
+ "showRunningBalance": "Show Running Balance",
+ "uncategorized": "Uncategorized",
+ "unclearedTotal": "Uncleared Total: {{amount}}",
+ "unlinkAccount": "Unlink Account"
},
"bootstrap": {
+ "changeServerPassword": "Change server password",
+ "passwordCannotBeEmpty": "Password cannot be empty",
+ "passwordsDoNotMatch": "Passwords do not match",
+ "passwordSuccessfullyChanged": "Password Successfully changed",
"setPassword": "Set a password for this server instance",
+ "thisWillChangeThePasswordAdvice": "This will change the password for this server instance. All existing sessions will stay logged in.",
"title": "Bootstrap this Actual instance",
- "tryDemo": "Try Demo"
+ "tryDemo": "Try Demo",
+ "unableToContactTheServer": "Unable to contact the server",
+ "unknownError": "Whoops, an error occurred on our side! We'll try to get it fixed soon."
+ },
+ "budget": {
+ "chooseNumberMonths": "Choose the number of months shown at a time"
},
"general": {
"account_one": "Account",
"account_other": "Accounts",
"add": "Add",
+ "addNew": "Add new",
+ "addSplit": "Add Split",
"amount": "Amount",
+ "amountIinflow": "Amount (inflow)",
+ "amountLeft": "Amount left: {{amount}}",
+ "amountOutflow": "Amount (outflow)",
+ "and": "and",
+ "apply": "Apply",
"approximatelyWithAmount": "Approximately {{amount}}",
+ "balance_one": "Balance",
"cancel": "Cancel",
+ "categorize": "Categorize",
+ "category_one": "Category",
+ "category_other": "Categories",
"complete": "Complete",
"date": "Date",
"delete": "Delete",
- "payee": "Payee",
+ "deposit_one": "Deposit",
+ "doNothing": "Do nothing",
+ "editField": "Edit field",
+ "export": "Export",
+ "exportTransaction_other": "Export Transactions",
+ "financialFile_other": "Financial Files",
+ "import": "Import",
+ "importedPayee": "Imported payee",
+ "invalidDateFormat": "Invalid date format",
+ "month": "Month",
+ "note_other": "Notes",
+ "noTransaction_other": "No transactions",
+ "offBudget": "Off Budget",
+ "payee_one": "Payee",
+ "payee_other": "Payees",
+ "payment_one": "Payment",
"recurring": "Recurring",
"repeats": "Repeats",
"restart": "Restart",
+ "rule_one": "Rule",
"save": "Save",
"schedule": "Schedule",
"schedule_other": "Schedules",
- "status": "Status"
+ "search": "Search",
+ "show": "Show",
+ "split": "Split",
+ "status": "Status",
+ "sync": "Sync",
+ "transfer": "Transfer",
+ "when": "When",
+ "year": "Year"
+ },
+ "rules": {
+ "addAction": "Add action",
+ "applyAction": "Apply action ({{size}})",
+ "ifAllTheseConditionsMatch": "If all these conditions match:",
+ "stageOfRule": "Stage of rule:",
+ "stageOfRuleAdvice": "The stage of a rule allows you to force a specific order. Pre rules always run first, and post rules always run last. Within each stage rules are automatically ordered from least to most specific.",
+ "stages": {
+ "default": "Default",
+ "post": "Post",
+ "pre": "Pre"
+ },
+ "thenApplyTheseActions": "Then apply these actions:",
+ "thisRuleAppliesToTheseTransactions": "This rule applies to these transactions:"
},
"schedules": {
"addNewSchedule": "Add new schedule",
"automaticallyAddTransaction": "Automatically add transaction",
"automaticallyAddTransactionAdvice": "If checked, the schedule will automatically create transactions for you in the specified account",
+ "createSchedule_one": "Create schedule",
+ "createSchedule_other": "Create schedules",
+ "doFromFindSchedules": "You can always do this later from the \"Find schedules\" item in the sidebar menu",
+ "doFromToolsFindSchedules": "You can always do this later from the \"Tools > Find schedules\" menu item",
"editAsRule": "Edit as rule",
+ "expectedSchedulesAdvice": "If you expected a schedule here and don't see it, it might be because the payees of the transactions don't match. Make sure you rename payees on all transactions for a schedule to be the same payee.",
"findMatchingTransactions": "Find matching transactions",
+ "foundSchedules": "Found schedules",
+ "foundSomePossibleSchedulesAdvice": "We found some possible schedules in your current transactions. Select the ones you want to create.",
"isApproximately": "is approximately",
"isBetween": "is between",
"isExactly": "is exactly",
"linkedTransactions": "Linked transactions",
+ "linkSchedule": "Link Schedule",
"linkToSchedule": "Link to schedule",
"nextDate": "Next date",
"none": "(none)",
"noSchedules": "No schedules",
+ "noSchedulesFound": "No schedules found",
"postTransaction": "Post transaction",
"scheduleNamed": "Schedule: {{name}}",
"selectTransactionsToLinkOnSave": "Select transactions to link on save",
"showCompletedSchedules": "Show completed schedules",
"skipNextDate": "Skip next date",
+ "skipScheduledDate": "Skip scheduled date",
"theseTransactionsMatchThisSchedule": "These transactions match this schedule:",
"thisScheduleHasCustomConditionsAndActions": "This schedule has custom conditions and actions",
"unlinkFromSchedule": "Unlink from schedule",
- "upcomingDates": "Upcoming dates"
+ "unlinkSchedule": "Unlink Schedule",
+ "upcomingDates": "Upcoming dates",
+ "view_one": "View schedule"
},
"status": {
"completed": "completed",
@@ -66,5 +156,8 @@
},
"support": {
"anErrorOccuredWhileSaving": "An error occurred while saving. Please contact {{email}} for support."
+ },
+ "transaction": {
+ "accountIsRequired": "Account is a required field"
}
}
diff --git a/packages/desktop-client/src/locales/es-ES.json b/packages/desktop-client/src/locales/es-ES.json
index 0dc3c2b..9691503 100644
--- a/packages/desktop-client/src/locales/es-ES.json
+++ b/packages/desktop-client/src/locales/es-ES.json
@@ -2,58 +2,149 @@
"account": {
"addAccount": "Agregar cuenta",
"addAccountInFutureFromSidebar": "En el futuro puedes agregar cuentas desde la barra lateral.",
+ "allAccounts": "Todas las cuentas",
"allReconciled": "¡Todo conciliado!",
+ "budgetedAccount_other": "Cuentas presupuestadas",
+ "cleared": "Aclarada",
"clearedBalance": "Su saldo compensado {{cleared}} necesita {{diff}} para coincidir con el saldo del banco de {{balance}}",
+ "clearedTotal": "Total aclarado: {{amount}}",
+ "closeAccount": "Cerrar cuenta",
+ "closedNamed": "Cerrada: {{name}}",
+ "collapseSplitTransaction_other": "Colapsar transacciones divididas",
"doneReconciling": "Conciliación finalizada",
- "needAccountMessage": "Para que Actual sea útil, debe agregar una cuenta. Puedes vincular la cuenta para descargar transacciones automáticamente o administrala localmente."
+ "enterCurrentBalanceToReconcileAdvice": "Ingrese el saldo actual de su cuenta que desea conciliar:",
+ "expandSplitTransaction_other": "Expandir transacciones divididas",
+ "hideRunningBalance": "Ocultar saldo actualizado",
+ "linkAccount": "Vincular cuenta",
+ "needAccountMessage": "Para que Actual sea útil, debe agregar una cuenta. Puedes vincular la cuenta para descargar transacciones automáticamente o administrala localmente.",
+ "offBudgetAccount_other": "Cuentas sin presupuestar",
+ "reconcile": "Conciliar",
+ "reopenAccount": "Re abrir cuenta",
+ "selectedBalance": "Balance seleccionado: {{amount}}",
+ "selectedTransaction_other": "Transacciones seleccionadas",
+ "showRunningBalance": "Mostrar saldo actualizado",
+ "uncategorized": "Sin categorizar",
+ "unclearedTotal": "Total sin aclarar: {{amount}}",
+ "unlinkAccount": "Desvincular cuenta"
},
"bootstrap": {
+ "changeServerPassword": "Cambiar contraseña del servidor",
+ "passwordCannotBeEmpty": "La contraseña no puede estar vacía",
+ "passwordsDoNotMatch": "Las contraseñas no coinciden",
+ "passwordSuccessfullyChanged": "La contraseña fue modificada exitosamente",
"setPassword": "Establecer una contraseña para esta instancia de servidor",
+ "thisWillChangeThePasswordAdvice": "Este proceso modificará la contraseña para el servidor. Todas las sesiones existentes permanecerán conectadas.",
"title": "Bootstrap esta instancia de Actual",
- "tryDemo": "Probar Demo"
+ "tryDemo": "Probar Demo",
+ "unableToContactTheServer": "Incapaz de conectarse con el servidor",
+ "unknownError": "¡Vaya, ocurrió un error de nuestro lado! Intentaremos solucionarlo pronto."
+ },
+ "budget": {
+ "chooseNumberMonths": "Seleccióne el numero de meses para mostrar a la vez"
},
"general": {
"account_one": "Cuenta",
"account_other": "Cuentas",
"add": "Agregar",
+ "addNew": "Agregar nuevo",
+ "addSplit": "Agregar división",
"amount": "Monto",
+ "amountIinflow": "Monto (Entrada)",
+ "amountLeft": "Monto restante: {{amount}}",
+ "amountOutflow": "Monto (Salida)",
+ "and": "y",
+ "apply": "Aplicar",
"approximatelyWithAmount": "Aproximadamente {{amount}}",
+ "balance_one": "Balance",
"cancel": "Cancelar",
+ "categorize": "Categorizar",
+ "category_one": "Categoría",
+ "category_other": "Categorías",
"complete": "Completar",
"date": "Fecha",
"delete": "Borrar",
- "payee": "Beneficiario",
+ "deposit_one": "Depósito",
+ "doNothing": "No hacer nada",
+ "editField": "Editar campo",
+ "export": "Exportar",
+ "exportTransaction_other": "Exportar transacciones",
+ "financialFile_other": "Archivos financieros",
+ "import": "Importar",
+ "importedPayee": "Beneficiario importado",
+ "invalidDateFormat": "Formato de fecha inválido",
+ "month": "Mes",
+ "note_other": "Notas",
+ "noTransaction_other": "Sin transacciones",
+ "offBudget": "Fuera de presupuesto",
+ "payee_one": "Beneficiario",
+ "payee_other": "Beneficiarios",
+ "payment_one": "Pago",
"recurring": "Periódico",
"repeats": "Repetir",
"restart": "Reiniciar",
+ "rule_one": "Regla",
"save": "Guardar",
"schedule": "Agenda",
"schedule_other": "Agendas",
- "status": "Estado"
+ "search": "Buscar",
+ "show": "Mostrar",
+ "split": "Dividir",
+ "status": "Estado",
+ "sync": "Sincronizar",
+ "transfer": "Transferencia",
+ "when": "Cuando",
+ "year": "Año"
+ },
+ "rules": {
+ "addAction": "Agregar acción",
+ "applyAction": "Aplicar acción ({{size}})",
+ "ifAllTheseConditionsMatch": "Si todas estas condiciones coinciden:",
+ "stageOfRule": "Etapa de la regla:",
+ "stageOfRuleAdvice": "La etapa de una regla le permite forzar un orden específico. Reglas previas siempre se ejecuta primero y las reglas posteriores siempre se ejecutan al final. Dentro de cada etapa las reglas se ordenan automáticamente de menos a más específicas.",
+ "stages": {
+ "default": "Por defecto",
+ "post": "Posterior",
+ "pre": "Previa"
+ },
+ "thenApplyTheseActions": "Aplíque éstas acciones:",
+ "thisRuleAppliesToTheseTransactions": "Ésta regla aplica a las siguientes transacciones:"
},
"schedules": {
- "addNewSchedule": "Agregar nuevo agenda",
+ "addNewSchedule": "Agregar nueva agenda",
"automaticallyAddTransaction": "Agregar transacción automáticamente",
"automaticallyAddTransactionAdvice": "Si se selecciona, la agenda creará automáticamente una transacción para la cuenta especificada",
+ "createSchedule_one": "Crear agenda",
+ "createSchedule_many": "Crear agendas",
+ "createSchedule_other": "Crear agendas",
+ "doFromFindSchedules": "Puedes hacerlo después desde el ítem de menú \"Buscar agendas\" en la barra lateral",
+ "doFromToolsFindSchedules": "Puedes hacerlo después desde el ítem de menú \"Herramientas > Buscar agendas\"",
"editAsRule": "Editar como regla",
+ "expectedSchedulesAdvice": "Si estabas esperando encontrar alguna agenda y no se visualiza, puede deberse a que los beneficiarios de las transacciones no coincidan. Asegurate de cambiar el nombre los beneficiarios en todas las transacciones de una agenda para que sean el mismo.",
"findMatchingTransactions": "Encontrar transacciones que coincidan",
+ "foundSchedules": "Agendas encontradas",
+ "foundSomePossibleSchedulesAdvice": "Encontramos posibles agendas en la transacción actual. Selecciona las que desea crear.",
"isApproximately": "es aproximadamente",
"isBetween": "está entre",
"isExactly": "es exactamente",
"linkedTransactions": "Transacciones vinculadas",
+ "linkSchedule": "Vincular agenda",
"linkToSchedule": "Vincular a agenda",
"nextDate": "Próxima fecha",
"none": "(ninguno)",
"noSchedules": "Sin agendas",
+ "noSchedulesFound": "No se encontraron agendas",
"postTransaction": "Publicar transacción",
"scheduleNamed": "Agenda: {{name}}",
"selectTransactionsToLinkOnSave": "Seleccionar transacciones para vincular al guardar",
"showCompletedSchedules": "Mostrar agendas completadas",
"skipNextDate": "Saltar próxima fecha",
+ "skipScheduledDate": "Saltar próxima fecha agendada",
"theseTransactionsMatchThisSchedule": "Éstas transacciones coinciden con la agenda",
"thisScheduleHasCustomConditionsAndActions": "Ésta agenda tiene condiciones y acciones personalizadas",
"unlinkFromSchedule": "Desvincular de la agenda",
- "upcomingDates": "Próximas fechas"
+ "unlinkSchedule": "Desvincular agenda",
+ "upcomingDates": "Próximas fechas",
+ "view_one": "Ver agenda"
},
"status": {
"completed": "completo",
@@ -66,5 +157,8 @@
},
"support": {
"anErrorOccuredWhileSaving": "Ocurrió un error al guardar. Por favor, póngase en contacto con {{email}} para obtener asistencia."
+ },
+ "transaction": {
+ "accountIsRequired": "Cuenta es un campo requerido"
}
}