tane/apps/app_seeds/lib/i18n/strings_es.g.dart
vjrj 37427fa738 feat(block1): germination tests per lot with derived rate
Record germination tests on a lot and surface the result.

- GerminationEntry model with a derived rate (germinated / sample). VarietyLot
  carries its tests (most-recent first) and exposes latestGerminationRate.
- VarietyRepository.addGerminationTest; watchVariety now also re-emits on
  germination-test changes, so the detail refreshes live.
- Detail UI: each lot shows a germination % badge and a grass action that opens
  a sheet listing past tests and adding a new one (germinated + sample size).
  i18n strings (ES/EN).

Tests: derived-rate + reactivity at the repository, and a widget test for the
record-test → badge flow. Full suite: 35 passing, 0 skipped.
2026-07-07 21:59:34 +02:00

263 lines
10 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$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$quantityKind$es quantityKind = _Translations$quantityKind$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';
}
// 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 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 notes => 'Notas';
@override String get addLot => 'Añadir 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 => 'Año de cosecha';
@override String get quantity => 'Cantidad';
}
// Path: quantityKind
class _Translations$quantityKind$es extends Translations$quantityKind$en {
_Translations$quantityKind$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 handful => 'un puñado';
@override String get pinch => 'una pizca';
@override String get jar => 'un tarro';
@override String get packet => 'un sobre';
@override String get cob => 'una mazorca';
@override String get head => 'una cabezuela';
@override String get pod => 'una vaina';
@override String get ear => 'una espiga';
@override String get fruit => 'un fruto';
@override String get bulb => 'un bulbo';
@override String get tuber => 'un tubérculo';
@override String get seedHead => 'una cabeza de semillas';
@override String get bunch => 'un manojo';
@override String get grams => 'gramos';
@override String get count => 'unidades';
}
/// 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',
'inventory.title' => 'Inventario',
'inventory.searchHint' => 'Buscar semillas',
'inventory.empty' => 'Aún no hay semillas. Toca + para añadir la primera.',
'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.notes' => 'Notas',
'detail.addLot' => 'Añadir 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' => 'Año de cosecha',
'addLot.quantity' => 'Cantidad',
'quantityKind.aFew' => 'unas pocas',
'quantityKind.some' => 'algunas',
'quantityKind.plenty' => 'muchas',
'quantityKind.handful' => 'un puñado',
'quantityKind.pinch' => 'una pizca',
'quantityKind.jar' => 'un tarro',
'quantityKind.packet' => 'un sobre',
'quantityKind.cob' => 'una mazorca',
'quantityKind.head' => 'una cabezuela',
'quantityKind.pod' => 'una vaina',
'quantityKind.ear' => 'una espiga',
'quantityKind.fruit' => 'un fruto',
'quantityKind.bulb' => 'un bulbo',
'quantityKind.tuber' => 'un tubérculo',
'quantityKind.seedHead' => 'una cabeza de semillas',
'quantityKind.bunch' => 'un manojo',
'quantityKind.grams' => 'gramos',
'quantityKind.count' => 'unidades',
_ => null,
};
}
}