From 95b8fd58058f090263409bbd2e056fbe37f5b211 Mon Sep 17 00:00:00 2001 From: Angel de la Torre Date: Wed, 25 Feb 2026 11:13:33 -0800 Subject: [PATCH 1/5] refactor(landing): restructure translation strings and controller data Replace role-based i18n keys (learn/organise/campaign) with section-based keys (hero, how-it-works, fixometer, cta-banner). Update fixitclinic instance copy. Controller adds wasteTotalLbs, volunteerCount, and groupCount to the view and converts CO2 to pounds. Co-Authored-By: Claude Opus 4.6 --- app/Http/Controllers/HomeController.php | 13 ++++- lang/instances/base/en/landing.php | 67 ++++++++++++----------- lang/instances/fixitclinic/en/landing.php | 9 ++- 3 files changed, 49 insertions(+), 40 deletions(-) diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index c8f9b7fb90..25bec1658c 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -21,12 +21,21 @@ public function index(Request $request) // We're logged out. Render the landing page. $stats = Fixometer::loginRegisterStats(); $deviceCount = array_key_exists(0, $stats['device_count_status']) ? $stats['device_count_status'][0]->counter : 0; + $wasteTotal = $stats['waste_stats'][0]->powered_waste + $stats['waste_stats'][0]->unpowered_waste; + + $volunteerCount = 0; + foreach ($stats['allparties'] as $party) { + $volunteerCount += $party->pax; + } return view('landing', [ - 'co2Total' => $stats['waste_stats'][0]->powered_footprint + $stats['waste_stats'][0]->unpowered_footprint, - 'wasteTotal' => $stats['waste_stats'][0]->powered_waste + $stats['waste_stats'][0]->unpowered_waste, + 'co2Total' => round(($stats['waste_stats'][0]->powered_footprint + $stats['waste_stats'][0]->unpowered_footprint) * 2.20462), + 'wasteTotal' => $wasteTotal, + 'wasteTotalLbs' => round($wasteTotal * 2.20462), 'partiesCount' => count($stats['allparties']), 'deviceCount' => $deviceCount, + 'volunteerCount' => $volunteerCount, + 'groupCount' => Group::count(), ]); } } diff --git a/lang/instances/base/en/landing.php b/lang/instances/base/en/landing.php index 5f35c42c00..81749a816b 100644 --- a/lang/instances/base/en/landing.php +++ b/lang/instances/base/en/landing.php @@ -1,37 +1,38 @@ 'Welcome to Restarters!', - 'intro' => 'We are a global network of people who help others repair at community events.', - 'join' => 'Join us', - 'login' => 'Log in', - 'learn' => 'Learn and share repair skills with others', - 'landing_1_alt' => 'Repair Skills (credit Mark Phillips)', - 'landing_2_alt' => 'Restart Party (credit Mark Phillips)', - 'landing_3_alt' => 'Restart Crowd (credit Mark Phillips)', - 'repair_skills' => 'Brush up on your repair skills with our repair wiki', - 'repair_advice' => 'Get or share repair advice on the forum', - 'repair_group' => 'Follow your local community repair group', - 'repair_start' => 'Start repairing', - 'organise' => 'Organize community repair events', - 'organise_advice' => 'Get advice and support from other organizers', - 'organise_manage' => 'Manage your group and find volunteers', - 'organise_publicise' => 'Publicise repair events and measure your impact', - 'organise_start' => 'Start organizing', - 'campaign' => 'Bring down the barriers to repair', - 'campaign_join' => 'Keep up with the global Right to Repair movement', - 'campaign_barriers' => 'Document the barriers to repair', - 'campaign_data' => 'Analyse repair data', - 'campaign_start' => 'Join the movement', - 'need_more' => 'Need more?', - 'network' => 'Empower your network', - 'network_blurb' => 'If you co-ordinate a network of community repair groups, we also offer affordable, custom packages to make your work easier.', - 'network_tools' => 'Give your groups access to event management and GDPR-compliant communication tools', - 'network_events' => 'Display your groups and events on your website automatically', - 'network_record' => 'Allow your volunteers to easily record repair data', - 'network_impact' => 'Measure and track your network\'s overall impact', - 'network_brand' => 'Custom-branding and localisation: use your logo and language', - 'network_power' => 'Help power the Right to Repair movement', - 'network_start' => 'Get in touch', - 'network_start_url' => 'https://therestartproject.org/contact', + // Hero + 'title' => 'The Platform for Community Repair Organizers', + 'subtitle' => 'Everything you need to run successful repair events and measure your impact.', + 'intro' => 'Schedule events, recruit volunteers, log repair data, and automatically calculate the environmental impact of your community\'s work. Join thousands of organizers worldwide.', + 'cta_primary' => 'START YOUR GROUP', + 'cta_secondary' => 'LOG IN', + + // How It Works + 'how_title' => 'How It Works', + 'how_step1_title' => 'Create Your Group', + 'how_step1_desc' => 'Create and publicize community repair events, coordinate volunteers, and get support from other organizers.', + 'how_step2_title' => 'Run Events', + 'how_step2_desc' => 'Log repair data from your events and automatically calculate waste diversion and CO2 savings to share with funders.', + 'how_step3_title' => 'Grow Your Community', + 'how_step3_desc' => 'Connect with a global network of repair organizers, find skilled volunteers, and access repair guides and forums.', + + // Fix-O-Meter + 'fixometer_title' => 'Our Global Impact', + 'fixometer_waste' => 'Waste diverted from landfills', + 'fixometer_co2' => 'CO2 emissions prevented', + 'fixometer_devices' => 'Devices fixed', + 'fixometer_volunteers' => 'Volunteers', + 'fixometer_events' => 'Events held', + 'fixometer_disclaimer' => 'Impact figures are estimates based on our repair data.', + + // Final CTA + 'cta_banner_title' => 'Ready to organize your community?', + 'cta_banner_desc' => 'Join thousands of repair organizers making a difference.', + + // Landing images + 'landing_1_alt' => 'Community repair event with organizers and volunteers', + 'landing_2_alt' => 'Volunteers logging repair data at an event', + 'landing_3_alt' => 'Group of repair organizers collaborating', + ]; diff --git a/lang/instances/fixitclinic/en/landing.php b/lang/instances/fixitclinic/en/landing.php index 007081e8f6..b1d3e7ac87 100644 --- a/lang/instances/fixitclinic/en/landing.php +++ b/lang/instances/fixitclinic/en/landing.php @@ -1,11 +1,10 @@ 'Welcome to the Repair Event Locator!', - 'intro' => "We’re a global network of repair-minded people helping others connect with repair events in their communities.

