tane/apps/app_seeds/lib/i18n/strings_es.g.dart
vjrj 6809dc6143 feat(inventory): photo-first drafts + on-device OCR (digitization R2+R4)
Lower the bulk-digitization cliff with two more routes on top of the
already-landed CSV import and "save and add another":

- Photo-first drafts (capture now, catalogue later): burst-capture
  photos (camera or multi-gallery) into unnamed draft varieties, shown
  in a "to catalogue" tray, hidden from the main list until named.
  Adds Variety.isDraft (schema), addDraftVariety/watchDrafts/nameDraft,
  the triage sheet and the inventory banner.
- On-device OCR label suggestion (Tesseract, offline, no Google): a
  "Suggest name from photo" button in the naming dialog behind a
  LabelTextExtractor interface (Tesseract on Android/iOS, no-op
  elsewhere). Reads the largest print via hOCR bounding boxes, drops
  boilerplate/low-confidence noise, preprocesses (grayscale, contrast,
  upscale) and sweeps rotations (0-315 deg) so tilted packets still
  read. Bundles tessdata_fast eng+spa; validated on-device against real
  packets. The photo is written to a temp file deleted immediately in a
  finally block (the plugin needs a path) - a bounded, documented
  exception to no-plaintext-at-rest.

This commit also carries the co-developed schema evolution v5 to v8 that
shares these files (organic flag, species viability years, crop
calendar, lot provenance/abundance/preservation format, condition
checks) plus their exports/migrations and i18n.

Tests: CSV/draft/OCR unit + widget + migration green in isolation.
Note: the full widget suite currently hangs (>10 min) - under investigation.
2026-07-09 21:23:46 +02:00

1167 lines
52 KiB
Dart

