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.
172 lines
5.8 KiB
JSON
172 lines
5.8 KiB
JSON
{
|
|
"app": {
|
|
"title": "Tanemaki"
|
|
},
|
|
"common": {
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"delete": "Delete",
|
|
"edit": "Edit",
|
|
"type": "Type",
|
|
"comingSoon": "Coming soon"
|
|
},
|
|
"home": {
|
|
"tagline": "Share and grow local seeds",
|
|
"openMarket": "Open market",
|
|
"openMarketSubtitle": "Browse and exchange",
|
|
"yourInventory": "Your inventory",
|
|
"yourInventorySubtitle": "Manage your seeds"
|
|
},
|
|
"photo": {
|
|
"camera": "Take a photo",
|
|
"gallery": "Choose from gallery",
|
|
"setAsCover": "Set as cover",
|
|
"isCover": "Cover photo",
|
|
"deleteConfirm": "Delete this photo?"
|
|
},
|
|
"menu": {
|
|
"tagline": "your seed bank",
|
|
"inventory": "Inventory",
|
|
"market": "Market",
|
|
"profile": "Your profile",
|
|
"chat": "Chat",
|
|
"wishlist": "Wishlist",
|
|
"following": "Following",
|
|
"settings": "Settings"
|
|
},
|
|
"settings": {
|
|
"language": "Language",
|
|
"systemLanguage": "System language",
|
|
"langEs": "Español",
|
|
"langEn": "English",
|
|
"about": "About",
|
|
"aboutText": "Local-first, encrypted inventory for traditional seeds. AGPL-3.0.",
|
|
"aboutOpen": "About Tanemaki"
|
|
},
|
|
"about": {
|
|
"title": "About",
|
|
"kanji": "種まき",
|
|
"tagline": "A local-first, decentralized app for managing and sharing traditional seeds and seedlings.",
|
|
"intro": "Tanemaki (種まき, \"to sow / scatter seeds\" in Japanese; short name Tane, 種 \"seed\") helps people and collectives keep a friendly inventory of their seed bank, decide what they offer, and share it locally — without a central intermediary that could control, censor, or be fined for it. The goal is both practical and political: to support traditional seed varieties and push back against the seed monopoly.",
|
|
"heritage": "The name honors the old Japanese mutual-aid traditions around rice — yui (shared community labour) and tanomoshi (reciprocity funds) — that inspired the paper Plantare, the \"community currency for seed exchange\" (BAH-Semillero, 2009, CC-BY-SA). Tanemaki is the digital Plantare.",
|
|
"version": "Version",
|
|
"license": "License",
|
|
"licenseValue": "AGPL-3.0",
|
|
"website": "Website",
|
|
"openSourceLicenses": "Open-source licenses",
|
|
"openSourceLicensesSubtitle": "Third-party libraries and their licenses"
|
|
},
|
|
"inventory": {
|
|
"title": "Inventory",
|
|
"searchHint": "Search seeds",
|
|
"empty": "No seeds yet. Tap + to add your first.",
|
|
"noMatches": "No seeds match your filters.",
|
|
"clearFilters": "Clear filters",
|
|
"uncategorized": "Uncategorized"
|
|
},
|
|
"quickAdd": {
|
|
"title": "Add a seed",
|
|
"labelField": "Name",
|
|
"labelRequired": "Give it a name",
|
|
"addPhoto": "Add photo",
|
|
"quantity": "How much?",
|
|
"more": "Add more…",
|
|
"save": "Save",
|
|
"cancel": "Cancel"
|
|
},
|
|
"detail": {
|
|
"notFound": "This seed is no longer here.",
|
|
"lots": "Lots",
|
|
"noLots": "No lots yet.",
|
|
"names": "Also known as",
|
|
"addName": "Add name",
|
|
"links": "Links",
|
|
"addLink": "Add link",
|
|
"linkUrl": "URL",
|
|
"linkTitle": "Title (optional)",
|
|
"notes": "Notes",
|
|
"addLot": "Add lot",
|
|
"editLot": "Edit lot",
|
|
"deleteConfirm": "Delete this seed?",
|
|
"year": "Year {year}",
|
|
"noYear": "Year unknown"
|
|
},
|
|
"germination": {
|
|
"title": "Germination",
|
|
"add": "Add test",
|
|
"sampleSize": "Sample size",
|
|
"germinated": "Germinated",
|
|
"none": "No germination tests yet.",
|
|
"result": "{percent}%"
|
|
},
|
|
"editVariety": {
|
|
"title": "Edit seed",
|
|
"name": "Name",
|
|
"category": "Category",
|
|
"notes": "Notes",
|
|
"species": "Species (from catalog)",
|
|
"speciesHint": "Search a species…"
|
|
},
|
|
"addLot": {
|
|
"title": "Add lot",
|
|
"year": "Harvest date",
|
|
"quantity": "How much?",
|
|
"amount": "Amount"
|
|
},
|
|
"harvest": {
|
|
"pickTitle": "Select month / year",
|
|
"anyMonth": "Any month",
|
|
"noDate": "Set harvest date",
|
|
"monthNames": [
|
|
"January", "February", "March", "April", "May", "June",
|
|
"July", "August", "September", "October", "November", "December"
|
|
]
|
|
},
|
|
"lotType": {
|
|
"seed": "Seeds",
|
|
"plant": "Plant",
|
|
"seedling": "Seedling",
|
|
"tree": "Tree / shrub",
|
|
"bulb": "Bulb / tuber",
|
|
"cutting": "Cutting"
|
|
},
|
|
"presentation": {
|
|
"title": "Packaging",
|
|
"none": "Unspecified",
|
|
"pot": "Pot",
|
|
"tray": "Tray",
|
|
"plug": "Plug",
|
|
"bareRoot": "Bare-root",
|
|
"rootBall": "Root-ball"
|
|
},
|
|
"unit": {
|
|
"aFew": "a few",
|
|
"some": "some",
|
|
"plenty": "plenty",
|
|
"pinch": "a pinch",
|
|
"handful": { "singular": "handful", "plural": "handfuls" },
|
|
"teaspoon": { "singular": "teaspoon", "plural": "teaspoons" },
|
|
"spoon": { "singular": "spoon", "plural": "spoons" },
|
|
"cup": { "singular": "cup", "plural": "cups" },
|
|
"jar": { "singular": "jar", "plural": "jars" },
|
|
"sack": { "singular": "sack", "plural": "sacks" },
|
|
"packet": { "singular": "packet", "plural": "packets" },
|
|
"cob": { "singular": "cob", "plural": "cobs" },
|
|
"pod": { "singular": "pod", "plural": "pods" },
|
|
"ear": { "singular": "ear", "plural": "ears" },
|
|
"head": { "singular": "head", "plural": "heads" },
|
|
"fruit": { "singular": "fruit", "plural": "fruits" },
|
|
"bulb": { "singular": "bulb", "plural": "bulbs" },
|
|
"tuber": { "singular": "tuber", "plural": "tubers" },
|
|
"seedHead": { "singular": "seed head", "plural": "seed heads" },
|
|
"bunch": { "singular": "bunch", "plural": "bunches" },
|
|
"plant": { "singular": "plant", "plural": "plants" },
|
|
"pot": { "singular": "pot", "plural": "pots" },
|
|
"tray": { "singular": "tray", "plural": "trays" },
|
|
"seedling": { "singular": "seedling", "plural": "seedlings" },
|
|
"tree": { "singular": "tree", "plural": "trees" },
|
|
"cutting": { "singular": "cutting", "plural": "cuttings" },
|
|
"grams": { "singular": "gram", "plural": "grams" },
|
|
"count": { "singular": "seed", "plural": "seeds" }
|
|
}
|
|
}
|