-Want to organize an event, volunteer your skills, or get something fixed? We’ve got you covered.", + 'title' => 'Welcome to the Community Repair Organizer', + 'intro' => 'Schedule events, recruit volunteers, log repair data, and automatically calculate the environmental impact of your community\'s work. Join thousands of organizers worldwide.', 'landing_1_alt' => 'People gathered around tables repairing electronic devices and textiles at a community repair event.', 'landing_2_alt' => 'Two young girls working together to repair a video game controller using small tools.', 'landing_3_alt' => 'People gathered around a table using tools to repair electronic devices, focusing on smartphone components.', - 'network_start_url' => 'mailto:community@ifixit.com' -]; \ No newline at end of file + 'network_start_url' => 'mailto:community@ifixit.com', +]; From c5a6815cb0d82bee6ed8e05e2a2a31e59de911ab Mon Sep 17 00:00:00 2001 From: Angel de la Torre Date: Wed, 25 Feb 2026 11:13:59 -0800 Subject: [PATCH 2/5] feat(landing): redesign landing page with Fix-O-Meter and new layout New SCSS stylesheet with .fixometer, .hero--split, .how-it-works, .cta-banner, and .landing-header components. Full template rewrite replacing the three role-based cards with Fix-O-Meter hero, split hero, How It Works, and CTA banner. Header partial simplified from stats display to logo + nav links. Co-Authored-By: Claude Opus 4.6 --- resources/sass/_landing.scss | 395 ++++++++++++++++++++++++ resources/sass/app.scss | 1 + resources/views/includes/info.blade.php | 97 +----- resources/views/landing.blade.php | 326 ++++++------------- 4 files changed, 505 insertions(+), 314 deletions(-) create mode 100644 resources/sass/_landing.scss diff --git a/resources/sass/_landing.scss b/resources/sass/_landing.scss new file mode 100644 index 0000000000..bb391a22fd --- /dev/null +++ b/resources/sass/_landing.scss @@ -0,0 +1,395 @@ +// Landing page styles + +.landing-page { + padding-top: 31px; +} + +.landing-page h1, +.landing-page h2, +.landing-page h3 { + font-weight: bold; +} + +// ─── Header ────────────────────────────────────────────────────────────────── + +.landing-header { + display: flex; + width: 100%; + align-items: center; + justify-content: space-between; + margin: 10px 0 20px; + + @media (max-width: 767px) { + margin: 10px 0; + } +} + +.landing-header__logo { + display: flex; + align-items: center; +} + +.landing-header__links { + display: flex; + align-items: center; + gap: 20px; + font-family: 'Open Sans', sans-serif; + font-size: 16px; + + a { + color: $brand; + text-decoration: none; + font-weight: 700; + + &:hover { + text-decoration: underline; + } + } +} + +// ─── Fix-O-Meter Hero ──────────────────────────────────────────────────────── + +.fixometer { + padding: 30px 0 50px; + margin-bottom: 0; + background: transparent; +} + +.fixometer__header { + margin-bottom: 16px; +} + +.fixometer__title { + text-align: center; + font-family: 'Asap', sans-serif; + font-weight: 700; + font-size: 28px; + margin-bottom: 30px; + + @media (max-width: 767px) { + font-size: 24px; + } +} + +.fixometer__grid { + display: grid; + grid-template-columns: 1fr; + gap: 16px; + + @media (min-width: 576px) { + grid-template-columns: repeat(2, 1fr); + } + + @media (min-width: 992px) { + grid-template-columns: repeat(5, 1fr); + } +} + +.fixometer__card { + display: grid; + grid-template-rows: 46px auto auto; + justify-items: center; + align-content: start; + row-gap: 8px; + padding: 24px 16px; + border: 1px solid black; + box-shadow: 6px 6px 0 0 black; + text-align: center; + height: 100%; + + &--gold { + background-color: #FFBE5F; + } + + &--teal { + background-color: #4AAEBC; + } + + &--pink { + background-color: #F49292; + } + + &--purple { + background-color: #80a4e0; + } + + &--light { + background-color: #4aaebc; + color: #000; + + .fixometer__label { + color: #000; + } + + .fixometer__icon { + filter: brightness(0); + } + } +} + +.fixometer__icon { + height: 46px; + width: auto; + margin: 0; +} + +.fixometer__metric { + min-height: 48px; + display: inline-flex; + align-items: flex-end; + justify-content: center; + gap: 6px; +} + +.fixometer__value { + font-family: 'Asap', sans-serif; + font-weight: 700; + font-size: 36px; + line-height: 1.1; + + @media (min-width: 992px) { + font-size: 42px; + } +} + +.fixometer__unit { + font-family: 'Open Sans', sans-serif; + font-size: 16px; + font-weight: 700; + line-height: 1; + margin-bottom: 4px; +} + +.fixometer__label { + font-family: 'Open Sans', sans-serif; + font-size: 14px; + line-height: 1.4; + color: $brand; +} + +.fixometer__disclaimer { + text-align: center; + font-family: 'Open Sans', sans-serif; + font-size: 13px; + color: #777; + margin-top: 20px; + margin-bottom: 0; +} + +// ─── Hero (split layout) ──────────────────────────────────────────────────── + +.hero { + padding: 40px 0 50px; + border-top: 3px dashed black; + + @media (max-width: 767px) { + padding: 30px 0 40px; + text-align: center; + } +} + +.hero--split { + display: flex; + align-items: center; + gap: 40px; + + @media (max-width: 767px) { + flex-direction: column; + gap: 0; + } +} + +.hero__content { + flex: 0 0 55%; + + @media (max-width: 767px) { + flex: 1; + } +} + +.hero__image { + flex: 0 0 42%; + + img { + width: 100%; + height: auto; + border-radius: 8px; + border: 1px solid black; + box-shadow: 6px 6px 0 0 black; + } +} + +.hero h1 { + font-family: 'Asap', sans-serif; + font-weight: 700; + font-size: 38px; + line-height: 1.15; + margin-bottom: 15px; + + @media (max-width: 767px) { + font-size: 28px; + } +} + +.hero__subtitle { + font-family: 'Open Sans', sans-serif; + font-size: 18px; + margin-bottom: 16px; + color: #444; + line-height: 1.5; +} + +.hero__description { + font-family: 'Open Sans', sans-serif; + font-size: 15px; + line-height: 1.6; + color: #666; + margin-bottom: 28px; +} + +.hero__actions { + display: flex; + gap: 16px; + + @media (max-width: 767px) { + justify-content: center; + } + + .btn-outline-dark { + border-width: 2px; + } +} + +// ─── How It Works ──────────────────────────────────────────────────────────── + +.how-it-works { + padding: 40px 0; + border-top: 3px dashed black; +} + +.how-it-works__title { + text-align: center; + font-family: 'Asap', sans-serif; + font-weight: 700; + font-size: 28px; + margin-bottom: 40px; + + @media (max-width: 767px) { + font-size: 24px; + margin-bottom: 30px; + } +} + +.how-it-works__steps { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 24px; + + @media (max-width: 991px) { + grid-template-columns: 1fr; + max-width: 500px; + margin: 0 auto; + } +} + +.how-it-works__step { + border: 1px solid black; + box-shadow: 6px 6px 0 0 black; + overflow: hidden; + display: flex; + flex-direction: column; + + &--gold .how-it-works__body { background-color: #FFBE5F; } + &--teal .how-it-works__body { background-color: #4AAEBC; } + &--pink .how-it-works__body { background-color: #F49292; } +} + +.how-it-works__photo { + width: 100%; + height: 200px; + object-fit: cover; + display: block; +} + +.how-it-works__body { + padding: 20px; + flex: 1; + display: flex; + flex-direction: column; + + h3 { + font-family: 'Asap', sans-serif; + font-size: 22px; + margin-bottom: 10px; + } + + p { + font-family: 'Open Sans', sans-serif; + font-size: 14px; + line-height: 1.7; + flex: 1; + margin-bottom: 0; + } +} + +.how-it-works__number { + display: inline-flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; + border-radius: 50%; + background-color: rgba(0, 0, 0, 0.15); + color: #fff; + font-family: 'Asap', sans-serif; + font-weight: 700; + font-size: 18px; + margin-bottom: 10px; +} + +// ─── Final CTA Banner ─────────────────────────────────────────────────────── + +.cta-banner { + background-color: $brand; + color: #fff; + text-align: center; + padding: 60px 0; + + @media (max-width: 767px) { + padding: 40px 0; + } + + h2 { + font-family: 'Asap', sans-serif; + font-size: 30px; + margin-bottom: 12px; + + @media (max-width: 767px) { + font-size: 24px; + } + } + + p { + font-family: 'Open Sans', sans-serif; + font-size: 16px; + margin-bottom: 24px; + opacity: 0.9; + } +} + +.cta-banner__actions { + .btn-light { + font-weight: 700; + color: $brand; + } +} + +// ─── Utilities ─────────────────────────────────────────────────────────────── + +.landing-page .landing-hr { + border-top: 3px dashed black; +} + +.footer-wrapper { + margin-top: 1rem; +} diff --git a/resources/sass/app.scss b/resources/sass/app.scss index b842f6699a..ebabb712fb 100644 --- a/resources/sass/app.scss +++ b/resources/sass/app.scss @@ -80,4 +80,5 @@ @import 'panels'; @import 'volunteers'; @import 'battcat'; +@import 'landing'; // @import "warning"; diff --git a/resources/views/includes/info.blade.php b/resources/views/includes/info.blade.php index f40b961ad0..c5e6876dc5 100644 --- a/resources/views/includes/info.blade.php +++ b/resources/views/includes/info.blade.php @@ -1,94 +1,11 @@ - - -
- + -
-
- @include('includes.info') -
-
-

