tane/apps/app_seeds/lib/i18n/strings_es.g.dart
vjrj 9558115c1e feat(inventory): filter by category and lot form + a11y polish
Add filter chips above the inventory list, one per category in use and
one per lot form actually held; results apply search ∧ category ∧ form.
An active filter that empties the list shows a distinct 'no matches'
state and a clear-filters button. VarietyListItem now carries the set of
lot forms it holds (one aggregate query), and the stream re-emits on lot
changes.

Accessibility: category headers use the text theme so they honour the
system font scale; the list avatar is excluded from semantics (the tile
title already announces the name); the edit action uses the green action
colour (≥3:1 on the canvas, up from 2.62:1). Add category/form/clear
filter tests and a tap-target-size guideline test.
2026-07-09 12:00:34 +02:00

803 lines
32 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$about$es about = _Translations$about$es._(_root);
@override late final _Translations$inventory$es inventory = _Translations$inventory$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$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$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: 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: 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';
}
// 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 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: 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…';
}
// 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: 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: 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';
}
/// 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',
'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',
'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',
'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.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}%',
'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…',
'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',
'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,
};
}
}