You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a RegisterScreen with email + password. Rework the final onboarding
slide into a three-tier hierarchy: primary Create account, secondary Log
in, tertiary Skip for now. Mirror that hierarchy on the home sheet guest
state and in Settings > Account so guests can register from anywhere.
Login/Register screens accept an onSuccess callback so onboarding
completes after either auth path succeeds.
Restores the pre-paint-mode onboarding copy (anonymous-session bullet,
"use without account" wording) now that painting is available on iOS.
"onboarding1Body": "Male mit dem Pinsel auf der Karte wo du gerne Rad fährst und wo du lieber fernbleiben möchtest. beebeebike plant daraus Radrouten nach deinen Wünschen.",
65
+
"onboarding1Body": "Male mit dem Pinsel auf der Karte wo du gerne Rad fährst und wo es keinen Spaß macht. beebeebike plant dann Radrouten nach deinen Wünschen.",
58
66
"onboarding2Headline": "Was wir speichern",
59
-
"onboarding2Bullet1": "Deine Bewertungen, gespeicherten Standorte, E-Mail und Passwort-Hash liegen auf einem Hetzner-Server in Deutschland.",
60
-
"onboarding2Bullet2": "Ortssuche: Deine Eingabe wird über unseren Server an den Geocoding-Dienst Photon (betrieben von der Komoot GmbH, Deutschland) weitergeleitet. Deine Konto-Daten werden dabei nicht übertragen.",
67
+
"onboarding2Bullet1": "Deine Bewertungen, deine gespeicherten Standorte und — wenn du einen Account machst — deine E-Mail plus Passwort-Hash liegen auf einem Server in Deutschland.",
68
+
"onboarding2Bullet2": "Ortssuche: Deine Eingabe wird über unseren Server an den Geocoding-Dienst Photon (betrieben von der Komoot GmbH, Deutschland) weitergeleitet. Konto-Daten werden dabei nicht übertragen.",
69
+
"onboarding2Bullet3": "Ohne Konto bleibst du anonym — wir speichern nur eine zufällige Session-ID.",
61
70
"onboarding2Bullet4": "Du kannst dein Konto jederzeit in den Einstellungen löschen. Damit werden alle serverseitig gespeicherten Daten entfernt.",
62
71
"onboarding3Headline": "Am Rechner malen, am Rad fahren",
63
-
"onboarding3Body": "Male deine Bewertungen am Rechner auf beebeebike.com — sie landen automatisch auf dem Handy. Zum Loslegen einloggen.",
72
+
"onboarding3Body": "Du kannst beebeebike sofort anonym nutzen. Mit einem kostenlosen Konto kannst du auf beebeebike.com am Rechner schneller malen — deine Bewertungen landen automatisch auf dem Handy.",
Copy file name to clipboardExpand all lines: mobile/lib/l10n/app_en.arb
+12-3Lines changed: 12 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,12 @@
13
13
"loginErrorEmptyPassword": "Enter your password",
14
14
"loginErrorInvalid": "Invalid email or password",
15
15
16
+
"registerTitle": "Create account",
17
+
"registerSubmit": "Create account",
18
+
"registerErrorPasswordTooShort": "Password must be at least 8 characters",
19
+
"registerErrorEmailTaken": "An account with this email already exists",
20
+
"registerErrorGeneric": "Could not create account. Please try again.",
21
+
16
22
"settingsTitle": "Settings",
17
23
"settingsGuest": "Guest",
18
24
"settingsHome": "Home",
@@ -49,18 +55,21 @@
49
55
"onboardingNext": "Next",
50
56
"onboardingFinish": "Let's go",
51
57
"onboardingLogin": "Sign in",
58
+
"onboardingCreateAccount": "Create account",
59
+
"onboardingSkip": "Skip for now",
52
60
"onboardingPrivacyLink": "Full privacy policy",
53
61
"onboardingPrivacyTitle": "Privacy",
54
62
"onboardingPrivacyOpenBrowser": "Open in browser",
55
63
"onboardingPrivacyLoadError": "Could not load the privacy policy.",
56
64
"onboarding1Headline": "Paint your favourite routes",
57
65
"onboarding1Body": "Paint on the map where you like to ride and where you'd rather avoid. beebeebike turns that into bike routes that match your taste.",
58
66
"onboarding2Headline": "What we store",
59
-
"onboarding2Bullet1": "Your ratings, saved places, email and password hash live on a Hetzner server in Germany.",
60
-
"onboarding2Bullet2": "Place search: your query is forwarded through our server to the Photon geocoder (run by Komoot GmbH, Germany). Your account data is not sent along.",
67
+
"onboarding2Bullet1": "Your ratings, saved places and — if you register an account — your email plus a password hash live on a server in Germany.",
68
+
"onboarding2Bullet2": "Place search: your query is forwarded through our server to the Photon geocoder (run by Komoot GmbH, Germany). No account data is sent along.",
69
+
"onboarding2Bullet3": "Without an account you stay anonymous — we only set a random session ID.",
61
70
"onboarding2Bullet4": "You can delete your account anytime in Settings. All server-side data is removed with it.",
62
71
"onboarding3Headline": "Paint on the desktop, ride with your phone",
63
-
"onboarding3Body": "Paint your ratings on beebeebike.com in the browser — they sync to your phone automatically. Sign in to get started.",
72
+
"onboarding3Body": "You can use beebeebike right away anonymously. With a free account you can paint faster on beebeebike.com in the browser — your ratings sync to the phone automatically.",
Copy file name to clipboardExpand all lines: mobile/lib/l10n/generated/app_localizations.dart
+51-3Lines changed: 51 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -152,6 +152,36 @@ abstract class AppLocalizations {
152
152
/// **'Invalid email or password'**
153
153
Stringget loginErrorInvalid;
154
154
155
+
/// No description provided for @registerTitle.
156
+
///
157
+
/// In en, this message translates to:
158
+
/// **'Create account'**
159
+
Stringget registerTitle;
160
+
161
+
/// No description provided for @registerSubmit.
162
+
///
163
+
/// In en, this message translates to:
164
+
/// **'Create account'**
165
+
Stringget registerSubmit;
166
+
167
+
/// No description provided for @registerErrorPasswordTooShort.
168
+
///
169
+
/// In en, this message translates to:
170
+
/// **'Password must be at least 8 characters'**
171
+
Stringget registerErrorPasswordTooShort;
172
+
173
+
/// No description provided for @registerErrorEmailTaken.
174
+
///
175
+
/// In en, this message translates to:
176
+
/// **'An account with this email already exists'**
177
+
Stringget registerErrorEmailTaken;
178
+
179
+
/// No description provided for @registerErrorGeneric.
180
+
///
181
+
/// In en, this message translates to:
182
+
/// **'Could not create account. Please try again.'**
183
+
Stringget registerErrorGeneric;
184
+
155
185
/// No description provided for @settingsTitle.
156
186
///
157
187
/// In en, this message translates to:
@@ -344,6 +374,18 @@ abstract class AppLocalizations {
344
374
/// **'Sign in'**
345
375
Stringget onboardingLogin;
346
376
377
+
/// No description provided for @onboardingCreateAccount.
378
+
///
379
+
/// In en, this message translates to:
380
+
/// **'Create account'**
381
+
Stringget onboardingCreateAccount;
382
+
383
+
/// No description provided for @onboardingSkip.
384
+
///
385
+
/// In en, this message translates to:
386
+
/// **'Skip for now'**
387
+
Stringget onboardingSkip;
388
+
347
389
/// No description provided for @onboardingPrivacyLink.
348
390
///
349
391
/// In en, this message translates to:
@@ -389,15 +431,21 @@ abstract class AppLocalizations {
389
431
/// No description provided for @onboarding2Bullet1.
390
432
///
391
433
/// In en, this message translates to:
392
-
/// **'Your ratings, saved places, email and password hash live on a Hetzner server in Germany.'**
434
+
/// **'Your ratings, saved places and — only with an account — your email plus a password hash live on a Hetzner server in Germany.'**
393
435
Stringget onboarding2Bullet1;
394
436
395
437
/// No description provided for @onboarding2Bullet2.
396
438
///
397
439
/// In en, this message translates to:
398
-
/// **'Place search: your query is forwarded through our server to the Photon geocoder (run by Komoot GmbH, Germany). Your account data is not sent along.'**
440
+
/// **'Place search: your query is forwarded through our server to the Photon geocoder (run by Komoot GmbH, Germany). No account data is sent along.'**
399
441
Stringget onboarding2Bullet2;
400
442
443
+
/// No description provided for @onboarding2Bullet3.
444
+
///
445
+
/// In en, this message translates to:
446
+
/// **'Without an account you stay anonymous — we only set a random session ID.'**
447
+
Stringget onboarding2Bullet3;
448
+
401
449
/// No description provided for @onboarding2Bullet4.
402
450
///
403
451
/// In en, this message translates to:
@@ -413,7 +461,7 @@ abstract class AppLocalizations {
413
461
/// No description provided for @onboarding3Body.
414
462
///
415
463
/// In en, this message translates to:
416
-
/// **'Paint your ratings on beebeebike.com in the browser — they sync to your phone automatically. Sign in to get started.'**
464
+
/// **'You can use beebeebike right away without an account. With a free account you can paint faster on beebeebike.com in the browser — your ratings sync to the phone automatically.'**
@@ -161,11 +185,15 @@ class AppLocalizationsDe extends AppLocalizations {
161
185
162
186
@override
163
187
Stringget onboarding2Bullet1 =>
164
-
'Deine Bewertungen, gespeicherten Standorte, E-Mail und Passwort-Hash liegen auf einem Hetzner-Server in Deutschland.';
188
+
'Deine Bewertungen, deine gespeicherten Standorte und — nur mit Konto — deine E-Mail plus Passwort-Hash liegen auf einem Hetzner-Server in Deutschland.';
165
189
166
190
@override
167
191
Stringget onboarding2Bullet2 =>
168
-
'Ortssuche: Deine Eingabe wird über unseren Server an den Geocoding-Dienst Photon (betrieben von der Komoot GmbH, Deutschland) weitergeleitet. Deine Konto-Daten werden dabei nicht übertragen.';
192
+
'Ortssuche: Deine Eingabe wird über unseren Server an den Geocoding-Dienst Photon (betrieben von der Komoot GmbH, Deutschland) weitergeleitet. Konto-Daten werden dabei nicht übertragen.';
193
+
194
+
@override
195
+
Stringget onboarding2Bullet3 =>
196
+
'Ohne Konto bleibst du anonym — wir setzen nur eine zufällige Sitzungs-ID.';
169
197
170
198
@override
171
199
Stringget onboarding2Bullet4 =>
@@ -176,7 +204,7 @@ class AppLocalizationsDe extends AppLocalizations {
176
204
177
205
@override
178
206
Stringget onboarding3Body =>
179
-
'Male deine Bewertungen am Rechner auf beebeebike.com — sie landen automatisch auf dem Handy. Zum Loslegen einloggen.';
207
+
'Du kannst beebeebike sofort ohne Konto nutzen. Mit einem kostenlosen Konto kannst du auf beebeebike.com am Rechner schneller malen — deine Bewertungen landen automatisch auf dem Handy.';
@@ -159,11 +183,15 @@ class AppLocalizationsEn extends AppLocalizations {
159
183
160
184
@override
161
185
Stringget onboarding2Bullet1 =>
162
-
'Your ratings, saved places, email and password hash live on a Hetzner server in Germany.';
186
+
'Your ratings, saved places and — only with an account — your email plus a password hash live on a Hetzner server in Germany.';
163
187
164
188
@override
165
189
Stringget onboarding2Bullet2 =>
166
-
'Place search: your query is forwarded through our server to the Photon geocoder (run by Komoot GmbH, Germany). Your account data is not sent along.';
190
+
'Place search: your query is forwarded through our server to the Photon geocoder (run by Komoot GmbH, Germany). No account data is sent along.';
191
+
192
+
@override
193
+
Stringget onboarding2Bullet3 =>
194
+
'Without an account you stay anonymous — we only set a random session ID.';
167
195
168
196
@override
169
197
Stringget onboarding2Bullet4 =>
@@ -175,7 +203,7 @@ class AppLocalizationsEn extends AppLocalizations {
175
203
176
204
@override
177
205
Stringget onboarding3Body =>
178
-
'Paint your ratings on beebeebike.com in the browser — they sync to your phone automatically. Sign in to get started.';
206
+
'You can use beebeebike right away without an account. With a free account you can paint faster on beebeebike.com in the browser — your ratings sync to the phone automatically.';
0 commit comments