{{ __('landing.title') }}

-
- {!! __('landing.intro') !!} + {{-- Hero — Split layout: text left, image right --}} +
+
+

{{ __('landing.title') }}

+

{{ __('landing.subtitle') }}

+
+ {!! __('landing.intro') !!} +
+
- -
-
-
- {{ __('landing.landing_1_alt') }} -
-

{{ __('landing.organise') }}

-

- {{ __('landing.organise_advice') }} -

-

- {{ __('landing.organise_manage') }} -

-

- {{ __('landing.organise_publicise') }} -

- + {{-- How It Works — 3-step journey with photos --}} +
+

{{ __('landing.how_title') }}

+
+ +
+ {{ __('landing.landing_1_alt') }} +
+
1
+

{{ __('landing.how_step1_title') }}

+

{{ __('landing.how_step1_desc') }}

-
-
-
-
-
-
-

{{ __('landing.campaign') }}

-

- {{ __('landing.campaign_join') }} -

-

- {{ __('landing.campaign_barriers') }} -

-

- {{ __('landing.campaign_data') }} -

- +
+ {{ __('landing.landing_2_alt') }} +
+
2
+

{{ __('landing.how_step2_title') }}

+

{{ __('landing.how_step2_desc') }}

- {{ __('landing.landing_2_alt') }}
-
-
-
-
-
- {{ __('landing.landing_3_alt') }} -
-

{{ __('landing.learn') }}

-

- {{ __('landing.repair_skills') }} -