///
/// Generated file. Do not edit.
///
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
// dart format off
import 'package:flutter/widgets.dart';
import 'package:intl/intl.dart';
import 'package:slang/generated.dart';
import 'strings.g.dart';
// Path: <root>
class TranslationsEs extends Translations with BaseTranslations<AppLocale, Translations> {
/// You can call this constructor and build your own translation instance of this locale.
/// Constructing via the enum [AppLocale.build] is preferred.
TranslationsEs({Map<String, Node>? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, TranslationMetadata<AppLocale, Translations>? meta})
: assert(overrides == null, 'Set "translation_overrides: true" in order to enable this feature.'),
$meta = meta ?? TranslationMetadata(
locale: AppLocale.es,
overrides: overrides ?? {},
cardinalResolver: cardinalResolver,
ordinalResolver: ordinalResolver,
),
super(cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver) {
super.$meta.setFlatMapFunction($meta.getTranslation); // copy base translations to super.$meta
$meta.setFlatMapFunction(_flatMapFunction);
}
/// Metadata for the translations of <es>.
@override final TranslationMetadata<AppLocale, Translations> $meta;
/// Access flat map
@override dynamic operator[](String key) => $meta.getTranslation(key) ?? super.$meta.getTranslation(key);
late final TranslationsEs _root = this; // ignore: unused_field
@override
TranslationsEs $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => TranslationsEs(meta: meta ?? this.$meta);
// Translations
@override late final _Translations$app$es app = _Translations$app$es._(_root);
@override late final _Translations$common$es common = _Translations$common$es._(_root);
@override late final _Translations$home$es home = _Translations$home$es._(_root);
@override late final _Translations$photo$es photo = _Translations$photo$es._(_root);
@override late final _Translations$menu$es menu = _Translations$menu$es._(_root);
@override late final _Translations$settings$es settings = _Translations$settings$es._(_root);
@override late final _Translations$backup$es backup = _Translations$backup$es._(_root);
@override late final _Translations$about$es about = _Translations$about$es._(_root);
@override late final _Translations$intro$es intro = _Translations$intro$es._(_root);
@override late final _Translations$inventory$es inventory = _Translations$inventory$es._(_root);
@override late final _Translations$draft$es draft = _Translations$draft$es._(_root);
@override late final _Translations$quickAdd$es quickAdd = _Translations$quickAdd$es._(_root);
@override late final _Translations$detail$es detail = _Translations$detail$es._(_root);
@override late final _Translations$germination$es germination = _Translations$germination$es._(_root);
@override late final _Translations$viability$es viability = _Translations$viability$es._(_root);
@override late final _Translations$editVariety$es editVariety = _Translations$editVariety$es._(_root);
@override late final _Translations$addLot$es addLot = _Translations$addLot$es._(_root);
@override late final _Translations$harvest$es harvest = _Translations$harvest$es._(_root);
@override late final _Translations$lotType$es lotType = _Translations$lotType$es._(_root);
@override late final _Translations$presentation$es presentation = _Translations$presentation$es._(_root);
@override late final _Translations$provenance$es provenance = _Translations$provenance$es._(_root);
@override late final _Translations$abundance$es abundance = _Translations$abundance$es._(_root);
@override late final _Translations$cropCalendar$es cropCalendar = _Translations$cropCalendar$es._(_root);
@override late final _Translations$needsReproduction$es needsReproduction = _Translations$needsReproduction$es._(_root);
@override late final _Translations$preservation$es preservation = _Translations$preservation$es._(_root);
@override late final _Translations$conditionCheck$es conditionCheck = _Translations$conditionCheck$es._(_root);
@override late final _Translations$desiccant$es desiccant = _Translations$desiccant$es._(_root);
@override late final _Translations$unit$es unit = _Translations$unit$es._(_root);
}
// Path: app
class _Translations$app$es extends Translations$app$en {
_Translations$app$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Tanemaki';
}
// Path: common
class _Translations$common$es extends Translations$common$en {
_Translations$common$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get save => 'Guardar';
@override String get cancel => 'Cancelar';
@override String get delete => 'Eliminar';
@override String get edit => 'Editar';
@override String get type => 'Tipo';
@override String get comingSoon => 'Pronto';
}
// Path: home
class _Translations$home$es extends Translations$home$en {
_Translations$home$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get tagline => 'Comparte y cultiva semillas locales';
@override String get openMarket => 'Mercado abierto';
@override String get openMarketSubtitle => 'Explora e intercambia';
@override String get yourInventory => 'Tu inventario';
@override String get yourInventorySubtitle => 'Gestiona tus semillas';
}
// Path: photo
class _Translations$photo$es extends Translations$photo$en {
_Translations$photo$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get camera => 'Hacer una foto';
@override String get gallery => 'Elegir de la galería';
@override String get setAsCover => 'Poner de portada';
@override String get isCover => 'Foto de portada';
@override String get deleteConfirm => '¿Borrar esta foto?';
}
// Path: menu
class _Translations$menu$es extends Translations$menu$en {
_Translations$menu$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get tagline => 'tu banco de semillas';
@override String get inventory => 'Inventario';
@override String get market => 'Mercado';
@override String get profile => 'Tu perfil';
@override String get chat => 'Chat';
@override String get wishlist => 'Lista de deseos';
@override String get following => 'Siguiendo';
@override String get settings => 'Ajustes';
}
// Path: settings
class _Translations$settings$es extends Translations$settings$en {
_Translations$settings$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get language => 'Idioma';
@override String get systemLanguage => 'Idioma del sistema';
@override String get langEs => 'Español';
@override String get langEn => 'English';
@override String get about => 'Acerca de';
@override String get aboutText => 'Inventario local y cifrado para semillas tradicionales. AGPL-3.0.';
@override String get aboutOpen => 'Acerca de Tanemaki';
}
// Path: backup
class _Translations$backup$es extends Translations$backup$en {
_Translations$backup$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Copia de seguridad';
@override String get exportJson => 'Guardar una copia de seguridad';
@override String get exportJsonSubtitle => 'Una copia completa para guardar a salvo, restaurar luego o pasar a otro dispositivo';
@override String get importJson => 'Restaurar una copia';
@override String get importJsonSubtitle => 'Recupera una copia guardada — no se duplica nada';
@override String get exportCsv => 'Exportar a una hoja de cálculo';
@override String get exportCsvSubtitle => 'Una lista sencilla para Excel o LibreOffice — sin fotos';
@override String get importCsv => 'Importar una lista';
@override String get importCsvSubtitle => 'Añade entradas desde una hoja de cálculo';
@override String get importConfirmTitle => '¿Restaurar una copia?';
@override String get 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.';
@override String get importCsvConfirmTitle => '¿Importar una lista?';
@override String get 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.';
@override String get importAction => 'Importar';
@override String get exportSaved => 'Copia guardada';
@override String get cancelled => 'Cancelado';
@override String importDone({required Object added, required Object updated}) => 'Importado: ${added} nuevas, ${updated} actualizadas';
@override String importCsvDone({required Object count}) => 'Añadidas ${count} entradas';
@override String get importFailed => 'Este fichero no se pudo leer como una copia de Tanemaki';
@override String get failed => 'Algo ha salido mal';
}
// Path: about
class _Translations$about$es extends Translations$about$en {
_Translations$about$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Acerca de';
@override String get kanji => '種まき';
@override String get tagline => 'Una app local-first y descentralizada para gestionar y compartir semillas y plantones tradicionales.';
@override String get 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.';
@override String get 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.';
@override String get version => 'Versión';
@override String get license => 'Licencia';
@override String get licenseValue => 'AGPL-3.0';
@override String get website => 'Sitio web';
@override String get openSourceLicenses => 'Licencias de código abierto';
@override String get openSourceLicensesSubtitle => 'Bibliotecas de terceros y sus licencias';
}
// Path: intro
class _Translations$intro$es extends Translations$intro$en {
_Translations$intro$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get skip => 'Saltar';
@override String get next => 'Siguiente';
@override String get start => 'Empezar';
@override String get menuEntry => 'Cómo funciona Tanemaki';
@override late final _Translations$intro$slides$es slides = _Translations$intro$slides$es._(_root);
}
// Path: inventory
class _Translations$inventory$es extends Translations$inventory$en {
_Translations$inventory$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Inventario';
@override String get searchHint => 'Buscar semillas';
@override String get empty => 'Aún no hay semillas. Toca + para añadir la primera.';
@override String get noMatches => 'Ninguna semilla coincide con los filtros.';
@override String get clearFilters => 'Quitar filtros';
@override String get uncategorized => 'Sin categoría';
@override String get needsReproductionFilter => 'Por reproducir';
}
// Path: draft
class _Translations$draft$es extends Translations$draft$en {
_Translations$draft$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get capture => 'Capturar fotos';
@override String captured({required Object n}) => '${n} capturadas por catalogar';
@override String get triageTitle => 'Por catalogar';
@override String triageCount({required Object n}) => '${n} por catalogar';
@override String get untitled => 'Sin nombre';
@override String get nameField => 'Nombra esta semilla';
@override String get nameHint => '¿Qué es?';
@override String get suggestFromPhoto => 'Sugerir nombre de la foto';
@override String get discard => 'Descartar';
}
// Path: quickAdd
class _Translations$quickAdd$es extends Translations$quickAdd$en {
_Translations$quickAdd$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Añadir una semilla';
@override String get labelField => 'Nombre';
@override String get labelRequired => 'Ponle un nombre';
@override String get addPhoto => 'Añadir foto';
@override String get quantity => '¿Cuánta?';
@override String get more => 'Añadir más…';
@override String get save => 'Guardar';
@override String get saveAndAddAnother => 'Guardar y añadir otra';
@override String addedCount({required Object n}) => '${n} añadidas';
@override String get cancel => 'Cancelar';
}
// Path: detail
class _Translations$detail$es extends Translations$detail$en {
_Translations$detail$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get notFound => 'Esta semilla ya no está aquí.';
@override String get lots => 'Lotes';
@override String get noLots => 'Aún no hay lotes.';
@override String get names => 'También conocida como';
@override String get addName => 'Añadir nombre';
@override String get links => 'Enlaces';
@override String get addLink => 'Añadir enlace';
@override String get linkUrl => 'URL';
@override String get linkTitle => 'Título (opcional)';
@override String get notes => 'Notas';
@override String get addLot => 'Añadir lote';
@override String get editLot => 'Editar lote';
@override String get deleteConfirm => '¿Eliminar esta semilla?';
@override String year({required Object year}) => 'Año ${year}';
@override String get noYear => 'Año desconocido';
}
// Path: germination
class _Translations$germination$es extends Translations$germination$en {
_Translations$germination$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Germinación';
@override String get add => 'Añadir prueba';
@override String get sampleSize => 'Muestra';
@override String get germinated => 'Germinadas';
@override String get none => 'Aún no hay pruebas de germinación.';
@override String result({required Object percent}) => '${percent}%';
}
// Path: viability
class _Translations$viability$es extends Translations$viability$en {
_Translations$viability$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get expiringSoon => 'Úsala o multiplícala esta temporada';
@override String expiringSoonYears({required Object years}) => 'Úsala o multiplícala esta temporada · dura ~${years} años';
@override String get expired => 'Supera su viabilidad típica — a multiplicar';
@override String expiredYears({required Object years}) => 'Supera su viabilidad típica (~${years} años) — a multiplicar';
}
// Path: editVariety
class _Translations$editVariety$es extends Translations$editVariety$en {
_Translations$editVariety$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Editar semilla';
@override String get name => 'Nombre';
@override String get category => 'Categoría';
@override String get notes => 'Notas';
@override String get species => 'Especie (del catálogo)';
@override String get speciesHint => 'Buscar una especie…';
@override String get organic => 'Ecológica';
@override String get organicHint => 'Cultivada de forma ecológica (eco)';
}
// Path: addLot
class _Translations$addLot$es extends Translations$addLot$en {
_Translations$addLot$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Añadir lote';
@override String get year => 'Fecha de cosecha';
@override String get quantity => '¿Cuánta?';
@override String get amount => 'Cantidad';
}
// Path: harvest
class _Translations$harvest$es extends Translations$harvest$en {
_Translations$harvest$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get pickTitle => 'Seleccionar mes / año';
@override String get anyMonth => 'Cualquier mes';
@override String get noDate => 'Indicar fecha de cosecha';
@override List<String> get monthNames => [
'enero',
'febrero',
'marzo',
'abril',
'mayo',
'junio',
'julio',
'agosto',
'septiembre',
'octubre',
'noviembre',
'diciembre',
];
}
// Path: lotType
class _Translations$lotType$es extends Translations$lotType$en {
_Translations$lotType$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get seed => 'Semillas';
@override String get plant => 'Planta';
@override String get seedling => 'Plantón';
@override String get tree => 'Árbol / arbusto';
@override String get bulb => 'Bulbo / tubérculo';
@override String get cutting => 'Esqueje';
}
// Path: presentation
class _Translations$presentation$es extends Translations$presentation$en {
_Translations$presentation$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Envase';
@override String get none => 'Sin especificar';
@override String get pot => 'Maceta';
@override String get tray => 'Bandeja';
@override String get plug => 'Alvéolo';
@override String get bareRoot => 'Raíz desnuda';
@override String get rootBall => 'Cepellón';
}
// Path: provenance
class _Translations$provenance$es extends Translations$provenance$en {
_Translations$provenance$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get section => 'De dónde viene';
@override String get seedsFrom => 'Semillas de';
@override String get seedsFromHint => 'Quién las cultivó o las dio';
@override String get place => 'Lugar';
@override String get placeHint => 'De dónde vienen (con provincia)';
@override String get addSeedsFrom => 'Semillas de';
@override String get addPlace => 'Lugar';
}
// Path: abundance
class _Translations$abundance$es extends Translations$abundance$en {
_Translations$abundance$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get add => 'Cuánta tengo';
@override String get title => 'Cuánta tengo';
@override String get none => 'Sin indicar';
@override String get plentyToShare => 'De sobra para compartir';
@override String get enoughToShare => 'Bastante, para compartir con moderación';
@override String get enoughForMe => 'Suficiente para mí';
@override String get runningLow => 'Queda poca';
}
// Path: cropCalendar
class _Translations$cropCalendar$es extends Translations$cropCalendar$en {
_Translations$cropCalendar$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get add => 'Calendario de cultivo';
@override String get title => 'Calendario de cultivo';
@override String get sow => 'Siembra';
@override String get transplant => 'Trasplante';
@override String get flowering => 'Floración';
@override String get fruiting => 'Fructificación';
@override String get seedHarvest => 'Cosecha de semilla';
@override String get unset => '';
}
// Path: needsReproduction
class _Translations$needsReproduction$es extends Translations$needsReproduction$en {
_Translations$needsReproduction$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get label => 'Reproducir esta temporada';
@override String get hint => 'Cultívala antes de que se acabe la semilla';
@override String get badge => 'Por reproducir';
}
// Path: preservation
class _Translations$preservation$es extends Translations$preservation$en {
_Translations$preservation$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get add => 'Cómo se conserva';
@override String get title => 'Cómo se conserva';
@override String get none => 'Sin especificar';
@override String get jarWithDesiccant => 'Bote con desecante';
@override String get glassJar => 'Bote de cristal';
@override String get paperEnvelope => 'Sobre de papel';
@override String get paperBag => 'Bolsa de papel';
@override String get plasticBag => 'Bolsa de plástico';
}
// Path: conditionCheck
class _Translations$conditionCheck$es extends Translations$conditionCheck$en {
_Translations$conditionCheck$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get advanced => 'Conservación y detalles del banco';
@override String get title => 'Revisiones de conservación';
@override String get add => 'Añadir revisión';
@override String get containers => 'Botes / recipientes';
@override String get desiccant => 'Desecante';
@override String get none => 'Aún no hay revisiones.';
@override String summary({required Object count, required Object state}) => '${count} bote(s) · ${state}';
}
// Path: desiccant
class _Translations$desiccant$es extends Translations$desiccant$en {
_Translations$desiccant$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get none => 'No tiene';
@override String get add => 'Se pone';
@override String get replace => 'Se cambia';
@override String get dry => 'Azul — seco';
@override String get fresh => 'Recién puesto';
}
// Path: unit
class _Translations$unit$es extends Translations$unit$en {
_Translations$unit$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get aFew => 'unas pocas';
@override String get some => 'algunas';
@override String get plenty => 'muchas';
@override String get pinch => 'una pizca';
@override late final _Translations$unit$handful$es handful = _Translations$unit$handful$es._(_root);
@override late final _Translations$unit$teaspoon$es teaspoon = _Translations$unit$teaspoon$es._(_root);
@override late final _Translations$unit$spoon$es spoon = _Translations$unit$spoon$es._(_root);
@override late final _Translations$unit$cup$es cup = _Translations$unit$cup$es._(_root);
@override late final _Translations$unit$jar$es jar = _Translations$unit$jar$es._(_root);
@override late final _Translations$unit$sack$es sack = _Translations$unit$sack$es._(_root);
@override late final _Translations$unit$packet$es packet = _Translations$unit$packet$es._(_root);
@override late final _Translations$unit$cob$es cob = _Translations$unit$cob$es._(_root);
@override late final _Translations$unit$pod$es pod = _Translations$unit$pod$es._(_root);
@override late final _Translations$unit$ear$es ear = _Translations$unit$ear$es._(_root);
@override late final _Translations$unit$head$es head = _Translations$unit$head$es._(_root);
@override late final _Translations$unit$fruit$es fruit = _Translations$unit$fruit$es._(_root);
@override late final _Translations$unit$bulb$es bulb = _Translations$unit$bulb$es._(_root);
@override late final _Translations$unit$tuber$es tuber = _Translations$unit$tuber$es._(_root);
@override late final _Translations$unit$seedHead$es seedHead = _Translations$unit$seedHead$es._(_root);
@override late final _Translations$unit$bunch$es bunch = _Translations$unit$bunch$es._(_root);
@override late final _Translations$unit$plant$es plant = _Translations$unit$plant$es._(_root);
@override late final _Translations$unit$pot$es pot = _Translations$unit$pot$es._(_root);
@override late final _Translations$unit$tray$es tray = _Translations$unit$tray$es._(_root);
@override late final _Translations$unit$seedling$es seedling = _Translations$unit$seedling$es._(_root);
@override late final _Translations$unit$tree$es tree = _Translations$unit$tree$es._(_root);
@override late final _Translations$unit$cutting$es cutting = _Translations$unit$cutting$es._(_root);
@override late final _Translations$unit$grams$es grams = _Translations$unit$grams$es._(_root);
@override late final _Translations$unit$count$es count = _Translations$unit$count$es._(_root);
}
// Path: intro.slides
class _Translations$intro$slides$es extends Translations$intro$slides$en {
_Translations$intro$slides$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override late final _Translations$intro$slides$welcome$es welcome = _Translations$intro$slides$welcome$es._(_root);
@override late final _Translations$intro$slides$inventory$es inventory = _Translations$intro$slides$inventory$es._(_root);
@override late final _Translations$intro$slides$privacy$es privacy = _Translations$intro$slides$privacy$es._(_root);
@override late final _Translations$intro$slides$share$es share = _Translations$intro$slides$share$es._(_root);
@override late final _Translations$intro$slides$plantare$es plantare = _Translations$intro$slides$plantare$es._(_root);
}
// Path: unit.handful
class _Translations$unit$handful$es extends Translations$unit$handful$en {
_Translations$unit$handful$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'puñado';
@override String get plural => 'puñados';
}
// Path: unit.teaspoon
class _Translations$unit$teaspoon$es extends Translations$unit$teaspoon$en {
_Translations$unit$teaspoon$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'cucharadita';
@override String get plural => 'cucharaditas';
}
// Path: unit.spoon
class _Translations$unit$spoon$es extends Translations$unit$spoon$en {
_Translations$unit$spoon$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'cuchara';
@override String get plural => 'cucharas';
}
// Path: unit.cup
class _Translations$unit$cup$es extends Translations$unit$cup$en {
_Translations$unit$cup$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'taza';
@override String get plural => 'tazas';
}
// Path: unit.jar
class _Translations$unit$jar$es extends Translations$unit$jar$en {
_Translations$unit$jar$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'bote';
@override String get plural => 'botes';
}
// Path: unit.sack
class _Translations$unit$sack$es extends Translations$unit$sack$en {
_Translations$unit$sack$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'saco';
@override String get plural => 'sacos';
}
// Path: unit.packet
class _Translations$unit$packet$es extends Translations$unit$packet$en {
_Translations$unit$packet$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'sobre';
@override String get plural => 'sobres';
}
// Path: unit.cob
class _Translations$unit$cob$es extends Translations$unit$cob$en {
_Translations$unit$cob$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'mazorca';
@override String get plural => 'mazorcas';
}
// Path: unit.pod
class _Translations$unit$pod$es extends Translations$unit$pod$en {
_Translations$unit$pod$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'vaina';
@override String get plural => 'vainas';
}
// Path: unit.ear
class _Translations$unit$ear$es extends Translations$unit$ear$en {
_Translations$unit$ear$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'espiga';
@override String get plural => 'espigas';
}
// Path: unit.head
class _Translations$unit$head$es extends Translations$unit$head$en {
_Translations$unit$head$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'cabezuela';
@override String get plural => 'cabezuelas';
}
// Path: unit.fruit
class _Translations$unit$fruit$es extends Translations$unit$fruit$en {
_Translations$unit$fruit$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'fruto';
@override String get plural => 'frutos';
}
// Path: unit.bulb
class _Translations$unit$bulb$es extends Translations$unit$bulb$en {
_Translations$unit$bulb$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'bulbo';
@override String get plural => 'bulbos';
}
// Path: unit.tuber
class _Translations$unit$tuber$es extends Translations$unit$tuber$en {
_Translations$unit$tuber$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'tubérculo';
@override String get plural => 'tubérculos';
}
// Path: unit.seedHead
class _Translations$unit$seedHead$es extends Translations$unit$seedHead$en {
_Translations$unit$seedHead$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'cabeza de semillas';
@override String get plural => 'cabezas de semillas';
}
// Path: unit.bunch
class _Translations$unit$bunch$es extends Translations$unit$bunch$en {
_Translations$unit$bunch$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'manojo';
@override String get plural => 'manojos';
}
// Path: unit.plant
class _Translations$unit$plant$es extends Translations$unit$plant$en {
_Translations$unit$plant$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'planta';
@override String get plural => 'plantas';
}
// Path: unit.pot
class _Translations$unit$pot$es extends Translations$unit$pot$en {
_Translations$unit$pot$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'maceta';
@override String get plural => 'macetas';
}
// Path: unit.tray
class _Translations$unit$tray$es extends Translations$unit$tray$en {
_Translations$unit$tray$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'bandeja';
@override String get plural => 'bandejas';
}
// Path: unit.seedling
class _Translations$unit$seedling$es extends Translations$unit$seedling$en {
_Translations$unit$seedling$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'plántula';
@override String get plural => 'plántulas';
}
// Path: unit.tree
class _Translations$unit$tree$es extends Translations$unit$tree$en {
_Translations$unit$tree$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'árbol';
@override String get plural => 'árboles';
}
// Path: unit.cutting
class _Translations$unit$cutting$es extends Translations$unit$cutting$en {
_Translations$unit$cutting$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'esqueje';
@override String get plural => 'esquejes';
}
// Path: unit.grams
class _Translations$unit$grams$es extends Translations$unit$grams$en {
_Translations$unit$grams$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'gramo';
@override String get plural => 'gramos';
}
// Path: unit.count
class _Translations$unit$count$es extends Translations$unit$count$en {
_Translations$unit$count$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get singular => 'semilla';
@override String get plural => 'semillas';
}
// Path: intro.slides.welcome
class _Translations$intro$slides$welcome$es extends Translations$intro$slides$welcome$en {
_Translations$intro$slides$welcome$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'La semilla que te trajo hasta aquí';
@override String get 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.';
}
// Path: intro.slides.inventory
class _Translations$intro$slides$inventory$es extends Translations$intro$slides$inventory$en {
_Translations$intro$slides$inventory$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Tu banco de semillas, en el bolsillo';
@override String get 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.';
}
// Path: intro.slides.privacy
class _Translations$intro$slides$privacy$es extends Translations$intro$slides$privacy$en {
_Translations$intro$slides$privacy$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Tuyo y solo tuyo';
@override String get body => 'Sin cuenta, sin internet, sin rastreadores. Tus datos viven cifrados en tu dispositivo y solo se comparte lo que tú decidas.';
}
// Path: intro.slides.share
class _Translations$intro$slides$share$es extends Translations$intro$slides$share$en {
_Translations$intro$slides$share$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Compartir, como siempre se hizo';
@override String get 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.';
}
// Path: intro.slides.plantare
class _Translations$intro$slides$plantare$es extends Translations$intro$slides$plantare$en {
_Translations$intro$slides$plantare$es._(TranslationsEs root) : this._root = root, super.internal(root);
final TranslationsEs _root; // ignore: unused_field
// Translations
@override String get title => 'Sembrar es multiplicar';
@override String get 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.';
}
/// The flat map containing all translations for locale <es>.
/// Only for edge cases! For simple maps, use the map function of this library.
///
/// The Dart AOT compiler has issues with very large switch statements,
/// so the map is split into smaller functions (512 entries each).
extension on TranslationsEs {
dynamic _flatMapFunction(String path) {
return switch (path) {
'app.title' => 'Tanemaki',
'common.save' => 'Guardar',
'common.cancel' => 'Cancelar',
'common.delete' => 'Eliminar',
'common.edit' => 'Editar',
'common.type' => 'Tipo',
'common.comingSoon' => 'Pronto',
'home.tagline' => 'Comparte y cultiva semillas locales',
'home.openMarket' => 'Mercado abierto',
'home.openMarketSubtitle' => 'Explora e intercambia',
'home.yourInventory' => 'Tu inventario',
'home.yourInventorySubtitle' => 'Gestiona tus semillas',
'photo.camera' => 'Hacer una foto',
'photo.gallery' => 'Elegir de la galería',
'photo.setAsCover' => 'Poner de portada',
'photo.isCover' => 'Foto de portada',
'photo.deleteConfirm' => '¿Borrar esta foto?',
'menu.tagline' => 'tu banco de semillas',
'menu.inventory' => 'Inventario',
'menu.market' => 'Mercado',
'menu.profile' => 'Tu perfil',
'menu.chat' => 'Chat',
'menu.wishlist' => 'Lista de deseos',
'menu.following' => 'Siguiendo',
'menu.settings' => 'Ajustes',
'settings.language' => 'Idioma',
'settings.systemLanguage' => 'Idioma del sistema',
'settings.langEs' => 'Español',
'settings.langEn' => 'English',
'settings.about' => 'Acerca de',
'settings.aboutText' => 'Inventario local y cifrado para semillas tradicionales. AGPL-3.0.',
'settings.aboutOpen' => 'Acerca de Tanemaki',
'backup.title' => 'Copia de seguridad',
'backup.exportJson' => 'Guardar una copia de seguridad',
'backup.exportJsonSubtitle' => 'Una copia completa para guardar a salvo, restaurar luego o pasar a otro dispositivo',
'backup.importJson' => 'Restaurar una copia',
'backup.importJsonSubtitle' => 'Recupera una copia guardada — no se duplica nada',
'backup.exportCsv' => 'Exportar a una hoja de cálculo',
'backup.exportCsvSubtitle' => 'Una lista sencilla para Excel o LibreOffice — sin fotos',
'backup.importCsv' => 'Importar una lista',
'backup.importCsvSubtitle' => 'Añade entradas desde una hoja de cálculo',
'backup.importConfirmTitle' => '¿Restaurar una copia?',
'backup.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.',
'backup.importCsvConfirmTitle' => '¿Importar una lista?',
'backup.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.',
'backup.importAction' => 'Importar',
'backup.exportSaved' => 'Copia guardada',
'backup.cancelled' => 'Cancelado',
'backup.importDone' => ({required Object added, required Object updated}) => 'Importado: ${added} nuevas, ${updated} actualizadas',
'backup.importCsvDone' => ({required Object count}) => 'Añadidas ${count} entradas',
'backup.importFailed' => 'Este fichero no se pudo leer como una copia de Tanemaki',
'backup.failed' => 'Algo ha salido mal',
'about.title' => 'Acerca de',
'about.kanji' => '種まき',
'about.tagline' => 'Una app local-first y descentralizada para gestionar y compartir semillas y plantones tradicionales.',
'about.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.',
'about.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.',
'about.version' => 'Versión',
'about.license' => 'Licencia',
'about.licenseValue' => 'AGPL-3.0',
'about.website' => 'Sitio web',
'about.openSourceLicenses' => 'Licencias de código abierto',
'about.openSourceLicensesSubtitle' => 'Bibliotecas de terceros y sus licencias',
'intro.skip' => 'Saltar',
'intro.next' => 'Siguiente',
'intro.start' => 'Empezar',
'intro.menuEntry' => 'Cómo funciona Tanemaki',
'intro.slides.welcome.title' => 'La semilla que te trajo hasta aquí',
'intro.slides.welcome.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.',
'intro.slides.inventory.title' => 'Tu banco de semillas, en el bolsillo',
'intro.slides.inventory.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.',
'intro.slides.privacy.title' => 'Tuyo y solo tuyo',
'intro.slides.privacy.body' => 'Sin cuenta, sin internet, sin rastreadores. Tus datos viven cifrados en tu dispositivo y solo se comparte lo que tú decidas.',
'intro.slides.share.title' => 'Compartir, como siempre se hizo',
'intro.slides.share.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.',
'intro.slides.plantare.title' => 'Sembrar es multiplicar',
'intro.slides.plantare.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',
'inventory.searchHint' => 'Buscar semillas',
'inventory.empty' => 'Aún no hay semillas. Toca + para añadir la primera.',
'inventory.noMatches' => 'Ninguna semilla coincide con los filtros.',
'inventory.clearFilters' => 'Quitar filtros',
'inventory.uncategorized' => 'Sin categoría',
'inventory.needsReproductionFilter' => 'Por reproducir',
'draft.capture' => 'Capturar fotos',
'draft.captured' => ({required Object n}) => '${n} capturadas por catalogar',
'draft.triageTitle' => 'Por catalogar',
'draft.triageCount' => ({required Object n}) => '${n} por catalogar',
'draft.untitled' => 'Sin nombre',
'draft.nameField' => 'Nombra esta semilla',
'draft.nameHint' => '¿Qué es?',
'draft.suggestFromPhoto' => 'Sugerir nombre de la foto',
'draft.discard' => 'Descartar',
'quickAdd.title' => 'Añadir una semilla',
'quickAdd.labelField' => 'Nombre',
'quickAdd.labelRequired' => 'Ponle un nombre',
'quickAdd.addPhoto' => 'Añadir foto',
'quickAdd.quantity' => '¿Cuánta?',
'quickAdd.more' => 'Añadir más…',
'quickAdd.save' => 'Guardar',
'quickAdd.saveAndAddAnother' => 'Guardar y añadir otra',
'quickAdd.addedCount' => ({required Object n}) => '${n} añadidas',
'quickAdd.cancel' => 'Cancelar',
'detail.notFound' => 'Esta semilla ya no está aquí.',
'detail.lots' => 'Lotes',
'detail.noLots' => 'Aún no hay lotes.',
'detail.names' => 'También conocida como',
'detail.addName' => 'Añadir nombre',
'detail.links' => 'Enlaces',
'detail.addLink' => 'Añadir enlace',
'detail.linkUrl' => 'URL',
'detail.linkTitle' => 'Título (opcional)',
'detail.notes' => 'Notas',
'detail.addLot' => 'Añadir lote',
'detail.editLot' => 'Editar lote',
'detail.deleteConfirm' => '¿Eliminar esta semilla?',
'detail.year' => ({required Object year}) => 'Año ${year}',
'detail.noYear' => 'Año desconocido',
'germination.title' => 'Germinación',
'germination.add' => 'Añadir prueba',
'germination.sampleSize' => 'Muestra',
'germination.germinated' => 'Germinadas',
'germination.none' => 'Aún no hay pruebas de germinación.',
'germination.result' => ({required Object percent}) => '${percent}%',
'viability.expiringSoon' => 'Úsala o multiplícala esta temporada',
'viability.expiringSoonYears' => ({required Object years}) => 'Úsala o multiplícala esta temporada · dura ~${years} años',
'viability.expired' => 'Supera su viabilidad típica — a multiplicar',
'viability.expiredYears' => ({required Object years}) => 'Supera su viabilidad típica (~${years} años) — a multiplicar',
'editVariety.title' => 'Editar semilla',
'editVariety.name' => 'Nombre',
'editVariety.category' => 'Categoría',
'editVariety.notes' => 'Notas',
'editVariety.species' => 'Especie (del catálogo)',
'editVariety.speciesHint' => 'Buscar una especie…',
'editVariety.organic' => 'Ecológica',
'editVariety.organicHint' => 'Cultivada de forma ecológica (eco)',
'addLot.title' => 'Añadir lote',
'addLot.year' => 'Fecha de cosecha',
'addLot.quantity' => '¿Cuánta?',
'addLot.amount' => 'Cantidad',
'harvest.pickTitle' => 'Seleccionar mes / año',
'harvest.anyMonth' => 'Cualquier mes',
'harvest.noDate' => 'Indicar fecha de cosecha',
'harvest.monthNames.0' => 'enero',
'harvest.monthNames.1' => 'febrero',
'harvest.monthNames.2' => 'marzo',
'harvest.monthNames.3' => 'abril',
'harvest.monthNames.4' => 'mayo',
'harvest.monthNames.5' => 'junio',
'harvest.monthNames.6' => 'julio',
'harvest.monthNames.7' => 'agosto',
'harvest.monthNames.8' => 'septiembre',
'harvest.monthNames.9' => 'octubre',
'harvest.monthNames.10' => 'noviembre',
'harvest.monthNames.11' => 'diciembre',
'lotType.seed' => 'Semillas',
'lotType.plant' => 'Planta',
'lotType.seedling' => 'Plantón',
'lotType.tree' => 'Árbol / arbusto',
'lotType.bulb' => 'Bulbo / tubérculo',
'lotType.cutting' => 'Esqueje',
'presentation.title' => 'Envase',
'presentation.none' => 'Sin especificar',
'presentation.pot' => 'Maceta',
'presentation.tray' => 'Bandeja',
'presentation.plug' => 'Alvéolo',
'presentation.bareRoot' => 'Raíz desnuda',
'presentation.rootBall' => 'Cepellón',
'provenance.section' => 'De dónde viene',
'provenance.seedsFrom' => 'Semillas de',
'provenance.seedsFromHint' => 'Quién las cultivó o las dio',
'provenance.place' => 'Lugar',
'provenance.placeHint' => 'De dónde vienen (con provincia)',
'provenance.addSeedsFrom' => 'Semillas de',
'provenance.addPlace' => 'Lugar',
'abundance.add' => 'Cuánta tengo',
'abundance.title' => 'Cuánta tengo',
'abundance.none' => 'Sin indicar',
'abundance.plentyToShare' => 'De sobra para compartir',
'abundance.enoughToShare' => 'Bastante, para compartir con moderación',
'abundance.enoughForMe' => 'Suficiente para mí',
'abundance.runningLow' => 'Queda poca',
'cropCalendar.add' => 'Calendario de cultivo',
'cropCalendar.title' => 'Calendario de cultivo',
'cropCalendar.sow' => 'Siembra',
'cropCalendar.transplant' => 'Trasplante',
'cropCalendar.flowering' => 'Floración',
'cropCalendar.fruiting' => 'Fructificación',
'cropCalendar.seedHarvest' => 'Cosecha de semilla',
'cropCalendar.unset' => '',
'needsReproduction.label' => 'Reproducir esta temporada',
'needsReproduction.hint' => 'Cultívala antes de que se acabe la semilla',
'needsReproduction.badge' => 'Por reproducir',
'preservation.add' => 'Cómo se conserva',
'preservation.title' => 'Cómo se conserva',
'preservation.none' => 'Sin especificar',
'preservation.jarWithDesiccant' => 'Bote con desecante',
'preservation.glassJar' => 'Bote de cristal',
'preservation.paperEnvelope' => 'Sobre de papel',
'preservation.paperBag' => 'Bolsa de papel',
'preservation.plasticBag' => 'Bolsa de plástico',
'conditionCheck.advanced' => 'Conservación y detalles del banco',
'conditionCheck.title' => 'Revisiones de conservación',
'conditionCheck.add' => 'Añadir revisión',
'conditionCheck.containers' => 'Botes / recipientes',
'conditionCheck.desiccant' => 'Desecante',
'conditionCheck.none' => 'Aún no hay revisiones.',
'conditionCheck.summary' => ({required Object count, required Object state}) => '${count} bote(s) · ${state}',
'desiccant.none' => 'No tiene',
'desiccant.add' => 'Se pone',
'desiccant.replace' => 'Se cambia',
'desiccant.dry' => 'Azul — seco',
'desiccant.fresh' => 'Recién puesto',
'unit.aFew' => 'unas pocas',
'unit.some' => 'algunas',
'unit.plenty' => 'muchas',
'unit.pinch' => 'una pizca',
'unit.handful.singular' => 'puñado',
'unit.handful.plural' => 'puñados',
'unit.teaspoon.singular' => 'cucharadita',
'unit.teaspoon.plural' => 'cucharaditas',
'unit.spoon.singular' => 'cuchara',
'unit.spoon.plural' => 'cucharas',
'unit.cup.singular' => 'taza',
'unit.cup.plural' => 'tazas',
'unit.jar.singular' => 'bote',
'unit.jar.plural' => 'botes',
'unit.sack.singular' => 'saco',
'unit.sack.plural' => 'sacos',
'unit.packet.singular' => 'sobre',
'unit.packet.plural' => 'sobres',
'unit.cob.singular' => 'mazorca',
'unit.cob.plural' => 'mazorcas',
'unit.pod.singular' => 'vaina',
'unit.pod.plural' => 'vainas',
'unit.ear.singular' => 'espiga',
'unit.ear.plural' => 'espigas',
'unit.head.singular' => 'cabezuela',
'unit.head.plural' => 'cabezuelas',
'unit.fruit.singular' => 'fruto',
'unit.fruit.plural' => 'frutos',
'unit.bulb.singular' => 'bulbo',
'unit.bulb.plural' => 'bulbos',
'unit.tuber.singular' => 'tubérculo',
'unit.tuber.plural' => 'tubérculos',
'unit.seedHead.singular' => 'cabeza de semillas',
'unit.seedHead.plural' => 'cabezas de semillas',
'unit.bunch.singular' => 'manojo',
'unit.bunch.plural' => 'manojos',
'unit.plant.singular' => 'planta',
'unit.plant.plural' => 'plantas',
'unit.pot.singular' => 'maceta',
'unit.pot.plural' => 'macetas',
'unit.tray.singular' => 'bandeja',
'unit.tray.plural' => 'bandejas',
'unit.seedling.singular' => 'plántula',
'unit.seedling.plural' => 'plántulas',
'unit.tree.singular' => 'árbol',
'unit.tree.plural' => 'árboles',
'unit.cutting.singular' => 'esqueje',
'unit.cutting.plural' => 'esquejes',
'unit.grams.singular' => 'gramo',
'unit.grams.plural' => 'gramos',
'unit.count.singular' => 'semilla',
'unit.count.plural' => 'semillas',
_ => null,
};
}
}