diff --git a/apps/app_seeds/lib/i18n/en.i18n.json b/apps/app_seeds/lib/i18n/en.i18n.json index afa8dfa..7d60beb 100644 --- a/apps/app_seeds/lib/i18n/en.i18n.json +++ b/apps/app_seeds/lib/i18n/en.i18n.json @@ -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" diff --git a/apps/app_seeds/lib/i18n/es.i18n.json b/apps/app_seeds/lib/i18n/es.i18n.json index e783be2..5a86fc4 100644 --- a/apps/app_seeds/lib/i18n/es.i18n.json +++ b/apps/app_seeds/lib/i18n/es.i18n.json @@ -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" diff --git a/apps/app_seeds/lib/i18n/pt.i18n.json b/apps/app_seeds/lib/i18n/pt.i18n.json index 5d6d5b5..0937455 100644 --- a/apps/app_seeds/lib/i18n/pt.i18n.json +++ b/apps/app_seeds/lib/i18n/pt.i18n.json @@ -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" diff --git a/apps/app_seeds/lib/i18n/strings.g.dart b/apps/app_seeds/lib/i18n/strings.g.dart index 05d30f8..d704ee1 100644 --- a/apps/app_seeds/lib/i18n/strings.g.dart +++ b/apps/app_seeds/lib/i18n/strings.g.dart @@ -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 diff --git a/apps/app_seeds/lib/i18n/strings_en.g.dart b/apps/app_seeds/lib/i18n/strings_en.g.dart index 21d8709..50de527 100644 --- a/apps/app_seeds/lib/i18n/strings_en.g.dart +++ b/apps/app_seeds/lib/i18n/strings_en.g.dart @@ -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', diff --git a/apps/app_seeds/lib/i18n/strings_es.g.dart b/apps/app_seeds/lib/i18n/strings_es.g.dart index a3ac6ee..979d1b4 100644 --- a/apps/app_seeds/lib/i18n/strings_es.g.dart +++ b/apps/app_seeds/lib/i18n/strings_es.g.dart @@ -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', diff --git a/apps/app_seeds/lib/i18n/strings_pt.g.dart b/apps/app_seeds/lib/i18n/strings_pt.g.dart index 592db84..e00303a 100644 --- a/apps/app_seeds/lib/i18n/strings_pt.g.dart +++ b/apps/app_seeds/lib/i18n/strings_pt.g.dart @@ -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', diff --git a/apps/app_seeds/lib/ui/market_screen.dart b/apps/app_seeds/lib/ui/market_screen.dart index b5fde6c..ea73486 100644 --- a/apps/app_seeds/lib/ui/market_screen.dart +++ b/apps/app_seeds/lib/ui/market_screen.dart @@ -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,16 +364,36 @@ class _ConfigSheetState extends State<_ConfigSheet> { helperMaxLines: 3, ), ), - const SizedBox(height: 16), - TextField( - key: const Key('market.servers'), - controller: _servers, - minLines: 2, - maxLines: 4, - decoration: InputDecoration( - labelText: t.market.serversLabel, - helperText: t.market.serversHelp, - helperMaxLines: 3, + 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, + minLines: 2, + maxLines: 4, + decoration: InputDecoration( + labelText: t.market.serversLabel, + helperText: t.market.serversHelp, + helperMaxLines: 4, + ), + ), + ], ), ), const SizedBox(height: 20),