-

- {{ __('landing.repair_advice') }} -

-

- {{ __('landing.repair_group') }} -

- +
+ {{ __('landing.landing_3_alt') }} +
+
3
+

{{ __('landing.how_step3_title') }}

+

{{ __('landing.how_step3_desc') }}

+
-
+
+
-
-
-
+ {{-- Final CTA Banner --}} +
+
+

{{ __('landing.cta_banner_title') }}

+

{{ __('landing.cta_banner_desc') }}

+
+
-
- @if(env('APP_INSTANCE') != 'fixitclinic') -
-

- {{ __('landing.need_more') }} -

-
-
-
-
-
-

{{ __('landing.network') }}

-

{{ __('landing.network_blurb') }}

-
- -
-
-
-

- {{ __('landing.network_tools') }} -

-

- {{ __('landing.network_events') }} -

-

- {{ __('landing.network_record') }} -

-

- {{ __('landing.network_impact') }} -

-

- {{ __('landing.network_brand') }} -

-

- {{ __('landing.network_power') }} -

- -
-
-
-
- @endif -
-
- @include('layouts.footer') - From ef8fb9fdb1a2a2b3aeb564338c271432225d5f9b Mon Sep 17 00:00:00 2001 From: Angel de la Torre Date: Wed, 25 Feb 2026 11:14:09 -0800 Subject: [PATCH 3/5] test: update landing page tests for redesigned layout Update PHP assertion from landing.learn to landing.title. Update Playwright expected heading. Add test for #fixometer-hero element. Co-Authored-By: Claude Opus 4.6 --- tests/Feature/Home/HomeTest.php | 2 +- tests/Integration/landingpage.test.js | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/Feature/Home/HomeTest.php b/tests/Feature/Home/HomeTest.php index dcabffc966..9a5d3b9b86 100644 --- a/tests/Feature/Home/HomeTest.php +++ b/tests/Feature/Home/HomeTest.php @@ -16,7 +16,7 @@ public function testLoggedOut($url): void { $response = $this->get($url); $response->assertSuccessful(); - $response->assertSee(__('landing.learn')); + $response->assertSee(__('landing.title')); $response->assertSee('language-bar'); } diff --git a/tests/Integration/landingpage.test.js b/tests/Integration/landingpage.test.js index 463669d9a4..b820c80e65 100644 --- a/tests/Integration/landingpage.test.js +++ b/tests/Integration/landingpage.test.js @@ -6,10 +6,19 @@ test('Landing page has blurb', async ({page, baseURL}) => { // Simple test of page which is rendered with a Laravel blade. await page.goto(baseURL) const legend = page.locator('h2').first() - await expect(legend).toHaveText('Learn and share repair skills with others') + await expect(legend).toHaveText('Our Global Impact') +}) + +test('Landing page renders static fixometer section', async ({page, baseURL}) => { + test.slow() + await page.goto(baseURL) + + await expect(page.locator('#fixometer-hero')).toHaveCount(1) + await expect(page.locator('#fixometer-spacer')).toHaveCount(0) + await expect(page.locator('#fixometer-sentinel')).toHaveCount(0) }) test('Can log in', async({page, baseURL}) => { test.slow() await login(page, baseURL) -}) \ No newline at end of file +}) From 89b6ef488480447764133b4b4acb6afe9175ac59 Mon Sep 17 00:00:00 2001 From: Angel de la Torre Date: Wed, 25 Feb 2026 11:14:17 -0800 Subject: [PATCH 4/5] chore: regenerate translations after i18n restructure Auto-generated translations rebuild. Includes trivial trailing newline removal in app.js. Co-Authored-By: Claude Opus 4.6 --- resources/js/app.js | 1 - resources/js/translations.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/js/app.js b/resources/js/app.js index addd49756c..30975a2f0e 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1330,4 +1330,3 @@ jQuery(document).ready(function () { }) $(".vue-placeholder-large").hide() }) - diff --git a/resources/js/translations.js b/resources/js/translations.js index a5b4d0f53c..4018a17a9e 100644 --- a/resources/js/translations.js +++ b/resources/js/translations.js @@ -1 +1 @@ -module.exports = {"instances.base.de.admin":{"brand":"Marke","brand-name":"Markenname","brand_modal_title":"Neue Marke hinzuf\u00fcgen","categories":"Kategorien","category_cluster":"Kategorie Cluster","category_name":"Name der Kategorie","co2_footprint":"CO2<\/sub>Fu\u00dfabdruck (kg)","create-new-brand":"Neue Marke schaffen","create-new-category":"Neue Kategorie erstellen","create-new-skill":"Neue Fertigkeit erstellen","create-new-tag":"Neues Tag erstellen","delete-skill":"F\u00e4higkeit l\u00f6schen","delete-tag":"Tag l\u00f6schen","description":"Beschreibung","description_optional":"Beschreibung (fakultativ)","edit-brand":"Marke bearbeiten","edit-brand-content":"","edit-category":"Kategorie bearbeiten","edit-category-content":"","edit-skill":"F\u00e4higkeit bearbeiten","edit-skill-content":"","group-tags":"Gruppen-Tags","reliability":"Verl\u00e4sslichkeit","reliability-1":"Sehr schlecht","reliability-2":"Schlecht","reliability-3":"Messe","reliability-4":"Gut","reliability-5":"Sehr gut","reliability-6":"K.A","save-brand":"Marke speichern","save-category":"Kategorie speichern","save-skill":"F\u00e4higkeit speichern","save-tag":"Tag speichern","skill_name":"Name der Fertigkeit","skills":"Fertigkeiten","skills_modal_title":"Neue F\u00e4higkeit hinzuf\u00fcgen","tag-name":"Tag-Name","tags_modal_title":"Neuen Tag hinzuf\u00fcgen","weight":"Gewicht (kg)"},"instances.base.de.auth":{"assigned_groups":"Den Gruppen zugewiesen","change_password":"Passwort \u00e4ndern","change_password_text":"Bewahren Sie Ihr Konto sicher auf und \u00e4ndern Sie Ihr Passwort regelm\u00e4\u00dfig.","create_account":"Ein Konto erstellen","current_password":"Aktuelles Passwort","delete_account":"Konto l\u00f6schen","delete_account_text":"Mir ist bekannt, dass durch das L\u00f6schen meines Kontos alle meine pers\u00f6nlichen Daten gel\u00f6scht werden und\ndies eine dauerhafte Ma\u00dfnahme ist.","email_address":"E-Mail Adresse","email_address_validation":"Es existiert bereits ein Konto mit dieser E-Mail-Adresse. Haben Sie versucht, sich anzumelden?","failed":"Entweder ist diese E-Mail-Adresse nicht im System registriert oder das Passwort ist falsch.","forgot_password":"Passwort vergessen","forgotten_pw":"Haben Sie Ihr Passwort vergessen?","forgotten_pw_text":"Das kann jedem von uns passieren. Geben Sie einfach Ihre E-Mail-Adresse ein, um eine Nachricht zum Zur\u00fccksetzen des Passworts zu erhalten.","login":"Anmeldung","login_before_using_shareable_link":"Um Ihre Einladung zu vervollst\u00e4ndigen, erstellen Sie bitte unten ein Konto, oder wenn Sie bereits ein Konto haben, melden Sie sich hier an<\/a>.","new_password":"Neues Passwort","new_repeat_password":"Wiederholung des neuen Passworts","password":"Passwort","profile_admin":"Nur Verwaltung","profile_admin_text":"Hier haben Administratoren die M\u00f6glichkeit, die Rolle eines Benutzers oder die zugeh\u00f6rigen Gruppen zu \u00e4ndern","repeat_password":"Passwort wiederholen","repeat_password_validation":"Passw\u00f6rter stimmen nicht \u00fcberein oder bestehen aus weniger als sechs Zeichen","reset":"Zur\u00fccksetzen","reset_password":"Passwort zur\u00fccksetzen","save_preferences":"Einstellungen speichern","save_user":"Benutzer speichern","set_preferences":"Klicken Sie hier, um Ihre E-Mail-Pr\u00e4ferenzen f\u00fcr unsere Diskussionsplattform festzulegen","sign_in":"Ich habe mich erinnert. Ich m\u00f6chte mich anmelden","user_role":"Rolle des Benutzers"},"instances.base.de.brands":{"create_success":"Marke erfolgreich geschaffen!","delete_success":"Marke gel\u00f6scht!","update_success":"Marke erfolgreich aktualisiert!"},"instances.base.de.calendars":{"add_to_calendar":"Zum Kalender hinzuf\u00fcgen","find_out_more":"Mehr erfahren","see_all_calendars":"Siehe alle meine Kalender"},"instances.base.de.category":{"update_error":"Kategorie konnte nicht aktualisiert werden!","update_success":"Kategorie aktualisiert!"},"instances.base.de.countries":{"AD":"Andorra","AE":"Vereinigte Arabische Emirate","AF":"Afghanistan","AG":"Antigua und Barbuda","AI":"Anguilla","AL":"Albanien","AM":"Armenien","AO":"Angola","AQ":"Antarktis","AR":"Argentinien","AS":"Amerikanisch-Samoa","AT":"\u00d6sterreich","AU":"Australien","AW":"Aruba","AX":"\u00c5land-Inseln","AZ":"Aserbaidschan","BA":"Bosnien und Herzegowina","BB":"Barbados","BD":"Bangladesch","BE":"Belgien","BF":"Burkina Faso","BG":"Bulgarien","BH":"Bahrain","BI":"Burundi","BJ":"Benin","BL":"St. Barth\u00e9lemy","BM":"Bermuda","BN":"Brunei Darussalam","BO":"Bolivien, Plurinationaler Staat","BQ":"Bonaire, Sint Eustatius und Saba","BR":"Brasilien","BS":"Bahamas","BT":"Bhutan","BV":"Bouvetinsel","BW":"Botswana","BY":"Wei\u00dfrussland","BZ":"Belize","CA":"Kanada","CC":"Cocos (Keeling) Inseln","CD":"Kongo, die Demokratische Republik der","CF":"Zentralafrikanische Republik","CG":"Kongo","CH":"Schweiz","CI":"C\u00f4te d'Ivoire","CK":"Cookinseln","CL":"Chile","CM":"Kamerun","CN":"China","CO":"Kolumbien","CR":"Costa Rica","CU":"Kuba","CV":"Kap Verde","CW":"Cura\u00e7ao","CX":"Weihnachtsinsel","CY":"Zypern","CZ":"Tschechische Republik","DE":"Deutschland","DJ":"Dschibuti","DK":"D\u00e4nemark","DM":"Dominica","DO":"Dominikanische Republik","DZ":"Algerien","EC":"Ecuador","EE":"Estland","EG":"\u00c4gypten","EH":"Westsahara","ER":"Eritrea","ES":"Spanien","ET":"\u00c4thiopien","FI":"Finnland","FJ":"Fidschi","FK":"Falklandinseln (Malwinen)","FM":"Mikronesien, F\u00f6derierte Staaten von","FO":"F\u00e4r\u00f6er Inseln","FR":"Frankreich","GA":"Gabun","GB":"Vereinigtes K\u00f6nigreich","GD":"Grenada","GE":"Georgien","GF":"Franz\u00f6sisch-Guayana","GG":"Guernsey","GH":"Ghana","GI":"Gibraltar","GL":"Gr\u00f6nland","GM":"Gambia","GN":"Guinea","GP":"Guadeloupe","GQ":"\u00c4quatorialguinea","GR":"Griechenland","GS":"S\u00fcdgeorgien und die S\u00fcdlichen Sandwichinseln","GT":"Guatemala","GU":"Guam","GW":"Guinea-Bissau","GY":"Guyana","HK":"Hongkong","HM":"Heard-Insel und McDonald-Inseln","HN":"Honduras","HR":"Kroatien","HT":"Haiti","HU":"Ungarn","ID":"Indonesien","IE":"Irland","IL":"Israel","IM":"Isle of Man","IN":"Indien","IO":"Britisches Territorium im Indischen Ozean","IQ":"Irak","IR":"Iran, Islamische Republik","IS":"Island","IT":"Italien","JE":"Jersey","JM":"Jamaika","JO":"Jordanien","JP":"Japan","KE":"Kenia","KG":"Kirgisistan","KH":"Kambodscha","KI":"Kiribati","KM":"Komoren","KN":"St. Kitts und Nevis","KP":"Korea, Demokratische Volksrepublik","KR":"S\u00fcdkorea","KW":"Kuwait","KY":"Kaimaninseln","KZ":"Kasachstan","LA":"Demokratische Volksrepublik Laos","LB":"Libanon","LC":"St. Lucia","LI":"Liechtenstein","LK":"Sri Lanka","LR":"Liberia","LS":"Lesotho","LT":"Litauen","LU":"Luxemburg","LV":"Lettland","LY":"Libyen","MA":"Marokko","MC":"Monaco","MD":"Moldawien, Republik","ME":"Montenegro","MF":"St. Martin (franz\u00f6sischer Teil)","MG":"Madagaskar","MH":"Marshallinseln","MK":"Mazedonien, die ehemalige jugoslawische Republik","ML":"Mali","MM":"Myanmar","MN":"Mongolei","MO":"Macao","MP":"N\u00f6rdliche Marianen","MQ":"Martinique","MR":"Mauretanien","MS":"Montserrat","MT":"Malta","MU":"Mauritius","MV":"Malediven","MW":"Malawi","MX":"Mexiko","MY":"Malaysia","MZ":"Mosambik","NA":"Namibia","NC":"Neukaledonien","NE":"Niger","NF":"Norfolkinsel","NG":"Nigeria","NI":"Nicaragua","NL":"Niederlande","NO":"Norwegen","NP":"Nepal","NR":"Nauru","NU":"Niue","NZ":"Aotearoa-Neuseeland","OM":"Oman","PA":"Panama","PE":"Peru","PF":"Franz\u00f6sisch-Polynesien","PG":"Papua-Neuguinea","PH":"Philippinen","PK":"Pakistan","PL":"Polen","PM":"St. Pierre und Miquelon","PN":"Pitcairn","PR":"Puerto Rico","PS":"Pal\u00e4stinensische Gebiete, Besetzt","PT":"Portugal","PW":"Palau","PY":"Paraguay","QA":"Katar","RE":"R\u00e9union","RO":"Rum\u00e4nien","RS":"Serbien","RU":"Russische F\u00f6deration","RW":"Ruanda","SA":"Saudi-Arabien","SB":"Salomoninseln","SC":"Seychellen","SD":"Sudan","SE":"Schweden","SG":"Singapur","SH":"St. Helena, Himmelfahrt und Tristan da Cunha","SI":"Slowenien","SJ":"Svalbard und Jan Mayen","SK":"Slowakei","SL":"Sierra Leone","SM":"San Marino","SN":"Senegal","SO":"Somalia","SR":"Surinam","SS":"S\u00fcdsudan","ST":"Sao Tome und Principe","SV":"El Salvador","SX":"Sint Maarten (Niederl\u00e4ndischer Teil)","SY":"Arabische Republik Syrien","SZ":"Swasiland","TC":"Turks- und Caicosinseln","TD":"Chad","TF":"Franz\u00f6sische S\u00fcd-Territorien","TG":"Togo","TH":"Thailand","TJ":"Tadschikistan","TK":"Tokelau","TL":"Timor-Leste","TM":"Turkmenistan","TN":"Tunesien","TO":"Tonga","TR":"T\u00fcrkei","TT":"Trinidad und Tobago","TV":"Tuvalu","TW":"Taiwan","TZ":"Tansania, Vereinigte Republik","UA":"Ukraine","UG":"Uganda","UM":"Vereinigte Staaten Minor Outlying Islands","US":"Vereinigte Staaten","UY":"Uruguay","UZ":"Usbekistan","VA":"Heiliger Stuhl (Staat Vatikanstadt)","VC":"St. Vincent und die Grenadinen","VE":"Venezuela, Bolivarische Republik","VG":"Jungferninseln, Britisch","VI":"Jungferninseln, U.S.A.","VN":"Vietnam","VU":"Vanuatu","WF":"Wallis und Futuna","WS":"Samoa","YE":"Jemen","YT":"Mayotte","ZA":"S\u00fcdafrika","ZM":"Sambia","ZW":"Simbabwe"},"instances.base.de.dashboard":{"add_data_add":"Hinzuf\u00fcgen","add_data_heading":"Daten hinzuf\u00fcgen","add_event":"Hinzuf\u00fcgen","catch_up":"Informieren Sie sich \u00fcber Ihre Gruppen, indem Sie unten klicken.","devices_logged":"erfasste Ger\u00e4te","discussion_header":"Treffen Sie die Gemeinschaft","getting_started_header":"Erste Schritte","getting_the_most":"Erste Schritte","getting_the_most_bullet1":"Reparieren Sie<\/strong>:Schlie\u00dfen Sie sich der n\u00e4chstgelegenen Reparaturgruppe<\/a>an und frischen Sie Ihre Kenntnisse auf oder teilen Sie sie mit unseremReparatur-Wiki<\/a>.","getting_the_most_bullet2":"Organisieren Sie<\/strong>:lernen Sie, wie man eine Reparaturveranstaltung durchf\u00fchrt<\/a>und\/oderbitten Sie die Community um Hilfe auf Talk<\/a>.","getting_the_most_bullet3":"Chatten Sie<\/strong>:Verfolgen Sie die neuesten Unterhaltungen<\/a>in unserem Forum, Talk. Warum nicht auchsich selbst vorstellen<\/a>?","getting_the_most_bullet4":"Werden Sie analytisch<\/strong>: sehen Sie unsere Auswirkungen indem Fixometer<\/a>.","getting_the_most_intro":"Restarters.net ist eine kostenlose, quelloffene Plattform f\u00fcr eine globale Gemeinschaft von Menschen, die lokale Reparaturveranstaltungen durchf\u00fchren und sich f\u00fcr unser Recht auf Reparatur einsetzen.","groups_heading":"Gruppen","groups_near_you_follow_action":"Folgen Sie","groups_near_you_header":"Gruppen in Ihrer N\u00e4he","groups_near_you_none_nearby":"Derzeit gibt es keine Gruppen in Ihrer N\u00e4he, die bei Restarters.net eingetragen wurden.","groups_near_you_see_more":"Mehr Gruppen sehen","groups_near_you_set_location":"Geben Sie Ihre Stadt ein<\/a>, damit wir Gruppen in Ihrer N\u00e4he finden k\u00f6nnen.","groups_near_you_start_a_group":"M\u00f6chten Sie eine Gruppe gr\u00fcnden oder hinzuf\u00fcgen? Erfahren Sie mehr<\/a>.","groups_near_you_text":"Folgen Sie einer Reparaturgruppe, um mehr \u00fcber kommunale Reparaturen in Ihrer Region zu erfahren.","groups_near_you_your_location_is":"Ihre Stadt ist derzeit auf :location eingestellt.","interested_details":"

