fix(block2): plain-language sharing setup — no relay/server jargon
The market config leaked network jargon ('community servers / one address per
line'), confusing for the 10-80 audience (violates the human-words rule):
- Lead with a plain intro: what sharing does + a community you trust runs a
shared meeting point, no company in the middle.
- Bury the technical web address under an 'advanced' expander (most people won't
have one; 'leave empty if you don't have one yet').
- Human labels: 'Your area' (not 'Area code'), 'Web address' under advanced.
Market tests green.
This commit is contained in:
parent
cf6975b748
commit
98110a6474
8 changed files with 109 additions and 62 deletions
|
|
@ -334,16 +334,18 @@
|
|||
"title": "Seeds near you",
|
||||
"subtitle": "What others are sharing nearby",
|
||||
"notSetUp": "Sharing isn't set up yet",
|
||||
"notSetUpBody": "Add a community server and your area to see and share seeds nearby. Everything stays coarse — never your exact address.",
|
||||
"notSetUpBody": "Turn on sharing to see and give seeds to people near you. It stays rough — your zone, never your exact address.",
|
||||
"setUp": "Set up sharing",
|
||||
"searching": "Looking around your area…",
|
||||
"empty": "No seeds shared near you yet",
|
||||
"near": "Near you",
|
||||
"configTitle": "Sharing setup",
|
||||
"areaLabel": "Area code",
|
||||
"areaHelp": "Kept coarse on purpose — roughly your zone, never an exact spot.",
|
||||
"serversLabel": "Community servers",
|
||||
"serversHelp": "One address per line — run by seed networks or collectives, not a company.",
|
||||
"setupIntro": "Sharing with people nearby is optional. To turn it on, set your rough area and join a community you trust — a seed network or collective that runs a shared meeting point for passing messages. No company in the middle.",
|
||||
"areaLabel": "Your area",
|
||||
"areaHelp": "Kept rough on purpose — your zone, never an exact spot.",
|
||||
"serversAdvanced": "Join a community (advanced)",
|
||||
"serversHelp": "Your seed network or collective gives you a web address to connect to. Paste one per line. Leave empty if you don't have one yet.",
|
||||
"serversLabel": "Web address",
|
||||
"save": "Save",
|
||||
"saved": "Saved",
|
||||
"wanted": "Wanted"
|
||||
|
|
|
|||
|
|
@ -334,16 +334,18 @@
|
|||
"title": "Semillas cerca de ti",
|
||||
"subtitle": "Lo que otras personas comparten cerca",
|
||||
"notSetUp": "Aún no has configurado el compartir",
|
||||
"notSetUpBody": "Añade un servidor comunitario y tu zona para ver y compartir semillas cerca. Todo se mantiene aproximado — nunca tu dirección exacta.",
|
||||
"notSetUpBody": "Activa el compartir para ver y dar semillas a gente cercana. Se mantiene aproximado — tu zona, nunca tu dirección exacta.",
|
||||
"setUp": "Configurar el compartir",
|
||||
"searching": "Buscando por tu zona…",
|
||||
"empty": "Aún no hay semillas compartidas cerca de ti",
|
||||
"near": "Cerca de ti",
|
||||
"configTitle": "Configuración de compartir",
|
||||
"areaLabel": "Código de zona",
|
||||
"areaHelp": "Se mantiene aproximado a propósito — tu zona a grandes rasgos, nunca un punto exacto.",
|
||||
"serversLabel": "Servidores comunitarios",
|
||||
"serversHelp": "Una dirección por línea — de redes de semillas o colectivos, no de una empresa.",
|
||||
"setupIntro": "Compartir con gente cercana es opcional. Para activarlo, indica tu zona aproximada y únete a una comunidad de confianza — una red de semillas o un colectivo que mantiene un punto de encuentro compartido para pasar mensajes. Sin ninguna empresa en medio.",
|
||||
"areaLabel": "Tu zona",
|
||||
"areaHelp": "Se mantiene aproximado a propósito — tu zona, nunca un punto exacto.",
|
||||
"serversAdvanced": "Unirse a una comunidad (avanzado)",
|
||||
"serversHelp": "Tu red de semillas o colectivo te da una dirección web para conectarte. Pega una por línea. Déjalo vacío si aún no tienes ninguna.",
|
||||
"serversLabel": "Dirección web",
|
||||
"save": "Guardar",
|
||||
"saved": "Guardado",
|
||||
"wanted": "Busco"
|
||||
|
|
|
|||
|
|
@ -330,16 +330,18 @@
|
|||
"title": "Sementes perto de ti",
|
||||
"subtitle": "O que outras pessoas partilham por perto",
|
||||
"notSetUp": "Ainda não configuraste a partilha",
|
||||
"notSetUpBody": "Adiciona um servidor comunitário e a tua zona para ver e partilhar sementes por perto. Tudo fica aproximado — nunca a tua morada exata.",
|
||||
"notSetUpBody": "Ativa a partilha para ver e dar sementes a pessoas por perto. Mantém-se aproximado — a tua zona, nunca a tua morada exata.",
|
||||
"setUp": "Configurar a partilha",
|
||||
"searching": "A procurar pela tua zona…",
|
||||
"empty": "Ainda não há sementes partilhadas perto de ti",
|
||||
"near": "Perto de ti",
|
||||
"configTitle": "Configuração de partilha",
|
||||
"areaLabel": "Código de zona",
|
||||
"areaHelp": "Mantém-se aproximado de propósito — a tua zona em geral, nunca um ponto exato.",
|
||||
"serversLabel": "Servidores comunitários",
|
||||
"serversHelp": "Um endereço por linha — de redes de sementes ou coletivos, não de uma empresa.",
|
||||
"setupIntro": "Partilhar com pessoas por perto é opcional. Para ativar, indica a tua zona aproximada e junta-te a uma comunidade de confiança — uma rede de sementes ou um coletivo que mantém um ponto de encontro partilhado para passar mensagens. Sem nenhuma empresa no meio.",
|
||||
"areaLabel": "A tua zona",
|
||||
"areaHelp": "Mantém-se aproximado de propósito — a tua zona, nunca um ponto exato.",
|
||||
"serversAdvanced": "Juntar-te a uma comunidade (avançado)",
|
||||
"serversHelp": "A tua rede de sementes ou coletivo dá-te um endereço web para te ligares. Cola um por linha. Deixa vazio se ainda não tiveres nenhum.",
|
||||
"serversLabel": "Endereço web",
|
||||
"save": "Guardar",
|
||||
"saved": "Guardado",
|
||||
"wanted": "Procuro"
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
/// To regenerate, run: `dart run slang`
|
||||
///
|
||||
/// Locales: 3
|
||||
/// Strings: 923 (307 per locale)
|
||||
/// Strings: 929 (309 per locale)
|
||||
///
|
||||
/// Built on 2026-07-10 at 01:06 UTC
|
||||
/// Built on 2026-07-10 at 01:15 UTC
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
|
|
|||
|
|
@ -1061,8 +1061,8 @@ class Translations$market$en {
|
|||
/// en: 'Sharing isn't set up yet'
|
||||
String get notSetUp => 'Sharing isn\'t set up yet';
|
||||
|
||||
/// en: 'Add a community server and your area to see and share seeds nearby. Everything stays coarse — never your exact address.'
|
||||
String get notSetUpBody => 'Add a community server and your area to see and share seeds nearby. Everything stays coarse — never your exact address.';
|
||||
/// en: 'Turn on sharing to see and give seeds to people near you. It stays rough — your zone, never your exact address.'
|
||||
String get notSetUpBody => 'Turn on sharing to see and give seeds to people near you. It stays rough — your zone, never your exact address.';
|
||||
|
||||
/// en: 'Set up sharing'
|
||||
String get setUp => 'Set up sharing';
|
||||
|
|
@ -1079,17 +1079,23 @@ class Translations$market$en {
|
|||
/// en: 'Sharing setup'
|
||||
String get configTitle => 'Sharing setup';
|
||||
|
||||
/// en: 'Area code'
|
||||
String get areaLabel => 'Area code';
|
||||
/// en: 'Sharing with people nearby is optional. To turn it on, set your rough area and join a community you trust — a seed network or collective that runs a shared meeting point for passing messages. No company in the middle.'
|
||||
String get setupIntro => 'Sharing with people nearby is optional. To turn it on, set your rough area and join a community you trust — a seed network or collective that runs a shared meeting point for passing messages. No company in the middle.';
|
||||
|
||||
/// en: 'Kept coarse on purpose — roughly your zone, never an exact spot.'
|
||||
String get areaHelp => 'Kept coarse on purpose — roughly your zone, never an exact spot.';
|
||||
/// en: 'Your area'
|
||||
String get areaLabel => 'Your area';
|
||||
|
||||
/// en: 'Community servers'
|
||||
String get serversLabel => 'Community servers';
|
||||
/// en: 'Kept rough on purpose — your zone, never an exact spot.'
|
||||
String get areaHelp => 'Kept rough on purpose — your zone, never an exact spot.';
|
||||
|
||||
/// en: 'One address per line — run by seed networks or collectives, not a company.'
|
||||
String get serversHelp => 'One address per line — run by seed networks or collectives, not a company.';
|
||||
/// en: 'Join a community (advanced)'
|
||||
String get serversAdvanced => 'Join a community (advanced)';
|
||||
|
||||
/// en: 'Your seed network or collective gives you a web address to connect to. Paste one per line. Leave empty if you don't have one yet.'
|
||||
String get serversHelp => 'Your seed network or collective gives you a web address to connect to. Paste one per line. Leave empty if you don\'t have one yet.';
|
||||
|
||||
/// en: 'Web address'
|
||||
String get serversLabel => 'Web address';
|
||||
|
||||
/// en: 'Save'
|
||||
String get save => 'Save';
|
||||
|
|
@ -1854,16 +1860,18 @@ extension on Translations {
|
|||
'market.title' => 'Seeds near you',
|
||||
'market.subtitle' => 'What others are sharing nearby',
|
||||
'market.notSetUp' => 'Sharing isn\'t set up yet',
|
||||
'market.notSetUpBody' => 'Add a community server and your area to see and share seeds nearby. Everything stays coarse — never your exact address.',
|
||||
'market.notSetUpBody' => 'Turn on sharing to see and give seeds to people near you. It stays rough — your zone, never your exact address.',
|
||||
'market.setUp' => 'Set up sharing',
|
||||
'market.searching' => 'Looking around your area…',
|
||||
'market.empty' => 'No seeds shared near you yet',
|
||||
'market.near' => 'Near you',
|
||||
'market.configTitle' => 'Sharing setup',
|
||||
'market.areaLabel' => 'Area code',
|
||||
'market.areaHelp' => 'Kept coarse on purpose — roughly your zone, never an exact spot.',
|
||||
'market.serversLabel' => 'Community servers',
|
||||
'market.serversHelp' => 'One address per line — run by seed networks or collectives, not a company.',
|
||||
'market.setupIntro' => 'Sharing with people nearby is optional. To turn it on, set your rough area and join a community you trust — a seed network or collective that runs a shared meeting point for passing messages. No company in the middle.',
|
||||
'market.areaLabel' => 'Your area',
|
||||
'market.areaHelp' => 'Kept rough on purpose — your zone, never an exact spot.',
|
||||
'market.serversAdvanced' => 'Join a community (advanced)',
|
||||
'market.serversHelp' => 'Your seed network or collective gives you a web address to connect to. Paste one per line. Leave empty if you don\'t have one yet.',
|
||||
'market.serversLabel' => 'Web address',
|
||||
'market.save' => 'Save',
|
||||
'market.saved' => 'Saved',
|
||||
'market.wanted' => 'Wanted',
|
||||
|
|
|
|||
|
|
@ -604,16 +604,18 @@ class _Translations$market$es extends Translations$market$en {
|
|||
@override String get title => 'Semillas cerca de ti';
|
||||
@override String get subtitle => 'Lo que otras personas comparten cerca';
|
||||
@override String get notSetUp => 'Aún no has configurado el compartir';
|
||||
@override String get notSetUpBody => 'Añade un servidor comunitario y tu zona para ver y compartir semillas cerca. Todo se mantiene aproximado — nunca tu dirección exacta.';
|
||||
@override String get notSetUpBody => 'Activa el compartir para ver y dar semillas a gente cercana. Se mantiene aproximado — tu zona, nunca tu dirección exacta.';
|
||||
@override String get setUp => 'Configurar el compartir';
|
||||
@override String get searching => 'Buscando por tu zona…';
|
||||
@override String get empty => 'Aún no hay semillas compartidas cerca de ti';
|
||||
@override String get near => 'Cerca de ti';
|
||||
@override String get configTitle => 'Configuración de compartir';
|
||||
@override String get areaLabel => 'Código de zona';
|
||||
@override String get areaHelp => 'Se mantiene aproximado a propósito — tu zona a grandes rasgos, nunca un punto exacto.';
|
||||
@override String get serversLabel => 'Servidores comunitarios';
|
||||
@override String get serversHelp => 'Una dirección por línea — de redes de semillas o colectivos, no de una empresa.';
|
||||
@override String get setupIntro => 'Compartir con gente cercana es opcional. Para activarlo, indica tu zona aproximada y únete a una comunidad de confianza — una red de semillas o un colectivo que mantiene un punto de encuentro compartido para pasar mensajes. Sin ninguna empresa en medio.';
|
||||
@override String get areaLabel => 'Tu zona';
|
||||
@override String get areaHelp => 'Se mantiene aproximado a propósito — tu zona, nunca un punto exacto.';
|
||||
@override String get serversAdvanced => 'Unirse a una comunidad (avanzado)';
|
||||
@override String get serversHelp => 'Tu red de semillas o colectivo te da una dirección web para conectarte. Pega una por línea. Déjalo vacío si aún no tienes ninguna.';
|
||||
@override String get serversLabel => 'Dirección web';
|
||||
@override String get save => 'Guardar';
|
||||
@override String get saved => 'Guardado';
|
||||
@override String get wanted => 'Busco';
|
||||
|
|
@ -1256,16 +1258,18 @@ extension on TranslationsEs {
|
|||
'market.title' => 'Semillas cerca de ti',
|
||||
'market.subtitle' => 'Lo que otras personas comparten cerca',
|
||||
'market.notSetUp' => 'Aún no has configurado el compartir',
|
||||
'market.notSetUpBody' => 'Añade un servidor comunitario y tu zona para ver y compartir semillas cerca. Todo se mantiene aproximado — nunca tu dirección exacta.',
|
||||
'market.notSetUpBody' => 'Activa el compartir para ver y dar semillas a gente cercana. Se mantiene aproximado — tu zona, nunca tu dirección exacta.',
|
||||
'market.setUp' => 'Configurar el compartir',
|
||||
'market.searching' => 'Buscando por tu zona…',
|
||||
'market.empty' => 'Aún no hay semillas compartidas cerca de ti',
|
||||
'market.near' => 'Cerca de ti',
|
||||
'market.configTitle' => 'Configuración de compartir',
|
||||
'market.areaLabel' => 'Código de zona',
|
||||
'market.areaHelp' => 'Se mantiene aproximado a propósito — tu zona a grandes rasgos, nunca un punto exacto.',
|
||||
'market.serversLabel' => 'Servidores comunitarios',
|
||||
'market.serversHelp' => 'Una dirección por línea — de redes de semillas o colectivos, no de una empresa.',
|
||||
'market.setupIntro' => 'Compartir con gente cercana es opcional. Para activarlo, indica tu zona aproximada y únete a una comunidad de confianza — una red de semillas o un colectivo que mantiene un punto de encuentro compartido para pasar mensajes. Sin ninguna empresa en medio.',
|
||||
'market.areaLabel' => 'Tu zona',
|
||||
'market.areaHelp' => 'Se mantiene aproximado a propósito — tu zona, nunca un punto exacto.',
|
||||
'market.serversAdvanced' => 'Unirse a una comunidad (avanzado)',
|
||||
'market.serversHelp' => 'Tu red de semillas o colectivo te da una dirección web para conectarte. Pega una por línea. Déjalo vacío si aún no tienes ninguna.',
|
||||
'market.serversLabel' => 'Dirección web',
|
||||
'market.save' => 'Guardar',
|
||||
'market.saved' => 'Guardado',
|
||||
'market.wanted' => 'Busco',
|
||||
|
|
|
|||
|
|
@ -600,16 +600,18 @@ class _Translations$market$pt extends Translations$market$en {
|
|||
@override String get title => 'Sementes perto de ti';
|
||||
@override String get subtitle => 'O que outras pessoas partilham por perto';
|
||||
@override String get notSetUp => 'Ainda não configuraste a partilha';
|
||||
@override String get notSetUpBody => 'Adiciona um servidor comunitário e a tua zona para ver e partilhar sementes por perto. Tudo fica aproximado — nunca a tua morada exata.';
|
||||
@override String get notSetUpBody => 'Ativa a partilha para ver e dar sementes a pessoas por perto. Mantém-se aproximado — a tua zona, nunca a tua morada exata.';
|
||||
@override String get setUp => 'Configurar a partilha';
|
||||
@override String get searching => 'A procurar pela tua zona…';
|
||||
@override String get empty => 'Ainda não há sementes partilhadas perto de ti';
|
||||
@override String get near => 'Perto de ti';
|
||||
@override String get configTitle => 'Configuração de partilha';
|
||||
@override String get areaLabel => 'Código de zona';
|
||||
@override String get areaHelp => 'Mantém-se aproximado de propósito — a tua zona em geral, nunca um ponto exato.';
|
||||
@override String get serversLabel => 'Servidores comunitários';
|
||||
@override String get serversHelp => 'Um endereço por linha — de redes de sementes ou coletivos, não de uma empresa.';
|
||||
@override String get setupIntro => 'Partilhar com pessoas por perto é opcional. Para ativar, indica a tua zona aproximada e junta-te a uma comunidade de confiança — uma rede de sementes ou um coletivo que mantém um ponto de encontro partilhado para passar mensagens. Sem nenhuma empresa no meio.';
|
||||
@override String get areaLabel => 'A tua zona';
|
||||
@override String get areaHelp => 'Mantém-se aproximado de propósito — a tua zona, nunca um ponto exato.';
|
||||
@override String get serversAdvanced => 'Juntar-te a uma comunidade (avançado)';
|
||||
@override String get serversHelp => 'A tua rede de sementes ou coletivo dá-te um endereço web para te ligares. Cola um por linha. Deixa vazio se ainda não tiveres nenhum.';
|
||||
@override String get serversLabel => 'Endereço web';
|
||||
@override String get save => 'Guardar';
|
||||
@override String get saved => 'Guardado';
|
||||
@override String get wanted => 'Procuro';
|
||||
|
|
@ -1248,16 +1250,18 @@ extension on TranslationsPt {
|
|||
'market.title' => 'Sementes perto de ti',
|
||||
'market.subtitle' => 'O que outras pessoas partilham por perto',
|
||||
'market.notSetUp' => 'Ainda não configuraste a partilha',
|
||||
'market.notSetUpBody' => 'Adiciona um servidor comunitário e a tua zona para ver e partilhar sementes por perto. Tudo fica aproximado — nunca a tua morada exata.',
|
||||
'market.notSetUpBody' => 'Ativa a partilha para ver e dar sementes a pessoas por perto. Mantém-se aproximado — a tua zona, nunca a tua morada exata.',
|
||||
'market.setUp' => 'Configurar a partilha',
|
||||
'market.searching' => 'A procurar pela tua zona…',
|
||||
'market.empty' => 'Ainda não há sementes partilhadas perto de ti',
|
||||
'market.near' => 'Perto de ti',
|
||||
'market.configTitle' => 'Configuração de partilha',
|
||||
'market.areaLabel' => 'Código de zona',
|
||||
'market.areaHelp' => 'Mantém-se aproximado de propósito — a tua zona em geral, nunca um ponto exato.',
|
||||
'market.serversLabel' => 'Servidores comunitários',
|
||||
'market.serversHelp' => 'Um endereço por linha — de redes de sementes ou coletivos, não de uma empresa.',
|
||||
'market.setupIntro' => 'Partilhar com pessoas por perto é opcional. Para ativar, indica a tua zona aproximada e junta-te a uma comunidade de confiança — uma rede de sementes ou um coletivo que mantém um ponto de encontro partilhado para passar mensagens. Sem nenhuma empresa no meio.',
|
||||
'market.areaLabel' => 'A tua zona',
|
||||
'market.areaHelp' => 'Mantém-se aproximado de propósito — a tua zona, nunca um ponto exato.',
|
||||
'market.serversAdvanced' => 'Juntar-te a uma comunidade (avançado)',
|
||||
'market.serversHelp' => 'A tua rede de sementes ou coletivo dá-te um endereço web para te ligares. Cola um por linha. Deixa vazio se ainda não tiveres nenhum.',
|
||||
'market.serversLabel' => 'Endereço web',
|
||||
'market.save' => 'Guardar',
|
||||
'market.saved' => 'Guardado',
|
||||
'market.wanted' => 'Procuro',
|
||||
|
|
|
|||
|
|
@ -349,6 +349,11 @@ class _ConfigSheetState extends State<_ConfigSheet> {
|
|||
color: seedTitle,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
t.market.setupIntro,
|
||||
style: const TextStyle(color: seedMuted, fontSize: 13, height: 1.4),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
TextField(
|
||||
key: const Key('market.area'),
|
||||
|
|
@ -359,7 +364,24 @@ class _ConfigSheetState extends State<_ConfigSheet> {
|
|||
helperMaxLines: 3,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
const SizedBox(height: 8),
|
||||
// The technical web address lives under progressive disclosure —
|
||||
// most people won't have one, and jargon shouldn't greet them.
|
||||
Theme(
|
||||
data: Theme.of(context)
|
||||
.copyWith(dividerColor: Colors.transparent),
|
||||
child: ExpansionTile(
|
||||
key: const Key('market.serversAdvanced'),
|
||||
tilePadding: EdgeInsets.zero,
|
||||
childrenPadding: const EdgeInsets.only(bottom: 8),
|
||||
title: Text(
|
||||
t.market.serversAdvanced,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
color: seedOnSurface,
|
||||
),
|
||||
),
|
||||
children: [
|
||||
TextField(
|
||||
key: const Key('market.servers'),
|
||||
controller: _servers,
|
||||
|
|
@ -368,7 +390,10 @@ class _ConfigSheetState extends State<_ConfigSheet> {
|
|||
decoration: InputDecoration(
|
||||
labelText: t.market.serversLabel,
|
||||
helperText: t.market.serversHelp,
|
||||
helperMaxLines: 3,
|
||||
helperMaxLines: 4,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue