feat: cover seedlings (plantón) in copy + legal, backup cadence, server picker
Beta-tester feedback triage. The data model already had LotType.seedling as first class; the gaps were copy and UX. - Seedlings/plantones: broaden landing hero (EN/ES), in-app legal notice, and all legal texts (site + docs masters) from seeds-only to "seeds and seedlings", with a live-plant phytosanitary/transport caveat. Seeds stay the hero — targeted, not a blanket rename. - Backups: settings line now states the 7-day cadence explicitly; cadence lives in AutoBackupService.backupInterval as the single source for text and schedule. - Community servers: replace the manual wss:// text box with a checklist of the known servers (defaults visible/toggleable) plus an "add server" affordance with basic validation. No jargon in the UI. i18n across en/es/pt/fr/de/ast (ja falls back). Tests updated + a new server-picker widget test.
This commit is contained in:
parent
ab027a8779
commit
15385a26cf
36 changed files with 410 additions and 179 deletions
|
|
@ -281,8 +281,8 @@ class _Translations$backup$fr extends Translations$backup$en {
|
|||
// Translations
|
||||
@override String get title => 'Sauvegarde & restauration';
|
||||
@override String get autoBackupTitle => 'Sauvegardes automatiques';
|
||||
@override String autoBackupLast({required Object date}) => 'Dernière copie sauvegardée ${date}';
|
||||
@override String get autoBackupNone => 'Une copie est conservée automatiquement en arrière-plan';
|
||||
@override String autoBackupLast({required Object date, required Object days}) => 'Dernière copie ${date} · tous les ${days} jours';
|
||||
@override String autoBackupNone({required Object days}) => 'Une copie est conservée automatiquement tous les ${days} jours';
|
||||
@override String get exportJson => 'Enregistrer une sauvegarde';
|
||||
@override String get exportJsonSubtitle => 'Une copie complète à conserver précieusement, restaurer plus tard ou transférer sur un autre appareil';
|
||||
@override String get importJson => 'Restaurer une sauvegarde';
|
||||
|
|
@ -774,8 +774,10 @@ class _Translations$market$fr extends Translations$market$en {
|
|||
@override String get areaCodeLabel => 'Code de zone';
|
||||
@override String get areaCodeHint => 'Un code court comme sp3e9 — pas un nom de lieu';
|
||||
@override String get serversLabel => 'Serveurs communautaires';
|
||||
@override String get serversHelp => 'Une adresse par ligne (wss://…). Laissez les valeurs par défaut si vous n\'êtes pas sûr.';
|
||||
@override String get serversHelp => 'Choisissez les serveurs à utiliser. Laissez les valeurs par défaut si vous n\'êtes pas sûr.';
|
||||
@override String get serversAdvanced => 'Ajouter un autre serveur';
|
||||
@override String get serverAddress => 'Adresse du serveur';
|
||||
@override String get serverInvalid => 'Entrez une adresse valide (wss://…)';
|
||||
@override String get save => 'Enregistrer';
|
||||
@override String get saved => 'Enregistré';
|
||||
@override String get wanted => 'Recherché';
|
||||
|
|
@ -1005,8 +1007,8 @@ class _Translations$legal$fr extends Translations$legal$en {
|
|||
@override String get privacyBody => 'Tane fonctionne sans compte, et tout ce que vous enregistrez reste sur votre appareil, chiffré. Il n\'y a pas de publicités, pas de trackers, et pas de serveur Tane.\n\nRien n\'est partagé sauf si vous le choisissez : quand vous publiez une offre ou votre profil, ou envoyez un message, cela passe par des serveurs gérés par la communauté. Les offres ne portent qu\'une zone approximative — jamais votre adresse.\n\nCe que vous publiez est public, et des copies peuvent rester même après l\'avoir retiré — alors partagez avec prudence.';
|
||||
@override String get rulesTitle => 'Les règles du jeu';
|
||||
@override String get rulesBody => 'Tane est un outil, pas un magasin : les échanges sont convenus directement entre les gens, et personne ne prend de commission. Cela signifie aussi que vous êtes responsable de ce que vous offrez et envoyez.\n\nSur le marché : soyez honnête avec vos graines, n\'offrez que ce que vous pouvez partager, traitez les gens bien et ne faites pas de spam. Vous pouvez bloquer n\'importe qui et signaler les offres ou les gens qui enfreignent les règles — les signalements sont traités sur les serveurs communautaires.';
|
||||
@override String get seedsTitle => 'À propos du partage de semences';
|
||||
@override String get seedsBody => 'Donner et échanger des graines entre amateurs est largement reconnu dans la plupart des pays. La vente peut être différente : dans de nombreux endroits, vendre des graines de variétés non officiellement enregistrées est restreint — vérifiez votre législation locale avant de demander un prix.\n\nEnvoyer des graines dans un autre pays est souvent restreint aussi, et les variétés protégées commercialement ne peuvent pas être reproduites sans permission. En cas de doute, gardez-le local et faites-en un cadeau.';
|
||||
@override String get seedsTitle => 'À propos du partage de semences et de plants';
|
||||
@override String get seedsBody => 'Donner et échanger des graines entre amateurs est largement reconnu dans la plupart des pays. La vente peut être différente : dans de nombreux endroits, vendre des graines de variétés non officiellement enregistrées est restreint — vérifiez votre législation locale avant de demander un prix.\n\nEnvoyer des graines dans un autre pays est souvent restreint aussi, et les variétés protégées commercialement ne peuvent pas être reproduites sans permission. En cas de doute, gardez-le local et faites-en un cadeau.\n\nCela vaut aussi pour les plants et jeunes plantes, mais une plante vivante peut être soumise à des règles de transport et phytosanitaires plus strictes que les graines : la déplacer entre régions ou pays peut nécessiter des contrôles supplémentaires.';
|
||||
@override String get readFull => 'Lire les documents complets en ligne';
|
||||
}
|
||||
|
||||
|
|
@ -1492,8 +1494,8 @@ extension on TranslationsFr {
|
|||
'settings.aboutOpen' => 'À propos de Tane',
|
||||
'backup.title' => 'Sauvegarde & restauration',
|
||||
'backup.autoBackupTitle' => 'Sauvegardes automatiques',
|
||||
'backup.autoBackupLast' => ({required Object date}) => 'Dernière copie sauvegardée ${date}',
|
||||
'backup.autoBackupNone' => 'Une copie est conservée automatiquement en arrière-plan',
|
||||
'backup.autoBackupLast' => ({required Object date, required Object days}) => 'Dernière copie ${date} · tous les ${days} jours',
|
||||
'backup.autoBackupNone' => ({required Object days}) => 'Une copie est conservée automatiquement tous les ${days} jours',
|
||||
'backup.exportJson' => 'Enregistrer une sauvegarde',
|
||||
'backup.exportJsonSubtitle' => 'Une copie complète à conserver précieusement, restaurer plus tard ou transférer sur un autre appareil',
|
||||
'backup.importJson' => 'Restaurer une sauvegarde',
|
||||
|
|
@ -1800,8 +1802,10 @@ extension on TranslationsFr {
|
|||
'market.areaCodeLabel' => 'Code de zone',
|
||||
'market.areaCodeHint' => 'Un code court comme sp3e9 — pas un nom de lieu',
|
||||
'market.serversLabel' => 'Serveurs communautaires',
|
||||
'market.serversHelp' => 'Une adresse par ligne (wss://…). Laissez les valeurs par défaut si vous n\'êtes pas sûr.',
|
||||
'market.serversHelp' => 'Choisissez les serveurs à utiliser. Laissez les valeurs par défaut si vous n\'êtes pas sûr.',
|
||||
'market.serversAdvanced' => 'Ajouter un autre serveur',
|
||||
'market.serverAddress' => 'Adresse du serveur',
|
||||
'market.serverInvalid' => 'Entrez une adresse valide (wss://…)',
|
||||
'market.save' => 'Enregistrer',
|
||||
'market.saved' => 'Enregistré',
|
||||
'market.wanted' => 'Recherché',
|
||||
|
|
@ -1918,10 +1922,10 @@ extension on TranslationsFr {
|
|||
'sale.direction' => 'Vendu ou acheté ?',
|
||||
'sale.counterparty' => 'Avec qui ?',
|
||||
'sale.counterpartyHint' => 'Une personne ou un collectif (optionnel)',
|
||||
'sale.amount' => 'Montant',
|
||||
'sale.currency' => 'Monnaie',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'sale.amount' => 'Montant',
|
||||
'sale.currency' => 'Monnaie',
|
||||
'sale.currencyHint' => '€, Ğ1, heures… (optionnel)',
|
||||
'sale.hours' => 'heures',
|
||||
'sale.note' => 'Note (optionnel)',
|
||||
|
|
@ -1934,8 +1938,8 @@ extension on TranslationsFr {
|
|||
'legal.privacyBody' => 'Tane fonctionne sans compte, et tout ce que vous enregistrez reste sur votre appareil, chiffré. Il n\'y a pas de publicités, pas de trackers, et pas de serveur Tane.\n\nRien n\'est partagé sauf si vous le choisissez : quand vous publiez une offre ou votre profil, ou envoyez un message, cela passe par des serveurs gérés par la communauté. Les offres ne portent qu\'une zone approximative — jamais votre adresse.\n\nCe que vous publiez est public, et des copies peuvent rester même après l\'avoir retiré — alors partagez avec prudence.',
|
||||
'legal.rulesTitle' => 'Les règles du jeu',
|
||||
'legal.rulesBody' => 'Tane est un outil, pas un magasin : les échanges sont convenus directement entre les gens, et personne ne prend de commission. Cela signifie aussi que vous êtes responsable de ce que vous offrez et envoyez.\n\nSur le marché : soyez honnête avec vos graines, n\'offrez que ce que vous pouvez partager, traitez les gens bien et ne faites pas de spam. Vous pouvez bloquer n\'importe qui et signaler les offres ou les gens qui enfreignent les règles — les signalements sont traités sur les serveurs communautaires.',
|
||||
'legal.seedsTitle' => 'À propos du partage de semences',
|
||||
'legal.seedsBody' => 'Donner et échanger des graines entre amateurs est largement reconnu dans la plupart des pays. La vente peut être différente : dans de nombreux endroits, vendre des graines de variétés non officiellement enregistrées est restreint — vérifiez votre législation locale avant de demander un prix.\n\nEnvoyer des graines dans un autre pays est souvent restreint aussi, et les variétés protégées commercialement ne peuvent pas être reproduites sans permission. En cas de doute, gardez-le local et faites-en un cadeau.',
|
||||
'legal.seedsTitle' => 'À propos du partage de semences et de plants',
|
||||
'legal.seedsBody' => 'Donner et échanger des graines entre amateurs est largement reconnu dans la plupart des pays. La vente peut être différente : dans de nombreux endroits, vendre des graines de variétés non officiellement enregistrées est restreint — vérifiez votre législation locale avant de demander un prix.\n\nEnvoyer des graines dans un autre pays est souvent restreint aussi, et les variétés protégées commercialement ne peuvent pas être reproduites sans permission. En cas de doute, gardez-le local et faites-en un cadeau.\n\nCela vaut aussi pour les plants et jeunes plantes, mais une plante vivante peut être soumise à des règles de transport et phytosanitaires plus strictes que les graines : la déplacer entre régions ou pays peut nécessiter des contrôles supplémentaires.',
|
||||
'legal.readFull' => 'Lire les documents complets en ligne',
|
||||
'marketGate.title' => 'Avant de rejoindre le marché',
|
||||
'marketGate.intro' => 'Le marché est un espace partagé entre voisins. En continuant, vous acceptez quelques règles simples :',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue