spanish translation (#160)

This commit is contained in:
KraXen72
2025-07-16 22:11:54 +02:00
committed by GitHub
parent 847e36a66c
commit b466331588
6 changed files with 798 additions and 79 deletions
+18
View File
@@ -0,0 +1,18 @@
const { exec } = require('child_process');
console.log('TYPESCRIPT ERROR CHECK');
console.log('=' + '='.repeat(50));
exec('tsc --noEmit', (error, stdout) => {
if (error) {
const output = stdout;
const filteredErrors = output.split('\n').filter(line => line.includes('TxKeyPath'));
if (filteredErrors.length > 0) {
console.log('❌ TypeScript errors containing TxKeyPath found:');
console.log(filteredErrors.join('\n'));
} else {
console.log('✅ No TypeScript errors containing TxKeyPath found.');
}
} else {
console.log('✅ No TypeScript errors found.');
}
});
+65 -74
View File
@@ -1,4 +1,3 @@
const { exec } = require('child_process');
const fs = require('fs');
const path = require('path');
@@ -7,91 +6,83 @@ console.log('=' + '='.repeat(50));
// First, run the translation analysis
try {
// Read settings.json to get language configuration
const settingsPath = path.join(__dirname, '..', 'minibits.inlang', 'settings.json');
const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
// Read settings.json to get language configuration
const settingsPath = path.join(__dirname, '..', 'minibits.inlang', 'settings.json');
const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
const defaultLanguage = settings.sourceLanguageTag;
const allLanguages = settings.languageTags;
const defaultLanguage = settings.sourceLanguageTag;
const allLanguages = settings.languageTags;
console.log(`Default language: ${defaultLanguage}`);
console.log(`All languages: ${allLanguages.join(', ')}`);
console.log('=' + '='.repeat(50));
console.log(`Default language: ${defaultLanguage}`);
console.log(`All languages: ${allLanguages.join(', ')}`);
console.log('=' + '='.repeat(50));
// Load all translation files
const translations = {};
const i18nMessagesPath = path.join(__dirname, '..', 'src', 'i18n_messages');
// Load all translation files
const translations = {};
const i18nMessagesPath = path.join(__dirname, '..', 'src', 'i18n_messages');
allLanguages.forEach(lang => {
const filePath = path.join(i18nMessagesPath, `${lang}.json`);
if (fs.existsSync(filePath)) {
try {
translations[lang] = JSON.parse(fs.readFileSync(filePath, 'utf8'));
} catch (error) {
console.error(`Error reading ${lang}.json:`, error.message);
translations[lang] = {};
}
} else {
console.warn(`Translation file not found: ${lang}.json`);
translations[lang] = {};
}
});
allLanguages.forEach(lang => {
const filePath = path.join(i18nMessagesPath, `${lang}.json`);
if (fs.existsSync(filePath)) {
try {
translations[lang] = JSON.parse(fs.readFileSync(filePath, 'utf8'));
} catch (error) {
console.error(`Error reading ${lang}.json:`, error.message);
translations[lang] = {};
}
} else {
console.warn(`Translation file not found: ${lang}.json`);
translations[lang] = {};
}
});
// Get keys from default language
const defaultKeys = Object.keys(translations[defaultLanguage] || {});
const totalKeys = defaultKeys.length;
// Get keys from default language
const defaultKeys = Object.keys(translations[defaultLanguage] || {});
const totalKeys = defaultKeys.length;
console.log(`Total keys in default language (${defaultLanguage}): ${totalKeys}`);
console.log('=' + '='.repeat(50));
console.log(`Total keys in default language (${defaultLanguage}): ${totalKeys}`);
console.log('=' + '='.repeat(50));
// Check each language
for (const lang of allLanguages) {
if (lang === defaultLanguage) {
console.log(`\n${lang.toUpperCase()} (default language)`);
console.log(`✅ 100% translated (${totalKeys}/${totalKeys} keys)`);
continue;
}
// Check each language
allLanguages.forEach(lang => {
if (lang === defaultLanguage) {
console.log(`\n${lang.toUpperCase()} (default language)`);
console.log(`✅ 100% translated (${totalKeys}/${totalKeys} keys)`);
return;
}
const currentKeys = Object.keys(translations[lang] || {});
const currentTotal = currentKeys.length;
const missingKeys = defaultKeys.filter(key => !translations[lang].hasOwnProperty(key));
const percentcageTranslated = totalKeys > 0 ? Math.round((currentTotal / totalKeys) * 100) : 0;
const currentKeys = Object.keys(translations[lang] || {});
const currentTotal = currentKeys.length;
const missingKeys = defaultKeys.filter(key => !translations[lang].hasOwnProperty(key));
const percentageTranslated = totalKeys > 0 ? Math.round((currentTotal / totalKeys) * 100) : 0;
console.log(`\n${lang.toUpperCase()}`);
console.log(`📊 ${percentcageTranslated}% translated (${currentTotal}/${totalKeys} keys)`);
console.log(`\n${lang.toUpperCase()}`);
console.log(`📊 ${percentageTranslated}% translated (${currentTotal}/${totalKeys} keys)`);
if (missingKeys.length === 0) {
console.log('✅ No missing keys!');
} else {
console.log(`❌ Missing ${missingKeys.length} keys:`);
const maxToShow = 25;
if (missingKeys.length > 0) {
console.log(`❌ Missing ${missingKeys.length} keys:`);
missingKeys.forEach(key => {
console.log(` - ${key}`);
});
} else {
console.log(`✅ No missing keys!`);
}
});
for (const [i, key] of missingKeys.entries()) {
if (i >= maxToShow) break;
console.log(` - ${key}`);
}
console.log('\n' + '=' + '='.repeat(50));
console.log('✅ Translation analysis complete!');
if (missingKeys.length > maxToShow) {
console.log(` ...and ${missingKeys.length - maxToShow} more. (fix these first)`);
}
}
}
console.log('\n' + '=' + '='.repeat(50));
console.log('✅ Translation analysis complete!');
} catch (translationError) {
console.error('❌ Error during translation analysis:', translationError.message);
console.error('❌ Error during translation analysis:', translationError.message);
}
console.log('\n' + '=' + '='.repeat(50));
console.log('TYPESCRIPT ERROR CHECK');
console.log('=' + '='.repeat(50));
// Now run the TypeScript error checking
exec('tsc --noEmit', (error, stdout) => {
if (error) {
const output = stdout;
const filteredErrors = output.split('\n').filter(line => line.includes('TxKeyPath'));
if (filteredErrors.length > 0) {
console.log('❌ TypeScript errors containing TxKeyPath found:');
console.log(filteredErrors.join('\n'));
} else {
console.log('✅ No TypeScript errors containing TxKeyPath found.');
}
} else {
console.log('✅ No TypeScript errors found.');
}
});
// Read settings.json to get language configuration
const settingsPath = path.join(__dirname, '..', 'minibits.inlang', 'settings.json');
const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
+2 -1
View File
@@ -3,7 +3,8 @@
"sourceLanguageTag": "en",
"languageTags": [
"en",
"sk"
"sk",
"es"
],
"modules": [
"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@latest/dist/index.js",
+1 -1
View File
@@ -12,7 +12,7 @@
"lint": "eslint .",
"start": "react-native start",
"test": "jest",
"test:i18n": "node __tests__/missingTranslations.js && node __tests__/incorrectTranslationPlaceholders.js",
"test:i18n": "node __tests__/missingTranslations.js && node __tests__/incorrectTranslationPlaceholders.js && node __tests__/missingTranslationKeys.js",
"adb": "adb devices && adb reverse tcp:9090 tcp:9090 && adb reverse tcp:3000 tcp:3000 && adb reverse tcp:9001 tcp:9001 && adb reverse tcp:8081 tcp:8081",
"adb:unreverse": "adb devices && adb reverse --remove-all",
"adb:inspect": "adb shell input keyevent 82",
+3 -1
View File
@@ -6,6 +6,7 @@ import { getLocales } from "react-native-localize"
// if English isn't your default language, move Translations to the appropriate language file.
import en from "../i18n_messages/en.json"
import sk from "../i18n_messages/sk.json"
import es from "../i18n_messages/es.json"
type Translations = typeof en;
export const i18n = new I18n()
@@ -17,7 +18,8 @@ export const i18n = new I18n()
*/
i18n.translations = {
en, "en-US": en,
sk
sk, "sk-SK": sk,
es, "es-ES": es, "es-MX": es
}
// important!
+707
View File
@@ -0,0 +1,707 @@
{
"addMints": "Agregar mints",
"amountRequested": "Cantidad solicitada",
"amountSend": "Cantidad a enviar",
"amountTopup": "Cantidad de recarga",
"amountWithdraw": "Cantidad a retirar",
"attention": "¡Atención!",
"backupDeletedSuccess": "Tu copia de seguridad de tokens minibits ha sido eliminada. Los nuevos tokens NO se respaldarán.",
"backupInvalidMnemonicError": "Frase semilla corrupta o inválida. Por favor, mueve los fondos y reinstala esta billetera.",
"backupLocalBackup": "Copia de seguridad local",
"backupLocalBackupDescription": "La copia de seguridad local almacena una copia de todo tu ecash en la base de datos local. El ecash nunca se elimina a menos que desactives la copia de seguridad. Ten en cuenta que esta copia de seguridad no está cifrada.",
"backupMissingMnemonicError": "Falta la frase semilla.",
"backupMissingMnemonicOrSeedError": "Falta la frase semilla o la semilla.",
"backupMnemonicDescription": "Esta secuencia de 12 palabras representa tu semilla y te permite recuperar tu saldo de ecash en caso de pérdida del dispositivo. Guárdalas en un lugar seguro.",
"backupMnemonicTitle": "Tu frase semilla",
"backupOptionsTitle": "Copia de seguridad",
"backupRecoveryTool": "Exportar ecash",
"backupRecoveryToolDescription": "Filtra y exporta todo el ecash de la base de datos local agrupado por keysets de casa de moneda.",
"backupRemoteBackup": "Copia de seguridad de semilla",
"backupRemoteBackupDescription": "La frase semilla codifica tu semilla y te permite recuperar tu saldo de ecash en caso de pérdida del dispositivo.",
"backupRemoveSpentCoins": "Eliminar ecash gastado",
"backupRemoveSpentCoinsDescription": "Esta herramienta elimina el ecash gastado del saldo.",
"backupResult": "Las pruebas de ecash gastadas fueron eliminadas de la billetera.",
"backupSeedBackup": "Copia de seguridad de semilla",
"backupSuccess": "Tus tokens minibits fueron respaldados en la base de datos local. Los nuevos tokens se respaldarán automáticamente.",
"backupWalletBackupDescription": "Exporta la copia de seguridad de la billetera para que puedas importarla en un nuevo dispositivo.",
"backupWalletBackupTitle": "Copia de seguridad de la billetera",
"backupWillOverwriteBalanceWarning": "Tu billetera tiene saldo distinto de cero. Si continúas, el ecash existente será eliminado y reemplazado por la copia de seguridad.",
"buttonAdd": "Agregar",
"buttonCheck": "Verificar",
"cashuPaymentRequest_create": "Crear solicitud",
"cashuPaymentRequest_to": "Recibir en",
"cashuPaymentRequestQRTitle": "Solicitud de pago Cashu",
"cashuPaymentRequestTitle": "Casa de moneda para recibir",
"checkAndSync": "Verificar y sincronizar",
"checkAndSyncDesc": "Verifica que el nombre del contacto siga vinculado a la misma clave pública y actualiza la imagen si ha cambiado.",
"commonAdd": "Agregar",
"commonBack": "Atrás",
"commonCancel": "Cancelar",
"commonChange": "Cambiar",
"commonClose": "Cerrar",
"commonComplete": "Completar",
"commonCompleted": "Completado",
"commonConfirm": "Confirmar",
"commonConfirmAlertTitle": "Confirmación",
"commonConfirmCreateInvoice": "Crear factura",
"commonConnectedParam": "%{param} relés conectados",
"commonCopy": "Copiar",
"commonCopyFailParam": "No se pudo copiar %{param}",
"commonCopySuccessParam": "Copiado %{param}",
"commonCreate": "Crear",
"commonCreateCashuPaymentRequest": "Crear solicitud de pago",
"commonDisabled": "Deshabilitado",
"commonEdit": "Editar",
"commonEnabled": "Habilitado",
"commonHide": "Ocultar",
"commonHideMore": "Colapsar",
"commonImport": "Importar",
"commonNoDescPlaceholder": "Sin descripción",
"commonNotCreated": "Aún no creado",
"commonOff": "apagado",
"commonOffline": "Desconectado",
"commonOfflinePretty": "Tu dispositivo está actualmente desconectado",
"commonOk": "OK",
"commonOn": "encendido",
"commonPaste": "Pegar",
"commonPasteEcash": "Pegar ecash",
"commonPasteEcashToken": "Pegar token de ecash",
"commonQr": "Código QR",
"commonReconnect": "Reconectar",
"commonReset": "Restablecer",
"commonResetDefault": "Restablecer a predeterminado",
"commonSats": "sats",
"commonSave": "Guardar",
"commonSaveFailParam": "Error al guardar %{param}",
"commonScan": "Escanear",
"commonSend": "Enviar",
"commonSendAsEcash": "Enviar como ecash",
"commonShare": "Compartir",
"commonShow": "Mostrar",
"commonShowMore": "Mostrar más",
"commonSuccess": "¡Éxito!",
"commonTryAgain": "Intentar de nuevo",
"commonUpdate": "Actualizar",
"confirmBackupRecovery": "¿Realmente quieres recuperar ecash desde la copia de seguridad?",
"confirmMintRemoval": "¿Realmente quieres eliminar %{hostname} - %{shortname} de la billetera?",
"contactHasNoLightningAddrUseEcash": "Este contacto no tiene una dirección Lightning, envía ecash en su lugar.",
"contacts": "Contactos",
"contactsScreen_getInvoice": "Obtener factura",
"contactsScreen_new": "Nuevo",
"contactsScreen_newTitle": "Agregar nuevo contacto",
"contactsScreen_ownName_available": "%{name} está disponible!",
"contactsScreen_ownName_betaWarning": "Tenga en cuenta que esta es una versión beta preliminar del software. Sus datos aún podrían perderse debido a un error o una pérdida inesperada.",
"contactsScreen_ownName_chooseOwnName": "Elige tu propio nombre",
"contactsScreen_ownName_chooseOwnNameFooter": "Utilice letras minúsculas, números y .-_",
"contactsScreen_ownName_ctaPay": "Pagar desde la billetera",
"contactsScreen_ownName_donationSubtext": "Le solicita amablemente una pequeña donación para su nueva dirección de billetera.",
"contactsScreen_ownName_donationSuccess": "¡Gracias! La donación para %{receiver} se ha realizado correctamente.",
"contactsScreen_ownName_illegalChar": "No utilice caracteres . o - al principio o al final del nombre.",
"contactsScreen_ownName_insufficient": "El saldo de tu billetera no es suficiente para pagar este monto de factura, pero aún puedes pagarlo desde otra billetera.",
"contactsScreen_ownName_lightningInvoiceToPayQR": "Factura Lightning a pagar",
"contactsScreen_ownName_payToGetOwnName": "Pague la siguiente factura de Lightning y obtenga el nombre de su billetera %{name} .",
"contactsScreen_ownName_profileExists": "Este nombre de billetera ya está en uso, elija otro.",
"contactsScreen_ownName_tooShort": "Utilice al menos 2 caracteres para su nombre.",
"contactsScreen_privateContacts_bottomModal": "Los contactos privados son identificadores únicos de otras billeteras Minibits. Puedes usarlos para enviar o solicitar ecash y compartir los tuyos de forma segura con otros.",
"contactsScreen_privateContacts_domainExternal": "Utilice otro dominio",
"contactsScreen_privateContacts_domainMinibits": "Utilice el dominio minibits.cash",
"contactsScreen_privateContacts_explainerSubText": "Añade a otros usuarios de Minibits como tus contactos privados. Cada usuario recibe una dirección de billetera @minibits.cash para compartir. Puedes pagar de forma privada a tus contactos en cualquier momento, incluso si no están conectados.",
"contactsScreen_privateContacts_explainerText": "Contactos privados",
"contactsScreen_privateContacts_profileNotFound": "No se encontró el nombre de perfil %{name} . Asegúrese de que el nombre sea correcto.",
"contactsScreen_privateContacts_saveNewFormat": "Ingrese una dirección de billetera en formato nombre@dominio.xyz",
"contactsScreen_privateContacts_selectSendLnURL": "Seleccione el contacto al que desea enviar el pago Lightning.",
"contactsScreen_privateContacts_selectSendPaymentRequest": "Seleccione el contacto al que enviar su solicitud de pago.",
"contactsScreen_privateContacts_selectSendToken": "Seleccione el contacto al que desea enviar su ecash.",
"contactsScreen_privateContacts_switchName": "¿Cambiar el nombre y la imagen de tu billetera?",
"contactsScreen_privateContacts_switchNameSubText": "Consigue un nombre o foto de perfil más atractivo para tu billetera. Elige entre una selección de nombres e imágenes aleatorios o elige tu propio nombre de billetera @minibits.cash.",
"contactsScreen_publicContacts_addNpub": "Añade tu clave npub",
"contactsScreen_publicContacts_npubPasteError": "Copie su clave NPUB antes de pegar",
"contactsScreen_publicContacts_pasteDemoKey": "Pegar clave de demostración",
"contactsScreen_publicContacts_setOwnRelay": "Establece tu propio relé",
"contactsScreen_randomName_selectOneOfUsernames": "Seleccione uno de los nombres de usuario",
"contactsScreen_scan": "Escanear",
"copyAsEncodedTokens": "Copiar como tokens enviables",
"copyContactPublicKey": "Copiar la clave pública del contacto",
"copyMnemonicBackupWorkaround": "Para aplicar una copia de seguridad a sus fondos existentes, envíese todo el saldo a usted mismo. De lo contrario, solo se podrán restaurar los fondos a partir de ese momento.",
"copyProofs": "Pruebas de copia",
"decodedMissingCurrencyUnit": "Falta la unidad monetaria en el token recibido. La billetera asumirá que el monto del token está en bitcoin $ %{unit} . No continúe si no está seguro de que sea correcto.",
"deleteContact": "Eliminar contacto",
"deleteContactDesc": "Elimina este contacto de tu billetera.",
"derivingSeedStatus": "Derivar la semilla, esto lleva un tiempo...",
"developerScreen_devOptions": "Opciones de desarrollador",
"developerScreen_forceDeletePending": "Forzar eliminación pendiente",
"developerScreen_forceDeletePendingDescription": "Elimina el ecash del estado pendiente y elimina todas las transacciones pendientes.",
"developerScreen_forceMovePending": "Movimiento forzado pendiente",
"developerScreen_forceMovePendingDescription": "Mueva el efectivo pendiente nuevamente al saldo gastable.",
"developerScreen_go": "¡Vamos!",
"developerScreen_info": "Acerca de la billetera Minibits",
"developerScreen_logLevel": "Nivel de registro",
"developerScreen_reset": "Restablecimiento de fábrica",
"developerScreen_resetDescription": "Esto eliminará todos los datos locales del almacenamiento y de la base de datos local. Úselo solo durante el desarrollo o las pruebas.",
"developerScreen_resyncTransactions": "Resincronizar transacciones",
"developerScreen_resyncTransactionsDescription": "Actualizar el historial de transacciones recientes de la base de datos.",
"developerScreen_title": "Opciones de desarrollador",
"developerScreen_transactions": "Sincronizar transacciones recientes",
"developerScreen_transactionsDescription": "Hay %{count} transacciones recientes almacenadas en caché en el almacenamiento rápido de la aplicación. Al restablecerlas, se recargarán desde la base de datos de la aplicación. Úselo solo durante el desarrollo o las pruebas.",
"emptyStateComponent": {
"generic": {
"button": "Intentar otra vez",
"content": "No hay nada que mostrar en este momento.",
"heading": "No hay datos disponibles"
}
},
"errorScreen_friendlySubtitle": "Lamentablemente, la aplicación Minibits detectó un error inesperado. Contáctanos en support@minibits.cash o informa sobre el problema en Github.",
"errorScreen_reset": "REINICIAR APLICACIÓN",
"errorScreen_title": "¡Algo salió mal!",
"exportBackup": "Exportar copia de seguridad",
"exportBackupCopyBackup": "Copia de seguridad",
"exportBackupCopyOrphanedProofs": "Copiar pruebas huérfanas",
"exportBackupEcashProofs": "Comprobantes de efectivo electrónico",
"exportBackupMints": "mints",
"exportBackupWalletTitle": "Copia de seguridad de la billetera",
"factoryResetSuccess": "Restablecimiento de fábrica completado, reinicie inmediatamente.",
"factoryResetUserConfirmDesc": "Se eliminarán todos los datos de la aplicación. ¿Seguro que quieres restablecer la configuración de fábrica?",
"importBackupInsertWalletBackup": "Insertar copia de seguridad de la billetera",
"importBackupWalletProfileNotFound": "No se encontró el perfil de billetera vinculado a la semilla proporcionada; se creará uno nuevo para usted.",
"importBackupWalletRecovery": "Recuperación de billetera",
"increaseRecoveryIndexes": "Aumentar los índices de recuperación",
"increaseRecoveryIndexesDesc": "En caso de que encuentre el error \"salidas ya firmadas\", utilice esta herramienta para resolver el problema.",
"invalidRelayUrl": "URL de retransmisión no válida.",
"lightningAddress": "Dirección de Lightning",
"lightningInvoiceSharedWaiting": "Se ha compartido una factura Lightning y está a la espera de ser pagada por el receptor.",
"lightningPayScreen_onPasteEmptyClipboard": "Primero, copia la factura Lightning, la dirección o el código de pago. Luego, pégalo.",
"lightningPayScreen_payHeading": "Pagar",
"loadingPublicInfo": "Cargando información pública",
"localBackupDisabled": "La copia de seguridad local está desactivada",
"localBackupEnabled": "La copia de seguridad local está activada",
"loglevelDebugDesc": "Detalles del registro, configúrelos solo si se realizan pruebas o si lo solicita el soporte.",
"loglevelErrorDesc": "Registra únicamente errores y fallos, sin datos privados.",
"loglevelInfoDesc": "Registra el uso anónimo, sin datos privados.",
"manageMints": "Administrar mints",
"mintInfo_contactsHeading": "Contactos",
"mintInfo_depositMint": "Depósito (Casa de moneda)",
"mintInfo_descriptionHeading": "Descripción",
"mintInfo_emptyValueParam": "No se proporcionó %{param} .",
"mintInfo_keyValueInfoCardHeading": "Más información",
"mintInfo_loadingNamePlaceholder": "Cargando nombre...",
"mintInfo_loadingUnitsPlaceholder": "Cargando unidades...",
"mintInfo_mintMeltHeading": "Límites",
"mintInfo_mintUrlHeading": "URL de casa de moneda",
"mintInfo_motd": "Aviso importante",
"mintInfo_nutsHeading": "NUT compatibles",
"mintInfo_withdrawMelt": "Retirar (Fundir)",
"mintInfoHeading": "Información de la casa de moneda",
"mintSettingsUpdated": "Configuración de casa de moneda actualizada",
"mintsScreen_addMint": "Añadir casa de moneda",
"mintsScreen_addMintMinibits": "Añadir casa de moneda Minibits",
"mintsScreen_addMintUrl": "Agregar URL de casa de moneda",
"mintsScreen_blockMint": "Bloque de recepción de esta casa de moneda",
"mintsScreen_copy": "Copiar URL de casa de moneda",
"mintsScreen_invalidUrl": "Esta no es una URL válida.",
"mintsScreen_keepAtLeastOneMint": "Es necesario conservar al menos 1 casa de moneda.",
"mintsScreen_mintAdded": "Se ha añadido la casa de moneda.",
"mintsScreen_mintBlocked": "La casa de moneda ha sido bloqueada. La billetera no recibirá ecash de esta casa de moneda.",
"mintsScreen_mintExists": "Esta casa de moneda ya existe",
"mintsScreen_mintInfo": "Página de información de la Casa de la Moneda",
"mintsScreen_mintRemoved": "La casa de moneda ha sido eliminada",
"mintsScreen_mintUnblocked": "La casa de moneda ha sido desbloqueada. Ya puedes recibir ecash de esta casa de moneda.",
"mintsScreen_mintUrl": "URL de casa de moneda",
"mintsScreen_mintUrlHint": "Proporcione la URL de una casa de moneda confiable.",
"mintsScreen_refreshMintSettings": "Actualizar la configuración de casa de moneda",
"mintsScreen_removeMint": "Quitar la casa de moneda",
"mintsScreen_rename": "Cambiar el nombre de casa de moneda",
"mintsScreen_setColor": "Cambiar el color del icono de la casa de moneda",
"mintsScreen_share": "Compartir URL de casa de moneda",
"mintsScreen_unblockMint": "Desbloquear la recepción de esta casa de moneda",
"mintsScreen_updateMintUrl": "Actualizar la URL de casa de moneda",
"missingEcashTokenToReceiveError": "Falta el token ecash para recibir.",
"missingLNURLParamsError": "Parámetros LNURL faltantes.",
"missingMintsForProofsUserMessage": "Agregue todas las mints pertenecientes a sus pruebas a la billetera y vuelva a intentarlo.",
"missingMintUnitRouteParamsError": "Falta unidad de menta en los parámetros de ruta.",
"mnemonicPhrasePlaceholder": "Frase semilla...",
"newMint": "Nueva casa de moneda",
"nextInterval": "Próximo intervalo",
"noEcashRecovered": "No se recuperó ecash",
"noSpentEcashFound": "No se encontró ecash gastado en su billetera.",
"nostr_copyPubKey": "Copiar la clave pública de Nostr",
"nostr_enterAddress": "Ingrese su dirección Nostr",
"nostr_enterAddressDesc": "Minibits utiliza la dirección Nostr (nip05) como contacto compartible para enviar y recibir ecash.",
"nostr_invalidAddressFormat": "Dirección NOSTR no válida, verifique que siga el formato nombre@dominio.com",
"nostr_lastStandDialog_cancel": "Cancelar",
"nostr_lastStandDialog_complete": "El cambio de perfil se ha completado.",
"nostr_lastStandDialog_confirm": "Aplicar cambio",
"nostr_lastStandDialog_desc": "El uso de su propia dirección Nostr deshabilitará las funciones de dirección Lightning exclusivas de la dirección minibits.cash.",
"nostr_lastStandDialog_readyDesc": "Es necesario reiniciar la billetera para aplicar este cambio.",
"nostr_lastStandDialog_readyTitle": "El cambio de perfil está listo.",
"nostr_lastStandDialog_title": "Considere antes de cambiar",
"nostr_minibitsNameKeyReuseError": "Los nombres y claves %{domain} no se pueden usar con múltiples billeteras.",
"nostr_missingRelaysError": "Relés Nostr faltantes.",
"nostr_pasteError": "Primero copie su dirección NOSTR y luego péguela.",
"nostr_profileRelayMismatchedIdentifierError": "El perfil del relé no coincide con el identificador nip05 proporcionado",
"nostr_relaysTitle": "Relés Nostr",
"nostr_removePub": "Eliminar su clave pública",
"nostr_removePubSubText": "Elimina tu clave npub y deja de cargar contactos públicos.",
"nostr_setPublicKey": "Establezca su clave pública",
"nostr_setPublicKeySubText": "Agregue o cambie su clave pública de red social NOSTR (npub).",
"nostr_setRelay": "Establecer relé",
"nostr_setRelaySubText": "Agregue o cambie su propio relé si su perfil y sus seguidores no están alojados en los relés predeterminados.",
"nostr_tip": "Dale propina a las personas que sigues",
"nostr_tipSubText": "Agrega tu clave pública de red social Nostr (npub) y da propinas o donas a tus personas y proyectos favoritos directamente desde la billetera minibits.",
"nostr_useOwnProfile_desc": "Importa tu propia dirección y claves Nostr. Tu billetera dejará de comunicarse con los servidores de direcciones Nostr y LNURL de minibits.cash, lo que desactivará las funciones de direcciones Lightning para recibir zaps y pagos. ¡Solo para usuarios de e-cash expertos!",
"nostr_useOwnProfile_title": "Utilice su propio perfil de Nostr",
"nsecEnterPrivateKey": "Ingrese su clave privada",
"nsecEnterPrivateKeyDesc": "Minibits necesita tu clave privada en formato nsec para descifrar los mensajes con pagos entrantes. Tu clave se almacenará en la bóveda de claves segura de tu dispositivo.",
"nsecMissingProfileError": "Falta perfil para actualizar",
"nsecPasteError": "Primero copie su clave nsec y luego péguela.",
"nsecPrivatePublicKeyMismatchError": "La clave privada proporcionada no coincide con su nueva clave pública de perfil.",
"numberOfBackedupProofs": "Número de pruebas almacenadas",
"nwcScreen_addConnection": "Agregar conexión",
"nwcScreen_appNamePlaceholder": "Mi solicitud de NWC",
"nwcScreen_connectionExists": "La conexión con este nombre ya existe.",
"nwcScreen_createNwcConnection": "Crear una conexión NWC",
"nwcScreen_dailyLimit": "Límite diario %{limit} %{currency}",
"nwcScreen_dailyLimitHint": "Establecer un límite diario máximo de gasto",
"nwcScreen_dailyLimitPlaceholder": "Introduzca el límite diario en sats",
"nwcScreen_limitMustBePositive": "El límite diario debe ser superior a cero",
"nwcScreen_missingNameOrLimit": "Insertar nombre o límite diario",
"nwcScreen_nameConnectionHint": "Nombra tu conexión según la aplicación con la que la usarás",
"nwcScreen_nwcDescription": "NWC te permite controlar tu billetera desde otra aplicación, como tu app favorita de Nostr. Permite el acceso solo a las apps de confianza. Tu dispositivo debe tener activadas las notificaciones push y estar conectado.",
"nwcScreen_nwcSummary": "NWC te permite controlar tu billetera desde otra aplicación, como tu aplicación Nostr favorita.",
"nwcScreen_pushNotificationWarning": "Su dispositivo no puede recibir mensajes push en segundo plano. Esto es esencial para recibir comandos NWC. Como alternativa, Minibits se suscribió a los relés Nostr para recibir los comandos. Sin embargo, esto dejará de funcionar cuando la aplicación esté en segundo plano o desactivada.",
"nwcScreen_remainingLimit": "Restante %{remaining} %{currency}",
"nwcScreen_removeConnection": "Eliminar conexión",
"nwcScreen_satCurrency": "sats",
"nwcScreen_shareDescription": "Escanea o copia esta cadena de conexión a otra aplicación para que se conecte a tu billetera. Úsala solo con aplicaciones de confianza.",
"nwcScreen_shareNwcConnection": "Compartir la conexión NWC",
"onDeviceInfo": "Información en el dispositivo",
"pasteEcashTokenDesc": "Token Ecash que deseas recibir.",
"payCommon_amountToPayLabel": "Cantidad a pagar",
"payCommon_amountZeroOrNegative": "La cantidad debe ser un número positivo.",
"payCommon_completed": "Pago completado",
"payCommon_failed": "Pago fallido",
"payCommon_insufficientFunds": "No hay fondos suficientes para enviar esta cantidad.",
"payCommon_isPending": "El pago está pendiente",
"payCommon_maximumPay": "El monto máximo a pagar es %{amount} %{currency} .",
"payCommon_minimumPay": "El monto mínimo de pago es %{amount} %{currency} .",
"payCommon_minimumWithdraw": "El monto mínimo de retiro es %{amount} %{currency} .",
"payCommon_pay": "Pagar",
"payCommon_payFrom": "Pagar desde",
"payCommon_payFromWallet": "Pagar desde la billetera",
"payCommon_payMe": "Pagame",
"payCommon_payNow": "Pagar ahora",
"payCommon_payToAddress": "Pagar a esta dirección",
"payCommon_payWithLightning": "Pagar con Lightning",
"payCommon_receive": "Recibir",
"payCommon_receiveEcash": "Recibir ecash",
"payCommon_receiveInPerson": "Recibir en persona",
"payCommon_receiveOffline": "Recibir sin conexión",
"payCommon_requestPayment": "Solicitar pago",
"payCommon_send": "Enviar",
"payCommon_withdraw": "Retirar",
"payerMemo": "Memo para el pagador",
"payWithLightningDesc": "Ingrese o pegue la dirección Lightning, la factura o el código de pago LNURL al que desea pagar.",
"pictureRetrieveFail": "No se pudieron recuperar las imágenes del servidor, inténtelo nuevamente más tarde.",
"placeholderNpub": "npub...",
"placeholderRelay": "wss://...",
"privacyScreen_logger": "Habilitar el registro",
"privacyScreen_loggerDescription": "Registra información de errores anónima para identificar y corregir errores de la billetera durante las pruebas beta. Desactívelo para mayor privacidad.",
"privacyScreen_title": "Privacidad",
"privacyScreen_torDaemon": "Utilice la red Tor",
"privacyScreen_torDaemonDescription": "Permitir conexiones con mints a través de direcciones .onion de Tor.",
"privacyScreen_torStatus": "Estado de Tor",
"privateKey": "Clave privada",
"privateNotePlaceholder": "Tu nota privada",
"profileMissingAddressError": "Dirección faltante",
"profileMissingNostrAddress": "Este perfil no tiene una dirección Nostr.",
"profileOnboarding_desc": "Tu dirección de billetera minibits.cash te permite recibir ecash cifrado a través de Nostr. Además, funciona como tu dirección Lightning, lo que te permite recibir pagos desde cualquier billetera Lightning o zaps en la red social Nostr.",
"profileOnboarding_minibitsDesc": "Comparte la dirección de tu billetera para recibir ecash cifrado a través de Nostr. Esta también funciona como tu dirección Lightning, lo que te permite recibir pagos desde cualquier billetera Lightning o zaps en la red social Nostr.",
"profileOnboarding_minibitsTitle": "La dirección de tu billetera Minibits",
"profileOnboarding_ownAddrDesc": "Estás usando tu propia dirección de Nostr para enviar y recibir ecash. Ten en cuenta que esta configuración no te permite recibir zaps de Nostr ni pagos Lightning en esta dirección.",
"profileOnboarding_ownAddrTitle": "Tu propia dirección de billetera",
"profileOnboarding_title": "Crear una dirección de billetera",
"profilePublicKeyMismatchError": "El perfil de la clave pública de los relés es diferente al de tu billetera. Restablece este perfil en la configuración de privacidad e impórtalo de nuevo con las nuevas claves.",
"profileScreen_batchReceive": "Recepción por lotes",
"profileScreen_batchReceiveDesc": "Recomendado para quienes acumulan zaps con frecuencia. Si recibes más pagos o zaps en tu dirección Lightning, agrúpalos en uno solo.",
"profileScreen_changeAvatar": "Cambiar imagen",
"profileScreen_changeAvatarSubtext": "Seleccione una de las imágenes generadas aleatoriamente.",
"profileScreen_changeWalletaddress": "Cambiar la dirección de la billetera",
"profileScreen_changeWalletaddressSubtext": "Cambia la dirección única de tu billetera. Selecciona una generada aleatoriamente o elige la tuya.",
"profileToRecoverDesc": "Esta es la dirección de la billetera vinculada a tu semilla. Si continúas, tu perfil de billetera se restablecerá a la semilla y dirección mencionadas anteriormente.",
"pushNotifications": "Notificaciones push",
"qr_fail": "No se pudo mostrar el código QR, use la opción para copiar o enviar el token a la dirección de billetera del beneficiario.",
"qrCodeAnimateButton": "Animar",
"qrCodeNewFormatButton": "Nuevo",
"qrCodeOldFormatButton": "Viejo",
"qrCodeStaticButton": "Estático",
"readyToDonateMore": "¿Listo para donar más?",
"receiverMemo": "Memo para el receptor",
"receiveScreen_lockedToUnknownPK": "No se puede desbloquear",
"receiveScreen_lockedToWalletPK": "Bloqueado con tus llaves",
"receiveScreen_memoFromSender": "Nota del remitente",
"receiveScreen_newMintsAdded_one": "Se ha añadido %{count} casa de moneda a tu billetera.",
"receiveScreen_newMintsAdded_other": "Se han añadido %{count} mints a tu billetera",
"receiveScreen_pasteoReceiveDescription": "Pegue el token ecash para recibirlo en su billetera.",
"receiveScreen_pasteToReceive": "Pasta",
"receiveScreen_received": "Cantidad recibida",
"receiveScreen_scanToReceive": "Escanee o pegue para recibir",
"receiveScreen_scanToReceiveDescription": "Escanee o pegue el token ecash o el enlace de retiro LNURL para recibirlo en su billetera.",
"receiveScreen_scanWithdrawalLink": "Enlace de retiro de escaneo",
"receiveScreen_sharePaymentRequest": "Enviar solicitud de pago",
"receiveScreen_sharePaymentRequestDescription": "Envía una solicitud de pago a uno de tus contactos, para que el pagador pueda abonarte el importe exacto.",
"receiveScreen_showOrShareInvoice": "Compartir factura de rayos",
"receiveScreen_showOrShareInvoiceDescription": "Presentar o compartir factura relámpago por el monto que desees recibir.",
"receiveScreen_status": "Estado",
"receiveScreen_title": "Recibir",
"receiveScreen_toReceive": "Cantidad a recibir",
"recoverToWallet": "Recuperar a la billetera",
"recovery_addressLinkedToSeed": "Esta es la dirección de billetera vinculada a la semilla proporcionada.",
"recovery_completeCTA": "Recuperación completa",
"recovery_completed": "Recuperación completada",
"recovery_completing": "Completando la recuperación...",
"recovery_doNotLoseEcashDesc": "Tu frase semilla actual de billetera no se modificará. ¡Guárdala en un lugar seguro!",
"recovery_doNotLoseEcashTitle": "¡No pierdas tu dinero!",
"recovery_failed": "Recuperación fallida",
"recovery_findAddressCTA": "Encuentra la dirección de la billetera",
"recovery_foundAddrParam": "Se encontró %{addr}",
"recovery_foundPendingProofsAmount": "Se encontraron %{amount} pruebas pendientes...",
"recovery_foundProofsAmount": "Se encontraron %{amount} pruebas...",
"recovery_intervalParam": "Intervalo de recuperación %{startIndex} - %{endIndex} · ",
"recovery_keysetID": "ID del conjunto de claves %{id} ( %{unit} )",
"recovery_missingMnemonicSeedProfileError": "Falta frase semilla o semilla o perfil a recuperar.",
"recovery_mnemonicCollision": "La frase semilla existe",
"recovery_mnemonicCollisionDesc": "Tu billetera ya tiene otra frase semilla en su almacenamiento seguro. El proceso de recuperación solo funciona con billeteras recién instaladas para evitar la pérdida de tus fondos.",
"recovery_noKeysetSelected": "Seleccione el conjunto de claves.",
"recovery_noMintSelected": "Por favor seleccione la casa de moneda.",
"recovery_noWalletForSeedError": "No se pudo encontrar la dirección de billetera vinculada a su semilla en el servidor.",
"recovery_ownKeysImportAgain": "Usaste la dirección de billetera %{addr} con tus propias claves, impórtala nuevamente.",
"recovery_recoverAddress": "Recuperar dirección",
"recovery_recoveredResult": "%{formattedCurrency} %{code} se recuperaron en su billetera.",
"recovery_recoveringAddress": "Recuperando dirección de billetera...",
"recovery_restoringFromParam": "Restaurando desde %{hostname} ...",
"recovery_resultErrors": "La recuperación terminó con errores.",
"recovery_resultExpired": "No se ha encontrado nada en este intervalo de recuperación.",
"recovery_resultSpent": "La buena noticia es que se encontró el Ecash ya gastado. Continúe con el siguiente intervalo de recuperación.",
"recovery_seedFromCurrentDeviceError": "No se pueden utilizar semillas de este dispositivo.",
"recovery_selectAnotherKeyset": " · Seleccione otro",
"recovery_selectKeyset": "Seleccione el conjunto de claves que se utilizará para la recuperación",
"recovery_selectMintFrom": "Seleccione casa de moneda para recuperarse.",
"recovery_setManually": "Configurar manualmente",
"recovery_spentProofsAmount": "%{amount} pruebas ya se gastaron...",
"recovery_startIndexDesc": "Úselo para aumentar el índice inicial del intervalo de recuperación, por ejemplo, en caso de recuperación repetida. Debe saber en qué índice completó su recuperación anterior o perderá tiempo para recuperarse.",
"recovery_starting": "Comenzando la recuperación...",
"recovery_success": "¡Éxito de recuperación!",
"recoveryConfirmButton": "Confirmar",
"recoveryEnterMeltQuote": "Introduzca la cotización de fusión",
"recoveryEnterMintQuote": "Ingrese la cotización de casa de moneda",
"recoveryExperimentalTools": "Herramientas experimentales",
"recoveryFromMints": "Recuperación de las mints",
"recoveryFromMintsDesc": "Identifique las mints para recuperar su ecash y agréguelas a la lista.",
"recoveryIncreaseButton": "Aumentar",
"recoveryIndexesIncSuccess": "Los índices de recuperación aumentaron en %{indCount}",
"recoveryInsertMnemonic": "Insertar frase semilla",
"recoveryInsertMnemonicDesc": "Pega o reescribe una frase de 12 palabras para recuperar el saldo de tu cuenta de eCash y la dirección de tu billetera en este dispositivo. Separa las palabras con espacios en blanco.",
"recoveryInsertMnemonicDescAddrOnly": "Pega o reescribe una frase de 12 palabras para recuperar la dirección de tu billetera en este dispositivo. Separa las palabras con espacios en blanco.",
"recoveryInsertMnemonicDescImportBackup": "Pega o reescribe una frase de 12 palabras para recuperar la dirección de tu billetera en este dispositivo. Separa las palabras con espacios en blanco.",
"recoveryInvalidMeltQuote": "Cotización de fusión no válida",
"recoveryInvalidMintQuote": "Cotización de casa de moneda no válida",
"recoveryInvalidMnemonicError": "Frase inicial no válida. Proporcione una secuencia de 12 palabras separadas por espacios.",
"recoveryMeltQuoteDesc": "Intente nuevamente recibir el ecash no gastado de un pago Lightning completado.",
"recoveryMeltQuoteTitle": "Recuperar el cambio de cotización de fusión",
"recoveryMeltSuccessMessage": "Se recuperó exitosamente %{amount} sats de la cotización de fusión proporcionada.",
"recoveryMintEcashButton": "Crear ecash",
"recoveryMintQuoteDesc": "Intente nuevamente generar ecash a partir de una cotización de casa de moneda ya pagada.",
"recoveryMintQuoteTitle": "Recuperar cotización de casa de moneda",
"recoveryMintSuccessMessage": "Se acuñaron exitosamente %{amount} sats a partir de la cotización de acuñación proporcionada.",
"recoveryOpenSettingsButton": "Abrir configuración",
"recoveryOptionsFromBackup": "Recuperarse de la copia de seguridad",
"recoveryOptionsFromBackupDescription": "Importa la copia de seguridad exportada desde otra billetera Minibits. Una opción sencilla si cambias de dispositivo.",
"recoveryOptionsFromSeed": "Recuperarse de la semilla",
"recoveryOptionsFromSeedDescription": "Usa una frase inicial de 12 palabras para recrear tu dinero electrónico perdido con la ayuda de mentas. Úsala en caso de pérdida del dispositivo.",
"recoveryOptionsTitle": "Opciones de recuperación",
"recoveryPermissionNeededDesc": "Minibits necesita un permiso para mostrar notificaciones mientras se ejecuta esta tarea.",
"recoveryPermissionNeededTitle": "Se necesita permiso",
"recoveryRecoverChangeButton": "Recuperar el cambio",
"recoveryRemoveButton": "Eliminar",
"recoveryScreen_confirm": "Confirmar",
"recoveryScreen_experimentalTools": "Herramientas experimentales",
"recoveryScreen_increase": "Aumentar",
"recoveryScreen_recoverMeltQuoteChange": "Recuperar el cambio de cotización de fusión",
"recoveryScreen_recoverMeltQuoteChangeDesc": "Intente nuevamente recibir el ecash no gastado de un pago Lightning completado.",
"recoveryScreen_recoverMintQuote": "Recuperar cotización de casa de moneda",
"recoveryScreen_recoverMintQuoteDesc": "Intente nuevamente generar ecash a partir de una cotización de casa de moneda ya pagada.",
"recoveryScreen_remove": "Eliminar",
"recoveryScreen_selectMintToRecoverFrom": "Seleccione menta para recuperarse",
"recoveryScreen_start": "Comenzar",
"recoverySelectMintTitle": "Seleccione menta para recuperarse",
"recoveryStartButton": "Comenzar",
"recoverySuccessTitle": "¡Éxito!",
"relayExists": "El relé ya existe",
"relays": "Relés",
"relaysSetYourRelay": "Establece tu propio relé",
"relayurlPasteError": "Copie su clave URL de retransmisión antes de pegarla",
"removeRelay": "Quitar relé",
"removingMintLostBalanceWarning": "Tu billetera tiene saldo distinto de cero con esta moneda. Si la eliminas, perderás tu ecash.",
"resetAborted": "Reinicio abortado, no hay transacciones en la base de datos local.",
"resetCompletedDetail": "Restablecimiento completado. Se cargaron %{transCount} transacciones recientes desde la base de datos.",
"resetOwnProfile": "Restablecer mi propio perfil",
"resetOwnProfileDesc": "Deje de usar su propia dirección NOSTR y vuelva a crear el perfil de billetera Minibits.",
"saveContactPrivate": "Guardar como contacto privado",
"saveContactPrivateDesc": "Guarda %{nip05} en tus contactos privados para que puedas pagar más rápido",
"scanReceiveExtractFail": "No se pudo extraer el token ecash ni el enlace de retiro de LNURL para recibirlo.",
"scanScreen_onPasteEmptyClipboard": "Primero, copia el token de ecash, la factura, el enlace LNURL o la dirección Lightning. Luego, pégalo.",
"securityScreen_biometricAuth": "Autenticación biométrica",
"securityScreen_biometricAuthDescription": "Requerir autenticación biométrica para que Minibits comience.",
"securityScreen_biometry": "Autenticación biométrica",
"securityScreen_biometryAvailable": "Ahora se requiere autenticación biométrica para iniciar Minibits.",
"securityScreen_biometryNone": "No ha configurado la autenticación biométrica o su dispositivo no la admite.",
"securityScreenTitle": "Seguridad",
"seedRecoveryMints": "Mentas",
"seedRecoveryScreenTitle": "Recuperación de billetera",
"seedRecoveryStep2": "2",
"sendCreateToken": "Crear token",
"sendLock": "Cerrar",
"sendLockEcash": "Bloquear efectivo",
"sendLockEcashDesc": "Bloquea el token de ecash con uno de tus contactos o con una clave pública. Solo el receptor podrá desbloquearlo.",
"sendLocked": "Bloqueado",
"sendLockFor": "Bloquear para",
"sendOfflineExactDenoms": "Solo puedes enviar denominaciones exactas de efectivo mientras estás desconectado.",
"sendScreen_memo": "Memo para el destinatario",
"sendScreen_pasteToSend": "Pasta",
"sendScreen_pasteToSendDescription": "Pegue la factura de Lightning desde el portapapeles para pagarla desde su billetera.",
"sendScreen_scanToPay": "Escanear para pagar",
"sendScreen_scanToPayDescription": "Escanee la factura Lightning, el código de pago LNURL o la dirección Lightning para pagar.",
"sendScreen_sendToContact": "Enviar a contacto",
"sendScreen_sendToContactDescription": "Envía tu ecash a uno de tus contactos almacenados en tu lista de contactos.",
"sendScreen_showOrShareToken": "Compartir ecash",
"sendScreen_showOrShareTokenDescription": "Presenta o comparte un token ecash por el monto que desees enviar.",
"sendScreen_title": "Enviar",
"sendSelectEcashToSend": "Seleccione el ecash que desea enviar",
"sendToContact": "Enviar a contacto",
"setStartIndex": "Establecer índice de inicio",
"settingsScreen_backup": "Respaldo",
"settingsScreen_backupRecovery": "Copia de seguridad y recuperación",
"settingsScreen_currencyNone": "Ninguno",
"settingsScreen_devOptions": "Opciones de desarrollador",
"settingsScreen_doNotLoadRates": "No cargar tipos de cambio",
"settingsScreen_exchangeCurrency": "Conversión de saldo",
"settingsScreen_go": "¡Vamos!",
"settingsScreen_mintsCount": {
"one": "%{count} mint",
"other": "%{count} mentas"
},
"settingsScreen_nwcSubtext": {
"one": "%{count} aplicación permitida",
"other": "%{count} aplicaciones permitidas"
},
"settingsScreen_nwcTitle": "Conexión de billetera Nostr",
"settingsScreen_preferredUnit": "Unidad preferida",
"settingsScreen_privacy": "Privacidad",
"settingsScreen_recovery": "Recuperación",
"settingsScreen_relaysCount": {
"one": "Relé %{count}",
"other": "%{count} relés"
},
"settingsScreen_restartTheme": "Reinicie la billetera para aplicar el nuevo tema.",
"settingsScreen_security": "Seguridad",
"settingsScreen_theme": "Tema",
"settingsScreen_title": "Ajustes",
"settingsScreen_update": "Administrador de actualizaciones",
"settingsScreen_updateAvailable": "1 actualización",
"share_cancelled": "Compartir cancelado",
"share_contactAddress": "Compartir dirección de contacto",
"shareWalletAddress": "Compartir dirección de billetera",
"shareWalletNpub": "Clave pública de billetera compartida (NPUB)",
"shareWalletPubkey": "Compartir clave pública de billetera (HEX)",
"showErrors": "Mostrar errores",
"showOnboarding": "Mostrar la incorporación nuevamente",
"showOnboardingDesc": "Revise las pantallas de incorporación nuevamente la próxima vez que reinicie Minibits.",
"startRecovery": "Iniciar recuperación",
"syncCompleted": "Sincronización completada.",
"syncOwnProfile": "Sincronizar su propio perfil",
"syncOwnProfileDesc": "Sincroniza tu nombre y foto de perfil con información actualizada de los relés Nostr.",
"tabNavigator_contactsLabel": "Contactos",
"tabNavigator_settingsLabel": "Ajustes",
"tabNavigator_transactionsLabel": "Actas",
"tabNavigator_walletLabel": "Billetera",
"tokenReceiveScreen_onPasteEmptyClipboard": "Primero copie el token ecash y luego péguelo.",
"tokenReceiveScreen_scan": "Escanear",
"tokenReceiveScreen_topupWithLightning": "Recarga con Lightning",
"topup_failed": "Recarga fallida",
"topup_invoiceCreatedDescParam": "El saldo de casa de moneda seleccionado para recargar es %{mintUrl}",
"topup_invoiceCreatedParam": "Factura para %{amount} %{code} creada",
"topup_mint": "Recarga de menta",
"topup_missingMintAddFirst": "Por favor, añade la menta primero.",
"topup_missingMintAddFirstDesc": "No hay ninguna moneda conectada a su billetera que sea elegible para recibir ecash.",
"topup_nostrDMreceived": "nostr: %{npub} te envió una factura Lightning por %{amount} %{currency} desde la billetera Minibits!",
"topup_relayMissingSentEvent": "Relay no pudo confirmar que el mensaje haya sido publicado.",
"topup_sendRequest": "Enviar solicitud",
"topup_sendToContact": "Enviar a contacto",
"topup_sendToNip": "Enviar a %{sendTonip05}",
"topup_to": "Recarga a",
"topup_withdraw": "Retirar",
"topup_withdrawalAvailable": "El retiro está disponible",
"topup_withdrawAvailableDesc": "Hasta %{amount} %{code} están disponibles para retirar",
"topup_withLightning": "Recarga con Lightning",
"topupScreen_done": "Hecho",
"topupScreen_invoiceToPay": "Factura a pagar",
"tranDetailScreen_addTags": "Agregar etiquetas",
"tranDetailScreen_addYourNote": "Añade tu nota",
"tranDetailScreen_amount": "Cantidad",
"tranDetailScreen_auditTrail": "Registro de auditoría",
"tranDetailScreen_auditTrailDesc": "Registro detallado de su transacción",
"tranDetailScreen_backedUpEcash": "Copia de seguridad de efectivo",
"tranDetailScreen_balanceAfter": "Saldo después de esta transacción",
"tranDetailScreen_claim": "Afirmar",
"tranDetailScreen_createdAt": "Creado en",
"tranDetailScreen_eventUrl": "Nota zapeada",
"tranDetailScreen_expiresAt": "Caduca a las",
"tranDetailScreen_fee": "Tarifa",
"tranDetailScreen_id": "ID de transacción",
"tranDetailScreen_inputs": "Entradas",
"tranDetailScreen_invoice": "Factura relámpago a pagar",
"tranDetailScreen_invoiceExpired": "Factura vencida",
"tranDetailScreen_invoiceNotPaid": "Factura no pagada",
"tranDetailScreen_invoiceToPay": "Factura a pagar",
"tranDetailScreen_isOffline": "Canjear en línea",
"tranDetailScreen_lightningFee": "Tarifa de la red Lightning",
"tranDetailScreen_memoFromInvoice": "Nota de factura",
"tranDetailScreen_memoFromSender": "Nota del remitente",
"tranDetailScreen_modalSuccess": "¡Éxito!",
"tranDetailScreen_outputs": "Salidas",
"tranDetailScreen_paymentId": "ID de pago",
"tranDetailScreen_pendingToken": "Token pendiente",
"tranDetailScreen_proof": "Comprobante de pago",
"tranDetailScreen_receiveOfflineComplete": "Canjear en la billetera",
"tranDetailScreen_retryToComplete": "Intente completar nuevamente",
"tranDetailScreen_retryToReceive": "Intente recibir nuevamente",
"tranDetailScreen_revert": "Revertir",
"tranDetailScreen_sentFrom": "Enviado desde",
"tranDetailScreen_sentTo": "Enviado a",
"tranDetailScreen_status": "Estado",
"tranDetailScreen_successRetrieveEcashAfterRetry": "El eCash se recibió correctamente tras reintentarlo. Se creó una nueva transacción.",
"tranDetailScreen_tokenTracking": "Seguimiento de tokens",
"tranDetailScreen_tokenTrackingDesc": "Tokens de ecash registrados para fines de depuración",
"tranDetailScreen_topupError": "Error de recarga",
"tranDetailScreen_topupTo": "Recarga a",
"tranDetailScreen_trasferredTo": "Pagado a",
"tranDetailScreen_type": "Tipo",
"tranHistory_deleteErrored": "Eliminar transacciones con errores",
"tranHistory_deleteErroredDesc": "Esto eliminará %{count} transacciones con errores",
"tranHistory_deleteExpired": "Eliminar caducado",
"tranHistory_deleteExpiredDesc": "Esto eliminará %{count} transacciones vencidas",
"tranHistory_deleteReverted": "Eliminación revertida",
"tranHistory_deleteRevertedDesc": "Esto eliminará %{count} transacciones revertidas",
"tranHistory_listIsComplete": "La lista está completa",
"tranHistory_noTransToShow": "No hay transacciones para mostrar.",
"tranHistory_pendingParam": "%{param} transacciones pendientes",
"tranHistory_showingPaginationPending": "Mostrando %{amount} de %{total} pendientes",
"tranHistory_showingPaginationTotal": "Mostrando %{amount} de %{total} total",
"tranHistory_viewMore": "Ver más",
"tranHistoryScreen_title": "Historia",
"transactionCommon_fee": "Tarifa",
"transactionCommon_feePaid": "Tarifa pagada",
"transactionCommon_from": "De %{sender}",
"transactionCommon_paidFrom": "Pagado desde",
"transactionCommon_paidTo": "Pagado a %{receiver}",
"transactionCommon_payNow": "Pagar ahora",
"transactionCommon_payTo": "Pagar a %{receiver}",
"transactionCommon_receivedFrom": "Recibido de %{sender}",
"transactionCommon_receivedTo": "Recibido a",
"transactionCommon_receiveFailed": "Recepción fallida",
"transactionCommon_redeemOnline": "Canjear en línea",
"transactionCommon_reverted": "Transacción revertida",
"transactionCommon_sentTo": "Enviado a %{receiver}",
"transactionCommon_status_blocked": "Obstruido",
"transactionCommon_status_completed": "Terminado",
"transactionCommon_status_completedFee": "Completado %{fee}",
"transactionCommon_status_draft": "Borrador",
"transactionCommon_status_error": "Error",
"transactionCommon_status_expired": "Venció",
"transactionCommon_status_pending": "Pendiente",
"transactionCommon_status_prepared": "Preparado",
"transactionCommon_status_recovered": "Recuperado",
"transactionCommon_status_reverted": "Revertido",
"transactionCommon_status_spent": "Gastado",
"transactionCommon_status_unspent": "No gastado",
"transactionCommon_tapToRedeem": "Toca para canjear",
"transactionCommon_unknown": "Transacción desconocida",
"transactionCommon_youPaid": "Tú pagaste",
"transactionCommon_youReceived": "Usted recibió",
"transactionCommon_youSent": "Tú enviaste",
"transferScreen_donationSuccessMessage": "La donación para %{donationForName} se ha realizado correctamente y la dirección de tu billetera se ha actualizado. ¡Gracias!",
"transferScreen_insufficientFunds": "No hay suficiente saldo en %{currency} para pagar el importe de la factura y las tarifas previstas: %{amount} %{currency}",
"transferScreen_LUD18unsupported": "Minibits aún no admite la introducción de datos de identidad del pagador (LUD18).",
"transferScreen_noMintWithBalance": "No existe ninguna casa de moneda con saldo %{unit} desde el cual se pueda realizar el pago.",
"transferScreen_requestInvoice": "Continuar",
"transferScreen_selectMintFrom": "Seleccione el saldo de menta desde el que desea transferir",
"unspentOnlyRecoverable": "Sólo se pueden recuperar las pruebas no utilizadas.",
"updateModal_desc": "Las actualizaciones ofrecen nuevas funcionalidades y correcciones de errores importantes. Consulta los detalles en el Administrador de actualizaciones.",
"updateModal_title": "Ya está disponible la nueva versión de Minibits",
"updateScreen_apkOnGithub": "APK en Github",
"updateScreen_couldNotRetrieveUpdate": "No se pudo recuperar la información de actualización",
"updateScreen_defaultUpdateDesc": "Mejoras de UX y rendimiento",
"updateScreen_downloading": "Descargando actualización...",
"updateScreen_gotoPlayStore": "Visita Play Store",
"updateScreen_installing": "Instalando actualización...",
"updateScreen_nativeUpdateAvailableDesc": "Hay una nueva versión nativa de Minibits Wallet en Google Play Store.",
"updateScreen_updateAvailable": "La actualización está disponible",
"updateScreen_updateAvailableDesc": "Hay una nueva actualización inalámbrica de Minibits Wallet lista para descargar e instalar.",
"updateScreen_updateInProgress": "La actualización está en progreso...",
"updateScreen_updateManagerTitle": "Administrador de actualizaciones",
"updateScreen_updateNew": "¿Qué hay de nuevo?",
"updateScreen_updateNotAvailable": "Nada que actualizar",
"updateScreen_updateNotAvailableDesc": "Bueno, estás ejecutando la última versión de la aplicación.",
"updateScreen_updateNow": "Actualizar y reiniciar",
"updateScreen_updateSize": "Tamaño de descarga",
"userErrorMissingLightningData": "Falta factura de Lightning, código de pago o dirección.",
"wallerScreen_mintButton": "Menta",
"walletAddressRecovery": "Recuperación de la dirección de la billetera",
"walletAddressRecoveryDesc": "Usa tu frase inicial de otro dispositivo para obtener la dirección de tu billetera original en este. Esto no recuperará saldos.",
"walletNameScreen_ownNameTab": "Nombre propio",
"walletNameScreen_randomNameTab": "Nombre aleatorio",
"walletScreen_addFirstMint": "Añade tu primera menta",
"walletScreen_andOtherMints": "y %{count} otros",
"walletScreen_andOtherMints_plural": "y %{count} otros",
"walletScreen_feeBadge_final": "+ tarifa final %{fee} %{code}",
"walletScreen_feeBadge_upto": "+ tarifa hasta %{fee} %{code}",
"walletScreen_mintExists": "Esta menta ya existe",
"walletScreen_pay": "Pagar",
"walletScreen_paymentSentSuccess": "La solicitud de pago ha sido enviada exitosamente.",
"walletScreen_payWithLightning": "Pagar con Lightning",
"walletScreen_payWithLightningDesc": "Pagar factura o a una dirección Lightning",
"walletScreen_receiveEcash": "Recibir Ecash",
"walletScreen_receiveEcashDesc": "Pegar o escanear el token de ecash",
"walletScreen_sendEcash": "Enviar dinero electrónico",
"walletScreen_sendEcashDesc": "Comparte ecash o envíaselo a uno de tus contactos",
"walletScreen_spentToday": "Pasé hoy",
"walletScreen_startByFunding": "Comience por financiar su billetera",
"walletScreen_topup": "Recarga",
"walletScreen_topupWithLightning": "Recarga con Lightning",
"walletScreen_topupWithLightningDesc": "Crea una factura Lightning para recargar tu saldo",
"warning": "Advertencia",
"welcomeScreen_creatingKeys": "Creando claves de billetera...",
"welcomeScreen_creatingProfile": "Creando perfil de billetera...",
"welcomeScreen_generatingWalletSeedStatusMessage": "Creando la semilla de la billetera, esto lleva un tiempo...",
"welcomeScreen_lastPageConfirmButton": "Entendido, llévame a la billetera.",
"welcomeScreen_lastPageRecoverLostWalletButton": "Recuperar billetera perdida",
"welcomeScreen_offlineWarning": "Asegúrese de estar en línea para configurar la nueva billetera.",
"welcomeScreen_page1_bullet1": "Minibits sigue el protocolo Cashu, donde las monedas respaldan el efectivo con Bitcoin.",
"welcomeScreen_page1_bullet2": "Ecash se emite o se convierte nuevamente a Bitcoin instantáneamente a través de pagos Lightning.",
"welcomeScreen_page1_bullet3": "Los tokens de Ecash se almacenan en el dispositivo; las mints no mantienen registros ni saldos de billetera.",
"welcomeScreen_page1_final": "Sin Watson, no hay blockchain.",
"welcomeScreen_page1_heading": "Bienvenido",
"welcomeScreen_page1_intro": "Minibits es una billetera de ecash y Lightning centrada en la facilidad de uso y la seguridad. Ecash es un token firmado digitalmente emitido por custodios conocidos como mints.",
"welcomeScreen_page2_bullet1": "Minibits proporciona una dirección Lightning gratuita que también permite transferencias de dinero en efectivo instantáneas a través de Nostr.",
"welcomeScreen_page2_bullet2": "Soporte de primera clase para enviar y recibir zaps en Nostr, incluido Nostr Wallet Connect.",
"welcomeScreen_page2_bullet3": "Notificaciones push encriptadas en tiempo real y soporte para efectivo emitido en monedas distintas a Bitcoin.",
"welcomeScreen_page2_final": "Minibits es un software gratuito de código abierto. Encuéntranos en GitHub para consultar nuestra hoja de ruta y nuestras contribuciones.",
"welcomeScreen_page2_heading": "¿Por qué Minibits?",
"welcomeScreen_page2_intro": "Minibits tiene como objetivo explorar cómo el ecash puede ayudar a las personas a usar Bitcoin al ofrecer una incorporación sin fricciones, tarifas bajas, facilidad de uso y una sólida privacidad.",
"welcomeScreen_page3_bullet1": "Las mints son de custodia por diseño. Administre las suyas o úselas solo para investigación y pruebas.",
"welcomeScreen_page3_bullet2": "El ecash se almacena en tu dispositivo. Si lo pierdes, se perderá a menos que hagas una copia de seguridad de tu frase inicial.",
"welcomeScreen_page3_bullet3": "Minibits ofrece su propia menta para realizar pruebas con pequeñas cantidades. Opera con el máximo esfuerzo, sin garantías.",
"welcomeScreen_page3_final": "¡Ahora, movamos algo de dinero!",
"welcomeScreen_page3_go": "¡Vamos!",
"welcomeScreen_page3_heading": "No lo olvides",
"welcomeScreen_page3_intro": "Tanto el protocolo Cashu como la billetera Minibits son experimentales. Al usarlos, acepta riesgos conocidos y desconocidos."
}