Lots could only be created; now they can be edited and removed: - Repository: updateLot (LWW) + softDeleteLot (tombstone). - Cubit: updateLot / deleteLot. - The add-lot sheet is now a shared add/edit sheet — tapping a lot opens it prefilled (type, year, quantity), with a trash action to delete. The reactive detail view refreshes on save/delete. Tests: repo updateLot/softDeleteLot + widget edit-lot and delete-lot. 42 green.
735 lines
18 KiB
Dart
735 lines
18 KiB
Dart
///
|
|
/// Generated file. Do not edit.
|
|
///
|
|
// coverage:ignore-file
|
|
// ignore_for_file: type=lint, unused_import
|
|
// dart format off
|
|
|
|
part of 'strings.g.dart';
|
|
|
|
// Path: <root>
|
|
typedef TranslationsEn = Translations; // ignore: unused_element
|
|
class Translations with BaseTranslations<AppLocale, Translations> {
|
|
/// Returns the current translations of the given [context].
|
|
///
|
|
/// Usage:
|
|
/// final t = Translations.of(context);
|
|
static Translations of(BuildContext context) => InheritedLocaleData.of<AppLocale, Translations>(context).translations;
|
|
|
|
/// You can call this constructor and build your own translation instance of this locale.
|
|
/// Constructing via the enum [AppLocale.build] is preferred.
|
|
Translations({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.en,
|
|
overrides: overrides ?? {},
|
|
cardinalResolver: cardinalResolver,
|
|
ordinalResolver: ordinalResolver,
|
|
) {
|
|
$meta.setFlatMapFunction(_flatMapFunction);
|
|
}
|
|
|
|
/// Metadata for the translations of <en>.
|
|
@override final TranslationMetadata<AppLocale, Translations> $meta;
|
|
|
|
/// Access flat map
|
|
dynamic operator[](String key) => $meta.getTranslation(key);
|
|
|
|
late final Translations _root = this; // ignore: unused_field
|
|
|
|
Translations $copyWith({TranslationMetadata<AppLocale, Translations>? meta}) => Translations(meta: meta ?? this.$meta);
|
|
|
|
// Translations
|
|
late final Translations$app$en app = Translations$app$en.internal(_root);
|
|
late final Translations$common$en common = Translations$common$en.internal(_root);
|
|
late final Translations$inventory$en inventory = Translations$inventory$en.internal(_root);
|
|
late final Translations$quickAdd$en quickAdd = Translations$quickAdd$en.internal(_root);
|
|
late final Translations$detail$en detail = Translations$detail$en.internal(_root);
|
|
late final Translations$germination$en germination = Translations$germination$en.internal(_root);
|
|
late final Translations$editVariety$en editVariety = Translations$editVariety$en.internal(_root);
|
|
late final Translations$addLot$en addLot = Translations$addLot$en.internal(_root);
|
|
late final Translations$lotType$en lotType = Translations$lotType$en.internal(_root);
|
|
late final Translations$unit$en unit = Translations$unit$en.internal(_root);
|
|
}
|
|
|
|
// Path: app
|
|
class Translations$app$en {
|
|
Translations$app$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'Tanemaki'
|
|
String get title => 'Tanemaki';
|
|
}
|
|
|
|
// Path: common
|
|
class Translations$common$en {
|
|
Translations$common$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'Save'
|
|
String get save => 'Save';
|
|
|
|
/// en: 'Cancel'
|
|
String get cancel => 'Cancel';
|
|
|
|
/// en: 'Delete'
|
|
String get delete => 'Delete';
|
|
|
|
/// en: 'Edit'
|
|
String get edit => 'Edit';
|
|
|
|
/// en: 'Type'
|
|
String get type => 'Type';
|
|
}
|
|
|
|
// Path: inventory
|
|
class Translations$inventory$en {
|
|
Translations$inventory$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'Inventory'
|
|
String get title => 'Inventory';
|
|
|
|
/// en: 'Search seeds'
|
|
String get searchHint => 'Search seeds';
|
|
|
|
/// en: 'No seeds yet. Tap + to add your first.'
|
|
String get empty => 'No seeds yet. Tap + to add your first.';
|
|
|
|
/// en: 'Uncategorized'
|
|
String get uncategorized => 'Uncategorized';
|
|
}
|
|
|
|
// Path: quickAdd
|
|
class Translations$quickAdd$en {
|
|
Translations$quickAdd$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'Add a seed'
|
|
String get title => 'Add a seed';
|
|
|
|
/// en: 'Name'
|
|
String get labelField => 'Name';
|
|
|
|
/// en: 'Give it a name'
|
|
String get labelRequired => 'Give it a name';
|
|
|
|
/// en: 'Add photo'
|
|
String get addPhoto => 'Add photo';
|
|
|
|
/// en: 'How much?'
|
|
String get quantity => 'How much?';
|
|
|
|
/// en: 'Add more…'
|
|
String get more => 'Add more…';
|
|
|
|
/// en: 'Save'
|
|
String get save => 'Save';
|
|
|
|
/// en: 'Cancel'
|
|
String get cancel => 'Cancel';
|
|
}
|
|
|
|
// Path: detail
|
|
class Translations$detail$en {
|
|
Translations$detail$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'This seed is no longer here.'
|
|
String get notFound => 'This seed is no longer here.';
|
|
|
|
/// en: 'Lots'
|
|
String get lots => 'Lots';
|
|
|
|
/// en: 'No lots yet.'
|
|
String get noLots => 'No lots yet.';
|
|
|
|
/// en: 'Also known as'
|
|
String get names => 'Also known as';
|
|
|
|
/// en: 'Notes'
|
|
String get notes => 'Notes';
|
|
|
|
/// en: 'Add lot'
|
|
String get addLot => 'Add lot';
|
|
|
|
/// en: 'Edit lot'
|
|
String get editLot => 'Edit lot';
|
|
|
|
/// en: 'Delete this seed?'
|
|
String get deleteConfirm => 'Delete this seed?';
|
|
|
|
/// en: 'Year {year}'
|
|
String year({required Object year}) => 'Year ${year}';
|
|
|
|
/// en: 'Year unknown'
|
|
String get noYear => 'Year unknown';
|
|
}
|
|
|
|
// Path: germination
|
|
class Translations$germination$en {
|
|
Translations$germination$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'Germination'
|
|
String get title => 'Germination';
|
|
|
|
/// en: 'Add test'
|
|
String get add => 'Add test';
|
|
|
|
/// en: 'Sample size'
|
|
String get sampleSize => 'Sample size';
|
|
|
|
/// en: 'Germinated'
|
|
String get germinated => 'Germinated';
|
|
|
|
/// en: 'No germination tests yet.'
|
|
String get none => 'No germination tests yet.';
|
|
|
|
/// en: '{percent}%'
|
|
String result({required Object percent}) => '${percent}%';
|
|
}
|
|
|
|
// Path: editVariety
|
|
class Translations$editVariety$en {
|
|
Translations$editVariety$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'Edit seed'
|
|
String get title => 'Edit seed';
|
|
|
|
/// en: 'Name'
|
|
String get name => 'Name';
|
|
|
|
/// en: 'Category'
|
|
String get category => 'Category';
|
|
|
|
/// en: 'Notes'
|
|
String get notes => 'Notes';
|
|
|
|
/// en: 'Species (from catalog)'
|
|
String get species => 'Species (from catalog)';
|
|
|
|
/// en: 'Search a species…'
|
|
String get speciesHint => 'Search a species…';
|
|
}
|
|
|
|
// Path: addLot
|
|
class Translations$addLot$en {
|
|
Translations$addLot$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'Add lot'
|
|
String get title => 'Add lot';
|
|
|
|
/// en: 'Harvest year'
|
|
String get year => 'Harvest year';
|
|
|
|
/// en: 'How much?'
|
|
String get quantity => 'How much?';
|
|
|
|
/// en: 'Amount'
|
|
String get amount => 'Amount';
|
|
}
|
|
|
|
// Path: lotType
|
|
class Translations$lotType$en {
|
|
Translations$lotType$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'Seeds'
|
|
String get seed => 'Seeds';
|
|
|
|
/// en: 'Plants'
|
|
String get plant => 'Plants';
|
|
}
|
|
|
|
// Path: unit
|
|
class Translations$unit$en {
|
|
Translations$unit$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'a few'
|
|
String get aFew => 'a few';
|
|
|
|
/// en: 'some'
|
|
String get some => 'some';
|
|
|
|
/// en: 'plenty'
|
|
String get plenty => 'plenty';
|
|
|
|
/// en: 'a pinch'
|
|
String get pinch => 'a pinch';
|
|
|
|
late final Translations$unit$handful$en handful = Translations$unit$handful$en.internal(_root);
|
|
late final Translations$unit$teaspoon$en teaspoon = Translations$unit$teaspoon$en.internal(_root);
|
|
late final Translations$unit$spoon$en spoon = Translations$unit$spoon$en.internal(_root);
|
|
late final Translations$unit$cup$en cup = Translations$unit$cup$en.internal(_root);
|
|
late final Translations$unit$jar$en jar = Translations$unit$jar$en.internal(_root);
|
|
late final Translations$unit$sack$en sack = Translations$unit$sack$en.internal(_root);
|
|
late final Translations$unit$packet$en packet = Translations$unit$packet$en.internal(_root);
|
|
late final Translations$unit$cob$en cob = Translations$unit$cob$en.internal(_root);
|
|
late final Translations$unit$pod$en pod = Translations$unit$pod$en.internal(_root);
|
|
late final Translations$unit$ear$en ear = Translations$unit$ear$en.internal(_root);
|
|
late final Translations$unit$head$en head = Translations$unit$head$en.internal(_root);
|
|
late final Translations$unit$fruit$en fruit = Translations$unit$fruit$en.internal(_root);
|
|
late final Translations$unit$bulb$en bulb = Translations$unit$bulb$en.internal(_root);
|
|
late final Translations$unit$tuber$en tuber = Translations$unit$tuber$en.internal(_root);
|
|
late final Translations$unit$seedHead$en seedHead = Translations$unit$seedHead$en.internal(_root);
|
|
late final Translations$unit$bunch$en bunch = Translations$unit$bunch$en.internal(_root);
|
|
late final Translations$unit$plant$en plant = Translations$unit$plant$en.internal(_root);
|
|
late final Translations$unit$pot$en pot = Translations$unit$pot$en.internal(_root);
|
|
late final Translations$unit$tray$en tray = Translations$unit$tray$en.internal(_root);
|
|
late final Translations$unit$grams$en grams = Translations$unit$grams$en.internal(_root);
|
|
late final Translations$unit$count$en count = Translations$unit$count$en.internal(_root);
|
|
}
|
|
|
|
// Path: unit.handful
|
|
class Translations$unit$handful$en {
|
|
Translations$unit$handful$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'handful'
|
|
String get singular => 'handful';
|
|
|
|
/// en: 'handfuls'
|
|
String get plural => 'handfuls';
|
|
}
|
|
|
|
// Path: unit.teaspoon
|
|
class Translations$unit$teaspoon$en {
|
|
Translations$unit$teaspoon$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'teaspoon'
|
|
String get singular => 'teaspoon';
|
|
|
|
/// en: 'teaspoons'
|
|
String get plural => 'teaspoons';
|
|
}
|
|
|
|
// Path: unit.spoon
|
|
class Translations$unit$spoon$en {
|
|
Translations$unit$spoon$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'spoon'
|
|
String get singular => 'spoon';
|
|
|
|
/// en: 'spoons'
|
|
String get plural => 'spoons';
|
|
}
|
|
|
|
// Path: unit.cup
|
|
class Translations$unit$cup$en {
|
|
Translations$unit$cup$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'cup'
|
|
String get singular => 'cup';
|
|
|
|
/// en: 'cups'
|
|
String get plural => 'cups';
|
|
}
|
|
|
|
// Path: unit.jar
|
|
class Translations$unit$jar$en {
|
|
Translations$unit$jar$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'jar'
|
|
String get singular => 'jar';
|
|
|
|
/// en: 'jars'
|
|
String get plural => 'jars';
|
|
}
|
|
|
|
// Path: unit.sack
|
|
class Translations$unit$sack$en {
|
|
Translations$unit$sack$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'sack'
|
|
String get singular => 'sack';
|
|
|
|
/// en: 'sacks'
|
|
String get plural => 'sacks';
|
|
}
|
|
|
|
// Path: unit.packet
|
|
class Translations$unit$packet$en {
|
|
Translations$unit$packet$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'packet'
|
|
String get singular => 'packet';
|
|
|
|
/// en: 'packets'
|
|
String get plural => 'packets';
|
|
}
|
|
|
|
// Path: unit.cob
|
|
class Translations$unit$cob$en {
|
|
Translations$unit$cob$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'cob'
|
|
String get singular => 'cob';
|
|
|
|
/// en: 'cobs'
|
|
String get plural => 'cobs';
|
|
}
|
|
|
|
// Path: unit.pod
|
|
class Translations$unit$pod$en {
|
|
Translations$unit$pod$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'pod'
|
|
String get singular => 'pod';
|
|
|
|
/// en: 'pods'
|
|
String get plural => 'pods';
|
|
}
|
|
|
|
// Path: unit.ear
|
|
class Translations$unit$ear$en {
|
|
Translations$unit$ear$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'ear'
|
|
String get singular => 'ear';
|
|
|
|
/// en: 'ears'
|
|
String get plural => 'ears';
|
|
}
|
|
|
|
// Path: unit.head
|
|
class Translations$unit$head$en {
|
|
Translations$unit$head$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'head'
|
|
String get singular => 'head';
|
|
|
|
/// en: 'heads'
|
|
String get plural => 'heads';
|
|
}
|
|
|
|
// Path: unit.fruit
|
|
class Translations$unit$fruit$en {
|
|
Translations$unit$fruit$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'fruit'
|
|
String get singular => 'fruit';
|
|
|
|
/// en: 'fruits'
|
|
String get plural => 'fruits';
|
|
}
|
|
|
|
// Path: unit.bulb
|
|
class Translations$unit$bulb$en {
|
|
Translations$unit$bulb$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'bulb'
|
|
String get singular => 'bulb';
|
|
|
|
/// en: 'bulbs'
|
|
String get plural => 'bulbs';
|
|
}
|
|
|
|
// Path: unit.tuber
|
|
class Translations$unit$tuber$en {
|
|
Translations$unit$tuber$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'tuber'
|
|
String get singular => 'tuber';
|
|
|
|
/// en: 'tubers'
|
|
String get plural => 'tubers';
|
|
}
|
|
|
|
// Path: unit.seedHead
|
|
class Translations$unit$seedHead$en {
|
|
Translations$unit$seedHead$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'seed head'
|
|
String get singular => 'seed head';
|
|
|
|
/// en: 'seed heads'
|
|
String get plural => 'seed heads';
|
|
}
|
|
|
|
// Path: unit.bunch
|
|
class Translations$unit$bunch$en {
|
|
Translations$unit$bunch$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'bunch'
|
|
String get singular => 'bunch';
|
|
|
|
/// en: 'bunches'
|
|
String get plural => 'bunches';
|
|
}
|
|
|
|
// Path: unit.plant
|
|
class Translations$unit$plant$en {
|
|
Translations$unit$plant$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'plant'
|
|
String get singular => 'plant';
|
|
|
|
/// en: 'plants'
|
|
String get plural => 'plants';
|
|
}
|
|
|
|
// Path: unit.pot
|
|
class Translations$unit$pot$en {
|
|
Translations$unit$pot$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'pot'
|
|
String get singular => 'pot';
|
|
|
|
/// en: 'pots'
|
|
String get plural => 'pots';
|
|
}
|
|
|
|
// Path: unit.tray
|
|
class Translations$unit$tray$en {
|
|
Translations$unit$tray$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'tray'
|
|
String get singular => 'tray';
|
|
|
|
/// en: 'trays'
|
|
String get plural => 'trays';
|
|
}
|
|
|
|
// Path: unit.grams
|
|
class Translations$unit$grams$en {
|
|
Translations$unit$grams$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'gram'
|
|
String get singular => 'gram';
|
|
|
|
/// en: 'grams'
|
|
String get plural => 'grams';
|
|
}
|
|
|
|
// Path: unit.count
|
|
class Translations$unit$count$en {
|
|
Translations$unit$count$en.internal(this._root);
|
|
|
|
final Translations _root; // ignore: unused_field
|
|
|
|
// Translations
|
|
|
|
/// en: 'seed'
|
|
String get singular => 'seed';
|
|
|
|
/// en: 'seeds'
|
|
String get plural => 'seeds';
|
|
}
|
|
|
|
/// The flat map containing all translations for locale <en>.
|
|
/// 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 Translations {
|
|
dynamic _flatMapFunction(String path) {
|
|
return switch (path) {
|
|
'app.title' => 'Tanemaki',
|
|
'common.save' => 'Save',
|
|
'common.cancel' => 'Cancel',
|
|
'common.delete' => 'Delete',
|
|
'common.edit' => 'Edit',
|
|
'common.type' => 'Type',
|
|
'inventory.title' => 'Inventory',
|
|
'inventory.searchHint' => 'Search seeds',
|
|
'inventory.empty' => 'No seeds yet. Tap + to add your first.',
|
|
'inventory.uncategorized' => 'Uncategorized',
|
|
'quickAdd.title' => 'Add a seed',
|
|
'quickAdd.labelField' => 'Name',
|
|
'quickAdd.labelRequired' => 'Give it a name',
|
|
'quickAdd.addPhoto' => 'Add photo',
|
|
'quickAdd.quantity' => 'How much?',
|
|
'quickAdd.more' => 'Add more…',
|
|
'quickAdd.save' => 'Save',
|
|
'quickAdd.cancel' => 'Cancel',
|
|
'detail.notFound' => 'This seed is no longer here.',
|
|
'detail.lots' => 'Lots',
|
|
'detail.noLots' => 'No lots yet.',
|
|
'detail.names' => 'Also known as',
|
|
'detail.notes' => 'Notes',
|
|
'detail.addLot' => 'Add lot',
|
|
'detail.editLot' => 'Edit lot',
|
|
'detail.deleteConfirm' => 'Delete this seed?',
|
|
'detail.year' => ({required Object year}) => 'Year ${year}',
|
|
'detail.noYear' => 'Year unknown',
|
|
'germination.title' => 'Germination',
|
|
'germination.add' => 'Add test',
|
|
'germination.sampleSize' => 'Sample size',
|
|
'germination.germinated' => 'Germinated',
|
|
'germination.none' => 'No germination tests yet.',
|
|
'germination.result' => ({required Object percent}) => '${percent}%',
|
|
'editVariety.title' => 'Edit seed',
|
|
'editVariety.name' => 'Name',
|
|
'editVariety.category' => 'Category',
|
|
'editVariety.notes' => 'Notes',
|
|
'editVariety.species' => 'Species (from catalog)',
|
|
'editVariety.speciesHint' => 'Search a species…',
|
|
'addLot.title' => 'Add lot',
|
|
'addLot.year' => 'Harvest year',
|
|
'addLot.quantity' => 'How much?',
|
|
'addLot.amount' => 'Amount',
|
|
'lotType.seed' => 'Seeds',
|
|
'lotType.plant' => 'Plants',
|
|
'unit.aFew' => 'a few',
|
|
'unit.some' => 'some',
|
|
'unit.plenty' => 'plenty',
|
|
'unit.pinch' => 'a pinch',
|
|
'unit.handful.singular' => 'handful',
|
|
'unit.handful.plural' => 'handfuls',
|
|
'unit.teaspoon.singular' => 'teaspoon',
|
|
'unit.teaspoon.plural' => 'teaspoons',
|
|
'unit.spoon.singular' => 'spoon',
|
|
'unit.spoon.plural' => 'spoons',
|
|
'unit.cup.singular' => 'cup',
|
|
'unit.cup.plural' => 'cups',
|
|
'unit.jar.singular' => 'jar',
|
|
'unit.jar.plural' => 'jars',
|
|
'unit.sack.singular' => 'sack',
|
|
'unit.sack.plural' => 'sacks',
|
|
'unit.packet.singular' => 'packet',
|
|
'unit.packet.plural' => 'packets',
|
|
'unit.cob.singular' => 'cob',
|
|
'unit.cob.plural' => 'cobs',
|
|
'unit.pod.singular' => 'pod',
|
|
'unit.pod.plural' => 'pods',
|
|
'unit.ear.singular' => 'ear',
|
|
'unit.ear.plural' => 'ears',
|
|
'unit.head.singular' => 'head',
|
|
'unit.head.plural' => 'heads',
|
|
'unit.fruit.singular' => 'fruit',
|
|
'unit.fruit.plural' => 'fruits',
|
|
'unit.bulb.singular' => 'bulb',
|
|
'unit.bulb.plural' => 'bulbs',
|
|
'unit.tuber.singular' => 'tuber',
|
|
'unit.tuber.plural' => 'tubers',
|
|
'unit.seedHead.singular' => 'seed head',
|
|
'unit.seedHead.plural' => 'seed heads',
|
|
'unit.bunch.singular' => 'bunch',
|
|
'unit.bunch.plural' => 'bunches',
|
|
'unit.plant.singular' => 'plant',
|
|
'unit.plant.plural' => 'plants',
|
|
'unit.pot.singular' => 'pot',
|
|
'unit.pot.plural' => 'pots',
|
|
'unit.tray.singular' => 'tray',
|
|
'unit.tray.plural' => 'trays',
|
|
'unit.grams.singular' => 'gram',
|
|
'unit.grams.plural' => 'grams',
|
|
'unit.count.singular' => 'seed',
|
|
'unit.count.plural' => 'seeds',
|
|
_ => null,
|
|
};
|
|
}
|
|
}
|