Jeder, der Interesse und ein wenig Organisationstalent hat, kann eine kommunale Reparaturgruppe gr\u00fcnden. Schauen Sie sich unserEventplanungs-Kit<\/a>oder unsereRessourcen f\u00fcr Schulen<\/a> an.<\/p>

Wenn Sie bereit sind, eine Gruppe zu gr\u00fcnden, erstellen Sie einfach eine auf derGruppen Seite<\/a>. Und wenn Sie Hilfe brauchen, fragen Sie einfach im Forum,Gespr\u00e4ch<\/a>.","interested_starting":"M\u00f6chten Sie Ihre eigene Reparaturgruppe gr\u00fcnden?","log_devices":"Ger\u00e4te protokollieren","networks_you_coordinate":"Zeigen Sie die Netzwerke an, die Sie koordinieren.","newly_added":"Neu hinzugef\u00fcgt: :count group in your area!|Neu hinzugef\u00fcgt: :count groups in your area!","no_groups":"Es gibt noch keine Gruppen in Ihrem Gebiet.<\/strong>
","no_groups_intro":"Es gibt gemeinschaftliche
Gruppen auf der ganzen Welt<\/a>. Sie k\u00f6nnen gerne jeder Gruppe folgen, um benachrichtigt zu werden, wenn sie Veranstaltungen organisiert.","see_all_groups":"Alle Gruppen anzeigen","see_all_groups_near_you":"Alle Gruppen in Ihrer N\u00e4he anzeigen \u2192","see_your_impact":"Und sehen Sie Ihre Wirkung im Fixometer","sidebar_help":"Wir sind hier, um Ihnen bei all Ihren Fragen zum Hosting zu helfen.","sidebar_intro_1":"Wir sind eine weltweite Gemeinschaft von Menschen, die lokale Reparaturveranstaltungen durchf\u00fchren und sich f\u00fcr unser Recht auf Reparatur einsetzen. Restarters.net ist unser kostenloses, quelloffenes Toolkit.","sidebar_kit1":"Besuchen Sie unser","sidebar_kit2":"kostenloses Event-Planungspaket!","sidebar_let_us_know":"Sagen Sie uns einfach Bescheid","title":"Willkommen bei Restarters","upcoming_events_subtitle":"Die bevorstehenden Veranstaltungen Ihrer Gruppe:","upcoming_events_title":"Kommende Veranstaltungen","visit_wiki":"Besuchen Sie das Wiki","your_groups_heading":"Ihre Gruppen","your_networks":"Ihre Netzwerke"},"instances.base.de.device-audits":{"created":{"metadata":"Am :audit_created_at, :user_name erstellte Datensatz:audit_url<\/strong>","modified":{"age":"Alter<\/strong>als \\\":neu<\/strong>\\\" eingestellt","brand":"Marke<\/strong>als \\\":neu<\/strong>\\\" eingestellt","category":"Kategorie<\/strong>als \\\":neu<\/strong>\\\" eingestellt","category_creation":"Kategorieerstellung<\/strong>als \\\":neu<\/strong>\\\" gesetzt","do_it_yourself":"Selber machen<\/strong>als \\\":new<\/strong>\\\" einstellen","estimate":"Sch\u00e4tzen Sie<\/strong>als \\\":neu<\/strong>\\\" ein","event":"Ereignis<\/strong>als \\\":neu<\/strong>\\\" gesetzt","iddevices":"Ger\u00e4te-ID<\/strong>als \\\":neu<\/strong>\\\" eingestellt","model":"Modell<\/strong>als \\\":neu<\/strong>\\\" eingestellt","more_time_needed":"Mehr Zeit ben\u00f6tigt<\/strong>als \\\":new<\/strong>\\\" gesetzt","problem":"Problem<\/strong>als \\\":neu<\/strong>\\\" gesetzt","professional_help":"Professionelle Hilfe<\/strong>als \\\":new<\/strong>\\\" eingestellt","repair_status":"Reparaturstatus<\/strong>als \\\":neu<\/strong>\\\" gesetzt","repaired_by":"Ersetzt durch<\/strong>als \\\":new<\/strong>\\\" gesetzt","spare_parts":"Ersatzteile<\/strong>als \\\":neu<\/strong>\\\" eingestellt","wiki":"Wiki<\/strong>als \\\":neu<\/strong>\\\" eingestellt"}},"unavailable_audits":"An diesem Ger\u00e4t wurden keine \u00c4nderungen vorgenommen!","updated":{"metadata":"Am :audit_created_at hat :user_name den Datensatz:audit_url<\/strong>aktualisiert","modified":{"age":"Alter<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","brand":"Die Marke<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","category":"Kategorie<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","category_creation":"Kategorieerstellung<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","do_it_yourself":"Do it yourself<\/strong>wurde ge\u00e4ndert von \\\":alt<\/strong>\\\" zu \\\":neu<\/strong>\\\"","estimate":"Sch\u00e4tzung<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","event":"Ereignis<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","model":"Das Modell<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","more_time_needed":"Mehr Zeit ben\u00f6tigt<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","problem":"Das Problem<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","professional_help":"Professionelle Hilfe<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","repair_status":"Reparaturstatus<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert","repaired_by":"Repariert von<\/strong>wurde ge\u00e4ndert von \\\":alt<\/strong>\\\" zu \\\":neu<\/strong>\\\"","spare_parts":"Ersatzteile<\/strong>wurde ge\u00e4ndert von \\\":alt<\/strong>\\\" zu \\\":neu<\/strong>\\\"","wiki":"Wiki<\/strong>wurde von \\\":alt<\/strong>\\\" auf \\\":neu<\/strong>\\\" ge\u00e4ndert"}}},"instances.base.de.devices":{"add_data_action_button":"Zur Veranstaltung gehen","add_data_button":"Daten hinzuf\u00fcgen","add_data_description":"Die Hinzuf\u00fcgung von Reparaturdaten hilft, die Auswirkungen von Reparaturen aufzuzeigen.","add_data_event":"Bitte w\u00e4hlen Sie eine Veranstaltung","add_data_group":"Bitte w\u00e4hlen Sie eine Gruppe","add_data_title":"Daten hinzuf\u00fcgen","age":"Alter","age_approx":"jahre (ungef\u00e4hr, falls unbekannt)","assessment":"Bewertung","brand":"Marke","brand_if_known":"Marke (falls bekannt)","category":"Kategorie","confirm_delete":"Wenn Sie auf \\\"Best\u00e4tigen\\\" klicken, wird dieses Element aus dem Ereignis gel\u00f6scht.","delete_device":"Ger\u00e4t l\u00f6schen","description_powered":"Einangetriebener Gegenstand<\/b>ist alles, was eine Stromquelle hat oder ben\u00f6tigt.","description_unpowered":"Einstromloser Gegenstand<\/b>ist alles, was keine Stromquelle hat oder ben\u00f6tigt.","devices":"Reparaturen","devices_date":"Datum","devices_description":"Beschreibung des Problems\/L\u00f6sung","event_info":"Infos zur Veranstaltung","export_device_data":"Alle Daten herunterladen","export_event_data":"Ereignisdaten herunterladen","export_group_data":"Reparaturdaten herunterladen","fixed":"Festgelegt","fixometer":"Fixometer","from_date":"Vom Datum","global_impact":"Unser globaler Einfluss","graphic-camera":"Kamera","graphic-comment":"Kommentar","group":"Gruppe","group_prevented":"vermieden:Menge kg<\/a>an Abfall!","huge_impact":"Reparateure auf der ganzen Welt haben eine gro\u00dfe Wirkung!","huge_impact_2":"Durchsuchen Sie Ihre Reparaturdaten und erhalten Sie einen Eindruck von den Auswirkungen der Reparatur und den Hindernissen, denen wir bei der Reparatur begegnen. In derReparaturdaten-Diskussion<\/a>in unserem Forum k\u00f6nnen Sie uns helfen zu verstehen, was diese Daten uns sonst noch sagen und f\u00fcr welche \u00c4nderungen wir uns einsetzen sollten.","image_delete_error":"Entschuldigung, aber das Bild kann nicht gel\u00f6scht werden","image_delete_success":"Vielen Dank, das Bild wurde gel\u00f6scht","image_upload_error":"fail - Bild konnte nicht hochgeladen werden","images":"Bilder","item_and_repair_info":"Informationen zu Artikel und Reparatur","item_type":"Was ist das?","item_type_short":"Artikel","latest_data":"Neueste Daten","model":"Modell","model_if_known":"Modell (falls bekannt)","model_or_type":"Artikel","optional_impact":"kg - wird zur Verfeinerung der Berechnung der Umweltauswirkungen verwendet (optional)","placeholder_notes":"Anmerkungen. Beispiele: Reparaturschwierigkeiten, Wahrnehmung des Problems durch den Eigent\u00fcmer usw.","powered_items":"betriebene Ger\u00e4te","repair":"Datum der Reparatur","repair_details":"N\u00e4chste Schritte","repair_outcome":"Ergebnis der Reparatur?","repair_records":"Reparatur-Aufzeichnungen","repair_status":"Status der Reparatur","repairable":"Repairable","required_impact":"kg - erforderlich zur Berechnung der Umweltauswirkungen","search_assessment_comments":"Bewertung","search_text":"St\u00f6bern Sie in unserer globalen Reparaturdatenbank und durchsuchen Sie sie.","spare_parts":"Ersatzteile","status":"Status","table_intro":"Dr\u00fccken Sie die 'i'-Symbole f\u00fcr Details. Klicken Sie auf einen Spaltenkopf, um nach dieser Spalte zu sortieren - klicken Sie erneut, um die Sortierreihenfolge umzukehren.","title_assessment":"BEWERTUNG","title_items":"ITEM","title_items_at_event":"Artikel bei dieser Veranstaltung","title_powered":"POWERED","title_repair":"REPAIR","title_unpowered":"UNPOWERED","to_date":"Bis heute","tooltip_category":"W\u00e4hlen Sie die Kategorie, die am besten zu diesem Artikel passt.Mehr Informationen \u00fcber diese Kategorien...<\/a>","tooltip_model":"F\u00fcgen Sie hier so viele Informationen \u00fcber das spezifische Ger\u00e4temodell hinzu, wie Sie k\u00f6nnen (z. B. \\\"Galaxy S10 5G\\\"). Lassen Sie das Feld leer, wenn Sie das Modell nicht kennen.","tooltip_notes":"

F\u00fcgen Sie hier weitere Details hinzu, zum Beispiel:<\/p>