Makes the coarse area human, per feedback that a typed code is jargon. - CoarseLocationProvider interface + geolocator-backed impl (BSD-3): low accuracy only, returns null on any denial/error (degrades quietly). Behind an interface so it's fakeable and the plugin stays at the composition root. - Config sheet: a 'Use my approximate location' button (shown only when a provider is wired) fills the area from the device position, reduced to a 5-char geohash via commons_core's Geohash — a precise fix never leaves the device. 'Couldn't get your location' on failure. - Threaded via TaneApp(location); main wires GeolocatorCoarseLocation. - Platform: ACCESS_COARSE_LOCATION (Android) + NSLocationWhenInUseUsageDescription (iOS), both scoped to the coarse-area use. - i18n en/es/pt. Widget test fills the area from a fake location. 8 tests green.
358 lines
14 KiB
JSON
358 lines
14 KiB
JSON
{
|
|
"app": {
|
|
"title": "Tanemaki"
|
|
},
|
|
"common": {
|
|
"save": "Guardar",
|
|
"cancel": "Cancelar",
|
|
"delete": "Eliminar",
|
|
"edit": "Editar",
|
|
"type": "Tipo",
|
|
"comingSoon": "Pronto"
|
|
},
|
|
"home": {
|
|
"tagline": "Comparte y cultiva semillas locales",
|
|
"openMarket": "Mercado abierto",
|
|
"openMarketSubtitle": "Explora e intercambia",
|
|
"yourInventory": "Tu inventario",
|
|
"yourInventorySubtitle": "Gestiona tus semillas"
|
|
},
|
|
"photo": {
|
|
"camera": "Hacer una foto",
|
|
"gallery": "Elegir de la galería",
|
|
"setAsCover": "Poner de portada",
|
|
"isCover": "Foto de portada",
|
|
"deleteConfirm": "¿Borrar esta foto?"
|
|
},
|
|
"menu": {
|
|
"tagline": "tu banco de semillas",
|
|
"inventory": "Inventario",
|
|
"market": "Mercado",
|
|
"profile": "Tu perfil",
|
|
"chat": "Chat",
|
|
"wishlist": "Lista de deseos",
|
|
"following": "Siguiendo",
|
|
"settings": "Ajustes"
|
|
},
|
|
"settings": {
|
|
"language": "Idioma",
|
|
"systemLanguage": "Idioma del sistema",
|
|
"langEs": "Español",
|
|
"langEn": "English",
|
|
"langPt": "Português",
|
|
"about": "Acerca de",
|
|
"aboutText": "Inventario local y cifrado para semillas tradicionales. AGPL-3.0.",
|
|
"aboutOpen": "Acerca de Tanemaki"
|
|
},
|
|
"backup": {
|
|
"title": "Copia de seguridad",
|
|
"exportJson": "Guardar una copia de seguridad",
|
|
"exportJsonSubtitle": "Una copia completa para guardar a salvo, restaurar luego o pasar a otro dispositivo",
|
|
"importJson": "Restaurar una copia",
|
|
"importJsonSubtitle": "Recupera una copia guardada — no se duplica nada",
|
|
"exportCsv": "Exportar a una hoja de cálculo",
|
|
"exportCsvSubtitle": "Una lista sencilla para Excel o LibreOffice — sin fotos",
|
|
"importCsv": "Importar una lista",
|
|
"importCsvSubtitle": "Añade entradas desde una hoja de cálculo",
|
|
"importConfirmTitle": "¿Restaurar una copia?",
|
|
"importConfirmBody": "Las entradas se fusionan con tu inventario; si una entrada existe en ambos lados, gana la versión más reciente. No se duplica nada.",
|
|
"importCsvConfirmTitle": "¿Importar una lista?",
|
|
"importCsvConfirmBody": "Cada fila se añade como una entrada nueva. No fusiona ni reemplaza, así que importar el mismo fichero dos veces lo añade dos veces.",
|
|
"importAction": "Importar",
|
|
"exportSaved": "Copia guardada",
|
|
"cancelled": "Cancelado",
|
|
"importDone": "Importado: {added} nuevas, {updated} actualizadas",
|
|
"importCsvDone": "Añadidas {count} entradas",
|
|
"importFailed": "Este fichero no se pudo leer como una copia de Tanemaki",
|
|
"failed": "Algo ha salido mal",
|
|
"recoveryTitle": "Tu código de recuperación",
|
|
"recoverySubtitle": "Imprímelo y guárdalo bien: abre tus copias en otro dispositivo",
|
|
"recoveryIntro": "Este código abre tus copias guardadas y recupera tu banco en cualquier dispositivo. Guarda dos copias en papel en sitios seguros, como tu mejor semilla. Quien lo tenga puede leer tus copias, así que no lo compartas con nadie.",
|
|
"recoveryCopy": "Copiar",
|
|
"recoverySave": "Guardar la hoja",
|
|
"recoverySheetTitle": "Tanemaki — tu hoja de recuperación",
|
|
"recoveryPromptTitle": "Escribe tu código de recuperación",
|
|
"recoveryPromptBody": "Esta copia se guardó con otro código. Escribe el código de tu hoja de recuperación para abrirla.",
|
|
"recoveryWrongCode": "Ese código no abre esta copia"
|
|
},
|
|
"about": {
|
|
"title": "Acerca de",
|
|
"kanji": "種まき",
|
|
"tagline": "Una app local-first y descentralizada para gestionar y compartir semillas y plantones tradicionales.",
|
|
"intro": "Tanemaki (種まき, «sembrar / esparcir semillas» en japonés; nombre corto Tane, 種 «semilla») ayuda a personas y colectivos a llevar un inventario amable de su banco de semillas, decidir qué ofrecen y compartirlo localmente — sin un intermediario central que pueda controlarlo, censurarlo o ser multado por ello. El objetivo es a la vez práctico y político: apoyar las variedades tradicionales de semillas y plantar cara al monopolio semillero.",
|
|
"heritage": "El nombre honra las viejas tradiciones japonesas de ayuda mutua en torno al arroz — yui (trabajo comunitario compartido) y tanomoshi (fondos de reciprocidad) — que inspiraron el papel Plantare, la «moneda comunitaria para el intercambio de semillas» (BAH-Semillero, 2009, CC-BY-SA). Tanemaki es el Plantare digital.",
|
|
"version": "Versión",
|
|
"license": "Licencia",
|
|
"licenseValue": "AGPL-3.0",
|
|
"website": "Sitio web",
|
|
"openSourceLicenses": "Licencias de código abierto",
|
|
"openSourceLicensesSubtitle": "Bibliotecas de terceros y sus licencias",
|
|
"copyright": "© {years} Asociación Comunes, bajo AGPLv3"
|
|
},
|
|
"intro": {
|
|
"skip": "Saltar",
|
|
"next": "Siguiente",
|
|
"start": "Empezar",
|
|
"menuEntry": "Cómo funciona Tanemaki",
|
|
"slides": {
|
|
"welcome": {
|
|
"title": "La semilla que te trajo hasta aquí",
|
|
"body": "Cada semilla tradicional es una carta escrita por miles de generaciones, que pasó de mano en mano. Somos lo que somos gracias a ese intercambio."
|
|
},
|
|
"inventory": {
|
|
"title": "Tu banco de semillas, en el bolsillo",
|
|
"body": "Apunta qué tienes, de qué año, cuánto y de dónde vino, con el nombre que tú usas. Una foto y un nombre bastan para empezar."
|
|
},
|
|
"privacy": {
|
|
"title": "Tuyo y solo tuyo",
|
|
"body": "Sin cuenta, sin internet, sin rastreadores. Tus datos viven cifrados en tu dispositivo y solo se comparte lo que tú decidas."
|
|
},
|
|
"share": {
|
|
"title": "Compartir, como siempre se hizo",
|
|
"body": "Ofrece lo que te sobra —regalo, trueque o venta— y que alguien cerca lo encuentre. Solo se muestra la distancia aproximada, nunca tu dirección; el trato lo cierras en persona."
|
|
},
|
|
"plantare": {
|
|
"title": "Sembrar es multiplicar",
|
|
"body": "Con el Plantare, quien recibe promete devolver semilla más adelante. Y como para devolverla hay que cultivarla, cada préstamo multiplica el común."
|
|
}
|
|
}
|
|
},
|
|
"inventory": {
|
|
"title": "Inventario",
|
|
"searchHint": "Buscar semillas",
|
|
"empty": "Aún no hay semillas. Toca + para añadir la primera.",
|
|
"noMatches": "Ninguna semilla coincide con los filtros.",
|
|
"clearFilters": "Quitar filtros",
|
|
"uncategorized": "Sin categoría",
|
|
"needsReproductionFilter": "Por reproducir"
|
|
},
|
|
"draft": {
|
|
"capture": "Capturar fotos",
|
|
"captured": "{n} capturadas por catalogar",
|
|
"triageTitle": "Por catalogar",
|
|
"triageCount": "{n} por catalogar",
|
|
"untitled": "Sin nombre",
|
|
"nameField": "Nombra esta semilla",
|
|
"nameHint": "¿Qué es?",
|
|
"suggestFromPhoto": "Sugerir nombre de la foto",
|
|
"discard": "Descartar"
|
|
},
|
|
"quickAdd": {
|
|
"title": "Añadir una semilla",
|
|
"labelField": "Nombre",
|
|
"labelRequired": "Ponle un nombre",
|
|
"addPhoto": "Añadir foto",
|
|
"quantity": "¿Cuánta?",
|
|
"more": "Añadir más…",
|
|
"save": "Guardar",
|
|
"saveAndAddAnother": "Guardar y añadir otra",
|
|
"addedCount": "{n} añadidas",
|
|
"cancel": "Cancelar"
|
|
},
|
|
"detail": {
|
|
"notFound": "Esta semilla ya no está aquí.",
|
|
"lots": "Lotes",
|
|
"noLots": "Aún no hay lotes.",
|
|
"names": "También conocida como",
|
|
"addName": "Añadir nombre",
|
|
"links": "Enlaces",
|
|
"addLink": "Añadir enlace",
|
|
"linkUrl": "URL",
|
|
"linkTitle": "Título (opcional)",
|
|
"reference": "Saber más",
|
|
"refGbif": "GBIF",
|
|
"refWikipedia": "Wikipedia",
|
|
"refWikispecies": "Wikispecies",
|
|
"notes": "Notas",
|
|
"addLot": "Añadir lote",
|
|
"editLot": "Editar lote",
|
|
"deleteConfirm": "¿Eliminar esta semilla?",
|
|
"year": "Año {year}",
|
|
"noYear": "Año desconocido"
|
|
},
|
|
"germination": {
|
|
"title": "Germinación",
|
|
"add": "Añadir prueba",
|
|
"sampleSize": "Muestra",
|
|
"germinated": "Germinadas",
|
|
"none": "Aún no hay pruebas de germinación.",
|
|
"result": "{percent}%"
|
|
},
|
|
"viability": {
|
|
"expiringSoon": "Úsala o multiplícala esta temporada",
|
|
"expiringSoonYears": "Úsala o multiplícala esta temporada · dura ~{years} años",
|
|
"expired": "Supera su viabilidad típica — a multiplicar",
|
|
"expiredYears": "Supera su viabilidad típica (~{years} años) — a multiplicar"
|
|
},
|
|
"editVariety": {
|
|
"title": "Editar semilla",
|
|
"name": "Nombre",
|
|
"category": "Categoría",
|
|
"notes": "Notas",
|
|
"species": "Especie (del catálogo)",
|
|
"speciesHint": "Buscar una especie…",
|
|
"speciesSuggested": "Sugerida por el nombre",
|
|
"organic": "Ecológica",
|
|
"organicHint": "Cultivada de forma ecológica (eco)"
|
|
},
|
|
"addLot": {
|
|
"title": "Añadir lote",
|
|
"year": "Fecha de cosecha",
|
|
"quantity": "¿Cuánta?",
|
|
"amount": "Cantidad"
|
|
},
|
|
"harvest": {
|
|
"pickTitle": "Seleccionar mes / año",
|
|
"anyMonth": "Cualquier mes",
|
|
"noDate": "Indicar fecha de cosecha",
|
|
"monthNames": [
|
|
"enero", "febrero", "marzo", "abril", "mayo", "junio",
|
|
"julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"
|
|
]
|
|
},
|
|
"lotType": {
|
|
"seed": "Semillas",
|
|
"plant": "Planta",
|
|
"seedling": "Plantón",
|
|
"tree": "Árbol / arbusto",
|
|
"bulb": "Bulbo / tubérculo",
|
|
"cutting": "Esqueje"
|
|
},
|
|
"presentation": {
|
|
"title": "Envase",
|
|
"none": "Sin especificar",
|
|
"pot": "Maceta",
|
|
"tray": "Bandeja",
|
|
"plug": "Alvéolo",
|
|
"bareRoot": "Raíz desnuda",
|
|
"rootBall": "Cepellón"
|
|
},
|
|
"provenance": {
|
|
"section": "De dónde viene",
|
|
"seedsFrom": "Semillas de",
|
|
"seedsFromHint": "Quién las cultivó o las dio",
|
|
"place": "Lugar",
|
|
"placeHint": "De dónde vienen (con provincia)",
|
|
"addSeedsFrom": "Semillas de",
|
|
"addPlace": "Lugar"
|
|
},
|
|
"abundance": {
|
|
"add": "Cuánta tengo",
|
|
"title": "Cuánta tengo",
|
|
"none": "Sin indicar",
|
|
"plentyToShare": "De sobra para compartir",
|
|
"enoughToShare": "Bastante, para compartir con moderación",
|
|
"enoughForMe": "Suficiente para mí",
|
|
"runningLow": "Queda poca"
|
|
},
|
|
"share": {
|
|
"add": "¿La compartes?",
|
|
"title": "¿La compartes?",
|
|
"nudge": "Tienes de sobra: podrías compartir un poco.",
|
|
"private": "Solo para mí",
|
|
"gift": "Para regalar",
|
|
"exchange": "Para intercambiar",
|
|
"sell": "En venta",
|
|
"filterChip": "Comparto",
|
|
"printCatalog": "Imprimir lo que comparto",
|
|
"catalogTitle": "Lo que comparto",
|
|
"catalogSaved": "Catálogo guardado",
|
|
"cancelled": "Cancelado"
|
|
},
|
|
"cropCalendar": {
|
|
"add": "Calendario de cultivo",
|
|
"title": "Calendario de cultivo",
|
|
"sow": "Siembra",
|
|
"transplant": "Trasplante",
|
|
"flowering": "Floración",
|
|
"fruiting": "Fructificación",
|
|
"seedHarvest": "Cosecha de semilla",
|
|
"unset": "—"
|
|
},
|
|
"needsReproduction": {
|
|
"label": "Reproducir esta temporada",
|
|
"hint": "Cultívala antes de que se acabe la semilla",
|
|
"badge": "Por reproducir"
|
|
},
|
|
"preservation": {
|
|
"add": "Cómo se conserva",
|
|
"title": "Cómo se conserva",
|
|
"none": "Sin especificar",
|
|
"jarWithDesiccant": "Bote con desecante",
|
|
"glassJar": "Bote de cristal",
|
|
"paperEnvelope": "Sobre de papel",
|
|
"paperBag": "Bolsa de papel",
|
|
"plasticBag": "Bolsa de plástico"
|
|
},
|
|
"conditionCheck": {
|
|
"advanced": "Conservación y detalles del banco",
|
|
"title": "Revisiones de conservación",
|
|
"add": "Añadir revisión",
|
|
"containers": "Botes / recipientes",
|
|
"desiccant": "Desecante",
|
|
"none": "Aún no hay revisiones.",
|
|
"summary": "{count} bote(s) · {state}"
|
|
},
|
|
"desiccant": {
|
|
"none": "No tiene",
|
|
"add": "Se pone",
|
|
"replace": "Se cambia",
|
|
"dry": "Azul — seco",
|
|
"fresh": "Recién puesto"
|
|
},
|
|
"unit": {
|
|
"aFew": "unas pocas",
|
|
"some": "algunas",
|
|
"plenty": "muchas",
|
|
"pinch": "una pizca",
|
|
"handful": { "singular": "puñado", "plural": "puñados" },
|
|
"teaspoon": { "singular": "cucharadita", "plural": "cucharaditas" },
|
|
"spoon": { "singular": "cuchara", "plural": "cucharas" },
|
|
"cup": { "singular": "taza", "plural": "tazas" },
|
|
"jar": { "singular": "bote", "plural": "botes" },
|
|
"sack": { "singular": "saco", "plural": "sacos" },
|
|
"packet": { "singular": "sobre", "plural": "sobres" },
|
|
"cob": { "singular": "mazorca", "plural": "mazorcas" },
|
|
"pod": { "singular": "vaina", "plural": "vainas" },
|
|
"ear": { "singular": "espiga", "plural": "espigas" },
|
|
"head": { "singular": "cabezuela", "plural": "cabezuelas" },
|
|
"fruit": { "singular": "fruto", "plural": "frutos" },
|
|
"bulb": { "singular": "bulbo", "plural": "bulbos" },
|
|
"tuber": { "singular": "tubérculo", "plural": "tubérculos" },
|
|
"seedHead": { "singular": "cabeza de semillas", "plural": "cabezas de semillas" },
|
|
"bunch": { "singular": "manojo", "plural": "manojos" },
|
|
"plant": { "singular": "planta", "plural": "plantas" },
|
|
"pot": { "singular": "maceta", "plural": "macetas" },
|
|
"tray": { "singular": "bandeja", "plural": "bandejas" },
|
|
"seedling": { "singular": "plántula", "plural": "plántulas" },
|
|
"tree": { "singular": "árbol", "plural": "árboles" },
|
|
"cutting": { "singular": "esqueje", "plural": "esquejes" },
|
|
"grams": { "singular": "gramo", "plural": "gramos" },
|
|
"count": { "singular": "semilla", "plural": "semillas" }
|
|
},
|
|
"market": {
|
|
"title": "Semillas cerca de ti",
|
|
"subtitle": "Lo que otras personas comparten cerca",
|
|
"notSetUp": "Aún no has configurado el compartir",
|
|
"notSetUpBody": "Activa el compartir para ver y dar semillas a gente cercana. Se mantiene aproximado — tu zona, nunca tu dirección exacta.",
|
|
"setUp": "Configurar el compartir",
|
|
"searching": "Buscando por tu zona…",
|
|
"empty": "Aún no hay semillas compartidas cerca de ti",
|
|
"near": "Cerca de ti",
|
|
"configTitle": "Configuración de compartir",
|
|
"setupIntro": "Compartir con gente cercana es opcional. Para activarlo, indica tu zona aproximada y únete a una comunidad de confianza — una red de semillas o un colectivo que mantiene un punto de encuentro compartido para pasar mensajes. Sin ninguna empresa en medio.",
|
|
"areaLabel": "Tu zona",
|
|
"areaHelp": "Se mantiene aproximado a propósito — tu zona, nunca un punto exacto.",
|
|
"serversAdvanced": "Unirse a una comunidad (avanzado)",
|
|
"serversHelp": "Tu red de semillas o colectivo te da una dirección web para conectarte. Pega una por línea. Déjalo vacío si aún no tienes ninguna.",
|
|
"serversLabel": "Dirección web",
|
|
"save": "Guardar",
|
|
"saved": "Guardado",
|
|
"wanted": "Busco",
|
|
"shareMine": "Compartir mis semillas",
|
|
"sharedCount": "Compartidas {n} semillas",
|
|
"nothingToShare": "Marca antes algunas semillas para regalar, cambiar o vender",
|
|
"useLocation": "Usar mi ubicación aproximada",
|
|
"locationFailed": "No se pudo obtener tu ubicación"
|
|
}
|
|
}
|