Tane dialled its four default relays at launch, before anyone had asked for anything — an F-Droid reviewer spotted it, and they were right. The seed book needs no network at all, so the app should not have one until the person joins the sharing side. - SocialSettings gains a three-state `sharingEnabled`. `null` means "never asked", which is what lets `migrateSharingEnabled` keep an existing install exactly as it was: anyone past the intro was on a build that connected at launch, so they keep messaging, device sync and offer alerts. A fresh install starts fully offline. - bootstrap only starts the shared connection when sharing is on. The inbox/sync/plantaré/alert listeners are untouched: they react to a session, and none arrives. - SharingSwitch is the single place that moves the stored choice, the live connection and the flag the UI listens to, so they cannot drift. - Agreeing to the community rules is the opt-in — one consent surface, reached from the market or from the drawer's invitation. - SocialConnection.start is now idempotent and gains stop(), so turning sharing off goes offline immediately instead of at the next launch. - The social drawer entries stay visible but padlocked while sharing is off; tapping one explains what wakes up and offers to join. Hiding them would have kept the tool a secret. "Coming soon" is gone for good — everything it labelled is built. Covered by tests for the migration in both directions, start/stop lifecycle, the gate turning sharing on, the invitation, and the drawer in all three states (no social layer / off / on).
46 lines
1.3 KiB
JSON
46 lines
1.3 KiB
JSON
{
|
|
"app": {
|
|
"title": "Tane"
|
|
},
|
|
"common": {
|
|
"save": "保存",
|
|
"cancel": "キャンセル",
|
|
"delete": "削除",
|
|
"edit": "編集",
|
|
"type": "種類",
|
|
"offline": "オフラインです — 共有を一時停止しています"
|
|
},
|
|
"menu": {
|
|
"tagline": "あなたの種子バンク",
|
|
"inventory": "在庫",
|
|
"market": "マーケット",
|
|
"profile": "プロフィール",
|
|
"chat": "チャット",
|
|
"wishlist": "お気に入り",
|
|
"following": "フォロー中",
|
|
"calendar": "カレンダー",
|
|
"settings": "設定"
|
|
},
|
|
"settings": {
|
|
"language": "言語",
|
|
"systemLanguage": "システムの言語",
|
|
"langEs": "Español",
|
|
"langEn": "English",
|
|
"langPt": "Português",
|
|
"langPtBr": "Português (Brasil)",
|
|
"langAst": "Asturianu",
|
|
"langFr": "Français",
|
|
"langDe": "Deutsch",
|
|
"langJa": "日本語",
|
|
"about": "このアプリについて",
|
|
"aboutText": "在来種のためのローカルファースト・暗号化在庫管理。AGPL-3.0。",
|
|
"aboutOpen": "Tane について"
|
|
},
|
|
"home": {
|
|
"tagline": "地域の種を分かち合い、育てよう",
|
|
"openMarket": "マーケット",
|
|
"openMarketSubtitle": "近くの種を見つけて分かち合う",
|
|
"yourInventory": "あなたの在庫",
|
|
"yourInventorySubtitle": "種を管理する"
|
|
}
|
|
}
|