From e2bc8acf97aa5eb52add823d25ebe0cabef1ee03 Mon Sep 17 00:00:00 2001 From: SimpleTest Date: Wed, 22 Jul 2026 19:45:50 +0300 Subject: [PATCH] Fix map recovery and clean transient test resources --- .env.e2e.example | 9 +- assets/css/app.css | 31 +- assets/js/hooks.js | 230 +++++-- compose.e2e.yaml | 8 +- e2e/tests/helpers.ts | 11 +- e2e/tests/public.spec.ts | 45 ++ .../controllers/page_html/home.html.heex | 15 +- .../live/activity_live/index.ex | 1 + .../live/activity_live/show.ex | 1 + .../live/request_live/index.ex | 1 + .../live/request_live/new.ex | 2 + .../live/request_live/show.ex | 1 + priv/gettext/default.pot | 592 +++++++++-------- priv/gettext/en/LC_MESSAGES/default.po | 592 +++++++++-------- priv/gettext/ru/LC_MESSAGES/default.po | 595 ++++++++++-------- priv/gettext/uk/LC_MESSAGES/default.po | 594 +++++++++-------- scripts/android-browser-staging-e2e.sh | 2 +- scripts/android-instrumentation-test.sh | 3 +- scripts/android-staging-smoke.sh | 2 +- scripts/e2e-run.sh | 73 ++- scripts/e2e-stop.sh | 56 +- scripts/ensure-local-e2e-env.sh | 9 +- scripts/load-stack-stop.sh | 27 +- scripts/load-stack-up.sh | 60 +- scripts/quality.sh | 1 + scripts/test.sh | 52 +- .../controllers/page_controller_test.exs | 14 + 27 files changed, 1918 insertions(+), 1109 deletions(-) diff --git a/.env.e2e.example b/.env.e2e.example index 6b0151e..fcb3559 100644 --- a/.env.e2e.example +++ b/.env.e2e.example @@ -14,14 +14,15 @@ TRAEFIK_ROUTER_RULE='PathPrefix(`/`)' PHX_HOST=proxy PHX_SCHEME=https PHX_URL_PORT=443 -MAP_TILE_URL=https://proxy/__e2e__/map-tile.png?z={z}&x={x}&y={y} +MAP_TILE_URL=/__e2e__/map-tile.png?z={z}&x={x}&y={y} DEPLOYMENT_TARGET=compose DEPLOYMENT_ENV=development COMPOSE_PROJECT_NAME=who_need_help_e2e -APP_IMAGE=who-need-help:e2e -SOCKET_PROXY_IMAGE=who-need-help:socket-proxy-e2e -POSTGIS_IMAGE=who-need-help:postgis-e2e +APP_IMAGE=who-need-help:e2e-GENERATED_UNIQUE_E2E_RUN +SOCKET_PROXY_IMAGE=who-need-help:socket-proxy-e2e-GENERATED_UNIQUE_E2E_RUN +POSTGIS_IMAGE=who-need-help:postgis-e2e-GENERATED_UNIQUE_E2E_RUN +E2E_TEST_IMAGE=who-need-help-e2e-tests:GENERATED_UNIQUE_E2E_RUN APP_TOPOLOGY=split DATABASE_MODE=container diff --git a/assets/css/app.css b/assets/css/app.css index 51982cb..1d1ba73 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -358,6 +358,29 @@ html { display: none; } +.map-unavailable-panel { + display: grid; + min-height: inherit; + place-content: center; + justify-items: center; + gap: 0.875rem; + padding: 2rem; + text-align: center; +} + +.map-unavailable-panel p { + max-width: 34rem; + color: color-mix(in oklab, var(--color-base-content) 68%, transparent); + font-size: 0.875rem; + line-height: 1.5; +} + +.map-retry-button { + position: relative; + z-index: 1; + background: color-mix(in oklab, var(--color-base-100) 94%, transparent); +} + .home-demo-map-fallback { position: relative; display: grid; @@ -406,6 +429,11 @@ html { gap: 0.625rem; } +.home-demo-map-fallback > .map-retry-button { + justify-self: start; + margin-top: 0.75rem; +} + .home-demo-map-fallback-point { display: flex; align-items: center; @@ -607,8 +635,7 @@ html { color: color-mix(in oklab, var(--color-base-content) 65%, transparent); } -.request-location-map-shell:has(.request-location-map[data-map-unavailable="true"]) - .request-location-map-hint { +.request-location-workspace[data-map-unavailable="true"] .request-location-map-hint { display: none; } diff --git a/assets/js/hooks.js b/assets/js/hooks.js index 3f37000..f11dcfd 100644 --- a/assets/js/hooks.js +++ b/assets/js/hooks.js @@ -137,6 +137,27 @@ const privacySafeAreaCenter = (latitude, longitude, radiusMeters) => { } } +const mapRetryButton = (element, retry) => { + const button = document.createElement("button") + button.type = "button" + button.className = "btn btn-sm btn-outline map-retry-button" + button.dataset.mapRetry = "true" + button.textContent = element.dataset.mapRetryLabel || "Try map again" + button.addEventListener("click", retry, {once: true}) + return button +} + +const reportMapUnavailable = (element, reason, error = null) => { + element.dataset.mapUnavailable = "true" + element.dataset.mapUnavailableReason = reason + + if (error) { + console.warn(`[Who Need Help] Map unavailable (${reason})`, error) + } else { + console.warn(`[Who Need Help] Map unavailable (${reason})`) + } +} + const createAidMap = element => { const state = { element, @@ -154,7 +175,8 @@ const createAidMap = element => { areaSelectedId: `${element.id || "aid-map"}-area-selected`, clusterSourceId: `${element.id || "aid-map"}-clusters`, clusterCircleId: `${element.id || "aid-map"}-cluster-circle`, - clusterCountId: `${element.id || "aid-map"}-cluster-count` + clusterCountId: `${element.id || "aid-map"}-cluster-count`, + statusBadge: element.parentElement?.querySelector("[data-map-status-badge]") || null } state.markLoading = () => { @@ -167,16 +189,33 @@ const createAidMap = element => { state.element.dataset.mapReady = "true" } - state.showUnavailable = () => { + state.retry = () => { + if (!state.active) return + + state.element.dataset.mapReady = "false" + delete state.element.dataset.mapUnavailable + delete state.element.dataset.mapUnavailableReason + state.element.replaceChildren() + state.mount() + } + + state.showUnavailable = (reason, error = null) => { state.map = null - state.element.dataset.mapUnavailable = "true" + reportMapUnavailable(state.element, reason, error) state.markReady() + if (state.statusBadge) { + state.statusBadge.textContent = state.statusBadge.dataset.staticLabel + } + if (state.element.dataset.demoMap !== "true") { - const fallback = document.createElement("p") - fallback.className = "grid h-full place-items-center p-6 text-center text-sm" + const fallback = document.createElement("div") + fallback.className = "map-unavailable-panel" fallback.dataset.mapFallback = "true" - fallback.textContent = state.element.dataset.mapUnavailableLabel + + const message = document.createElement("p") + message.textContent = state.element.dataset.mapUnavailableLabel + fallback.append(message, mapRetryButton(state.element, state.retry)) state.element.replaceChildren(fallback) return } @@ -216,7 +255,7 @@ const createAidMap = element => { points.append(item) }) - fallback.append(points) + fallback.append(points, mapRetryButton(state.element, state.retry)) state.element.replaceChildren(fallback) } @@ -401,8 +440,10 @@ const createAidMap = element => { state.markLoading() const demoMap = state.element.dataset.demoMap === "true" - if (!supportsMapCanvas()) { - state.showUnavailable() + const support = mapCanvasSupport() + + if (!support.supported) { + state.showUnavailable(support.reason, support.error) return } @@ -414,14 +455,13 @@ const createAidMap = element => { zoom: 5, attributionControl: true, renderWorldCopies: false, - maxBounds: [[-180, -85.05112878], [180, 85.05112878]], trackResize: false, dragRotate: !demoMap, pitchWithRotate: !demoMap, scrollZoom: !demoMap }) - } catch (_error) { - state.showUnavailable() + } catch (error) { + state.showUnavailable("initialization-failed", error) return } @@ -447,7 +487,14 @@ const createAidMap = element => { state.onLoad = () => { if (!state.active || !state.map) return + delete state.element.dataset.mapUnavailable + delete state.element.dataset.mapUnavailableReason state.markReady() + + if (state.statusBadge) { + state.statusBadge.textContent = state.statusBadge.dataset.interactiveLabel + } + state.applySavedViewport() state.renderMarkers() @@ -913,11 +960,35 @@ export const Hooks = { this.statusElement = this.el.querySelector(this.el.dataset.statusTarget) } - this.renderMapUnavailable = () => { + this.retryMap = () => { if (!this.mapElement) return - this.mapElement.dataset.mapUnavailable = "true" - this.mapElement.textContent = this.mapElement.dataset.mapUnavailableLabel + this.mapUnavailable = false + delete this.el.dataset.mapUnavailable + this.mapElement.dataset.mapReady = "false" + delete this.mapElement.dataset.mapUnavailable + delete this.mapElement.dataset.mapUnavailableReason + this.mapElement.replaceChildren() + this.mountMap() + } + + this.renderMapUnavailable = (reason = "webgl-context-unavailable", error = null) => { + if (!this.mapElement) return + + this.mapUnavailableReason = reason + this.mapUnavailableError = error + this.el.dataset.mapUnavailable = "true" + reportMapUnavailable(this.mapElement, reason, error) + this.mapElement.dataset.mapReady = "true" + + const fallback = document.createElement("div") + fallback.className = "map-unavailable-panel" + fallback.dataset.mapFallback = "true" + + const message = document.createElement("p") + message.textContent = this.mapElement.dataset.mapUnavailableLabel + fallback.append(message, mapRetryButton(this.mapElement, this.retryMap)) + this.mapElement.replaceChildren(fallback) } this.mode = () => @@ -1199,56 +1270,84 @@ export const Hooks = { this.el.addEventListener("change", this.onChange) this.el.addEventListener("click", this.onClick) - if (!this.mapElement || !supportsMapCanvas()) { - if (this.mapElement) { + this.mountMap = () => { + if (!this.mapElement) return + + const support = mapCanvasSupport() + + if (!support.supported) { this.mapUnavailable = true - this.renderMapUnavailable() + this.renderMapUnavailable(support.reason, support.error) + this.syncMode() + return } + + const initialCoordinates = this.coordinates() + + try { + this.map = new maplibregl.Map({ + container: this.mapElement, + style: defaultStyle, + center: initialCoordinates + ? [initialCoordinates.longitude, initialCoordinates.latitude] + : [30.5234, 50.4501], + zoom: initialCoordinates ? 13 : 5, + attributionControl: true, + dragRotate: false, + pitchWithRotate: false + }) + } catch (error) { + this.map = null + this.mapUnavailable = true + this.renderMapUnavailable("initialization-failed", error) + this.syncMode() + return + } + + this.map.touchZoomRotate.disableRotation() + this.map.addControl(new maplibregl.NavigationControl({showCompass: false}), "top-left") + + this.map.on("load", () => { + this.mapLoaded = true + this.mapUnavailable = false + delete this.el.dataset.mapUnavailable + this.mapElement.dataset.mapReady = "true" + delete this.mapElement.dataset.mapUnavailable + delete this.mapElement.dataset.mapUnavailableReason + this.ensureAreaLayers() + this.renderSelection() + }) + + this.map.on("click", event => { + if (this.mode() === "hidden") return + + this.setCoordinates( + {latitude: event.lngLat.lat, longitude: event.lngLat.lng}, + {center: true} + ) + this.setStatus( + this.mode() === "approximate_public" + ? this.el.dataset.areaSelectedLabel + : this.el.dataset.pointSelectedLabel + ) + }) + this.syncMode() - return } - const initialCoordinates = this.coordinates() - this.map = new maplibregl.Map({ - container: this.mapElement, - style: defaultStyle, - center: initialCoordinates - ? [initialCoordinates.longitude, initialCoordinates.latitude] - : [30.5234, 50.4501], - zoom: initialCoordinates ? 13 : 5, - attributionControl: true, - dragRotate: false, - pitchWithRotate: false - }) - this.map.touchZoomRotate.disableRotation() - this.map.addControl(new maplibregl.NavigationControl({showCompass: false}), "top-left") - - this.map.on("load", () => { - this.mapLoaded = true - this.mapElement.dataset.mapReady = "true" - this.ensureAreaLayers() - this.renderSelection() - }) - - this.map.on("click", event => { - if (this.mode() === "hidden") return - - this.setCoordinates( - {latitude: event.lngLat.lat, longitude: event.lngLat.lng}, - {center: true} - ) - this.setStatus( - this.mode() === "approximate_public" - ? this.el.dataset.areaSelectedLabel - : this.el.dataset.pointSelectedLabel - ) - }) - - this.syncMode() + this.mountMap() }, updated() { this.cacheElements() - if (this.mapUnavailable) this.renderMapUnavailable() + + if (this.mapUnavailable) { + this.el.dataset.mapUnavailable = "true" + + if (!this.mapElement?.querySelector("[data-map-fallback=true]")) { + this.renderMapUnavailable(this.mapUnavailableReason, this.mapUnavailableError) + } + } + this.syncMode() }, destroyed() { @@ -1367,7 +1466,11 @@ export const Hooks = { } } -function supportsMapCanvas() { +function mapCanvasSupport() { + if (!window.WebGLRenderingContext) { + return {supported: false, reason: "webgl-api-unavailable"} + } + const canvas = document.createElement("canvas") const attributes = { alpha: true, @@ -1381,10 +1484,13 @@ function supportsMapCanvas() { canvas.getContext("webgl2", attributes) || canvas.getContext("webgl", attributes) - if (!context) return false + if (!context || typeof context.getParameter !== "function") { + return {supported: false, reason: "webgl-context-unavailable"} + } - return true - } catch (_error) { - return false + context.getExtension("WEBGL_lose_context")?.loseContext() + return {supported: true} + } catch (error) { + return {supported: false, reason: "webgl-context-disabled", error} } } diff --git a/compose.e2e.yaml b/compose.e2e.yaml index 83b35d7..cfcb34e 100644 --- a/compose.e2e.yaml +++ b/compose.e2e.yaml @@ -1,13 +1,13 @@ services: migrate: - image: who-need-help:e2e + image: ${APP_IMAGE:?Set APP_IMAGE for the isolated E2E run} pull_policy: never build: args: WNH_E2E_ROUTES: "true" web: - image: who-need-help:e2e + image: ${APP_IMAGE:?Set APP_IMAGE for the isolated E2E run} pull_policy: never labels: - traefik.http.routers.${TRAEFIK_APP_NAME}-tls.rule=${TRAEFIK_ROUTER_RULE} @@ -17,11 +17,11 @@ services: - traefik.http.routers.${TRAEFIK_APP_NAME}-tls.tls=true worker: - image: who-need-help:e2e + image: ${APP_IMAGE:?Set APP_IMAGE for the isolated E2E run} pull_policy: never e2e: - image: who-need-help-e2e-tests:local + image: ${E2E_TEST_IMAGE:?Set E2E_TEST_IMAGE for the isolated E2E run} build: context: e2e init: true diff --git a/e2e/tests/helpers.ts b/e2e/tests/helpers.ts index 5dd4571..98007d2 100644 --- a/e2e/tests/helpers.ts +++ b/e2e/tests/helpers.ts @@ -205,7 +205,16 @@ export function captureBrowserFailures( page.on("console", (message) => { if (message.type() === "error") { - failures.push(`console: ${message.text()}`); + const text = message.text(); + const abortedE2eRasterTile = + text.includes("AJAXError: Failed to fetch (0):") && + text.includes("/__e2e__/map-tile.png"); + + // Chromium reports an aborted MapLibre worker fetch as both a console + // error and a request failure when navigation destroys the old map. + // requestfailed below remains authoritative: it ignores only explicit + // browser cancellation and still records genuine tile failures. + if (!abortedE2eRasterTile) failures.push(`console: ${text}`); } }); diff --git a/e2e/tests/public.spec.ts b/e2e/tests/public.spec.ts index 953dfd2..9f9d1d1 100644 --- a/e2e/tests/public.spec.ts +++ b/e2e/tests/public.spec.ts @@ -22,3 +22,48 @@ test("public safety pages load and private discovery requires authentication", a assertNoBrowserFailures(); }); + +test("public demo labels the non-WebGL fallback honestly and offers retry", async ({ + page, +}) => { + const assertNoBrowserFailures = captureBrowserFailures(page); + const mapWarnings: string[] = []; + + page.on("console", (message) => { + if (message.type() === "warning" && message.text().includes("Map unavailable")) { + mapWarnings.push(message.text()); + } + }); + + await page.addInitScript(() => { + const originalGetContext = HTMLCanvasElement.prototype.getContext; + + HTMLCanvasElement.prototype.getContext = function ( + contextId: string, + options?: unknown, + ) { + if (contextId === "webgl" || contextId === "webgl2") return null; + return originalGetContext.call(this, contextId, options as never); + } as typeof HTMLCanvasElement.prototype.getContext; + }); + + await page.goto("/"); + + const map = page.locator("#home-demo-map"); + const status = page.locator("[data-map-status-badge]"); + const retry = map.getByRole("button", { name: "Try map again" }); + + await map.scrollIntoViewIfNeeded(); + await expect(map.locator("[data-map-fallback=true]")).toBeVisible(); + await expect(status).toHaveText("Static preview"); + await expect(retry).toBeVisible(); + await expect(map).toHaveAttribute("data-map-unavailable-reason", "webgl-context-unavailable"); + await expect.poll(() => mapWarnings.length).toBe(1); + + await retry.click(); + await expect.poll(() => mapWarnings.length).toBe(2); + await expect(status).toHaveText("Static preview"); + await expect(retry).toBeVisible(); + + assertNoBrowserFailures(); +}); diff --git a/lib/who_need_help_web/controllers/page_html/home.html.heex b/lib/who_need_help_web/controllers/page_html/home.html.heex index 7d795a7..98aedbc 100644 --- a/lib/who_need_help_web/controllers/page_html/home.html.heex +++ b/lib/who_need_help_web/controllers/page_html/home.html.heex @@ -147,15 +147,26 @@ data-map-ready="false" data-markers={demo_markers} data-map-unavailable-label={ - gettext("The demo map is unavailable. The example steps remain available beside it.") + gettext( + "The interactive demo could not start in this browser. You can retry or use the example steps beside it." + ) } + data-map-retry-label={gettext("Try map again")} role="region" aria-label={gettext("Demo map with synthetic approximate help requests")} class="aid-map home-demo-map" >
- {gettext("Interactive demo")} + + {gettext("Map preview")} + {gettext("Example data — not live requests")} diff --git a/lib/who_need_help_web/live/activity_live/index.ex b/lib/who_need_help_web/live/activity_live/index.ex index 3fadd05..87bcbaf 100644 --- a/lib/who_need_help_web/live/activity_live/index.ex +++ b/lib/who_need_help_web/live/activity_live/index.ex @@ -283,6 +283,7 @@ defmodule WhoNeedHelpWeb.ActivityLive.Index do data-map-unavailable-label={ gettext("The map is unavailable in this browser. Request details remain usable.") } + data-map-retry-label={gettext("Try map again")} class="aid-map" /> diff --git a/lib/who_need_help_web/live/activity_live/show.ex b/lib/who_need_help_web/live/activity_live/show.ex index 1e6f492..86fc989 100644 --- a/lib/who_need_help_web/live/activity_live/show.ex +++ b/lib/who_need_help_web/live/activity_live/show.ex @@ -539,6 +539,7 @@ defmodule WhoNeedHelpWeb.ActivityLive.Show do data-map-unavailable-label={ gettext("The map is unavailable in this browser. Request details remain usable.") } + data-map-retry-label={gettext("Try map again")} class="aid-map" />
diff --git a/lib/who_need_help_web/live/request_live/index.ex b/lib/who_need_help_web/live/request_live/index.ex index f378487..ccb1ff4 100644 --- a/lib/who_need_help_web/live/request_live/index.ex +++ b/lib/who_need_help_web/live/request_live/index.ex @@ -514,6 +514,7 @@ defmodule WhoNeedHelpWeb.RequestLive.Index do data-map-unavailable-label={ gettext("The map is unavailable in this browser. Request details remain usable.") } + data-map-retry-label={gettext("Try map again")} data-request-label={gettext("Open request")} class="aid-map request-discovery-map" /> diff --git a/lib/who_need_help_web/live/request_live/new.ex b/lib/who_need_help_web/live/request_live/new.ex index b253d33..5327758 100644 --- a/lib/who_need_help_web/live/request_live/new.ex +++ b/lib/who_need_help_web/live/request_live/new.ex @@ -391,6 +391,7 @@ defmodule WhoNeedHelpWeb.RequestLive.New do data-point-marker-label={gettext("Drag to move the exact point")} data-hidden-label={gettext("No map coordinates will be stored.")} data-location-unavailable-label={gettext("Location is unavailable in this browser.")} + data-map-retry-label={gettext("Try map again")} data-location-denied-label={gettext("Location permission was denied.")} class="request-location-workspace" > @@ -462,6 +463,7 @@ defmodule WhoNeedHelpWeb.RequestLive.New do data-map-unavailable-label={ gettext("The map is unavailable. You can use the manual coordinate fallback.") } + data-map-retry-label={gettext("Try map again")} class="aid-map request-location-map" />
diff --git a/lib/who_need_help_web/live/request_live/show.ex b/lib/who_need_help_web/live/request_live/show.ex index 628348a..aa84bc6 100644 --- a/lib/who_need_help_web/live/request_live/show.ex +++ b/lib/who_need_help_web/live/request_live/show.ex @@ -1045,6 +1045,7 @@ defmodule WhoNeedHelpWeb.RequestLive.Show do data-map-unavailable-label={ gettext("The map is unavailable in this browser. Request details remain usable.") } + data-map-retry-label={gettext("Try map again")} class="aid-map" /> diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index cc300f3..9ca8b8d 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -137,7 +137,7 @@ msgstr "" msgid "A signal requests human review; optional tracking absence is not proof of abuse." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1056 +#: lib/who_need_help_web/live/request_live/show.ex:1057 #, elixir-autogen, elixir-format msgid "Accept only if you can complete this safely and for free." msgstr "" @@ -163,7 +163,7 @@ msgstr "" msgid "Accounts" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1052 +#: lib/who_need_help_web/live/request_live/show.ex:1053 #, elixir-autogen, elixir-format msgid "Action center" msgstr "" @@ -233,7 +233,7 @@ msgstr "" msgid "All activities" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:227 +#: lib/who_need_help_web/live/request_live/index.ex:331 #, elixir-autogen, elixir-format msgid "All categories" msgstr "" @@ -248,17 +248,17 @@ msgstr "" msgid "Another helper already accepted this request." msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:242 +#: lib/who_need_help_web/live/request_live/index.ex:346 #, elixir-autogen, elixir-format msgid "Any urgency" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:568 +#: lib/who_need_help_web/live/activity_live/show.ex:569 #, elixir-autogen, elixir-format msgid "Approval pending" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:645 +#: lib/who_need_help_web/live/activity_live/show.ex:646 #, elixir-autogen, elixir-format msgid "Approve" msgstr "" @@ -268,14 +268,14 @@ msgstr "" msgid "Approved group chat" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:671 +#: lib/who_need_help_web/live/activity_live/show.ex:672 #, elixir-autogen, elixir-format msgid "Approved participants" msgstr "" #: lib/who_need_help_web/controllers/page_html/home.html.heex:80 #: lib/who_need_help_web/live/activity_live/new.ex:261 -#: lib/who_need_help_web/live/request_live/new.ex:422 +#: lib/who_need_help_web/live/request_live/new.ex:423 #, elixir-autogen, elixir-format msgid "Approximate area" msgstr "" @@ -316,12 +316,12 @@ msgstr "" msgid "Block and report" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:714 +#: lib/who_need_help_web/live/activity_live/show.ex:715 #, elixir-autogen, elixir-format msgid "Block organizer" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1348 +#: lib/who_need_help_web/live/request_live/show.ex:1349 #, elixir-autogen, elixir-format msgid "Block this user" msgstr "" @@ -356,27 +356,27 @@ msgstr "" msgid "COMMUNITY-DRIVEN TAXONOMY" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:665 +#: lib/who_need_help_web/live/activity_live/show.ex:666 #, elixir-autogen, elixir-format msgid "Cancel activity" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1070 -#: lib/who_need_help_web/live/request_live/show.ex:1220 +#: lib/who_need_help_web/live/request_live/show.ex:1071 +#: lib/who_need_help_web/live/request_live/show.ex:1221 #, elixir-autogen, elixir-format msgid "Cancel request" msgstr "" #: lib/who_need_help_web/live/activity_live/index.ex:168 #: lib/who_need_help_web/live/activity_live/show.ex:344 -#: lib/who_need_help_web/live/request_live/index.ex:184 -#: lib/who_need_help_web/live/request_live/index.ex:185 +#: lib/who_need_help_web/live/request_live/index.ex:278 +#: lib/who_need_help_web/live/request_live/index.ex:279 #: lib/who_need_help_web/live/request_live/show.ex:757 #, elixir-autogen, elixir-format msgid "Cancelled" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:225 +#: lib/who_need_help_web/live/request_live/index.ex:329 #: lib/who_need_help_web/live/request_live/new.ex:246 #, elixir-autogen, elixir-format msgid "Category" @@ -415,7 +415,7 @@ msgstr "" msgid "Changing..." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:226 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:237 #, elixir-autogen, elixir-format msgid "Choose a category, urgency, and safe location visibility." msgstr "" @@ -443,8 +443,8 @@ msgstr "" msgid "City centre, near the main entrance" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:732 -#: lib/who_need_help_web/live/request_live/show.ex:1369 +#: lib/who_need_help_web/live/activity_live/show.ex:733 +#: lib/who_need_help_web/live/request_live/show.ex:1370 #, elixir-autogen, elixir-format msgid "Clear" msgstr "" @@ -476,17 +476,17 @@ msgstr "" #: lib/who_need_help_web/live/activity_live/index.ex:262 #: lib/who_need_help_web/live/activity_live/show.ex:397 -#: lib/who_need_help_web/live/activity_live/show.ex:616 -#: lib/who_need_help_web/live/activity_live/show.ex:675 -#: lib/who_need_help_web/live/request_live/index.ex:287 +#: lib/who_need_help_web/live/activity_live/show.ex:617 +#: lib/who_need_help_web/live/activity_live/show.ex:676 +#: lib/who_need_help_web/live/request_live/index.ex:474 #, elixir-autogen, elixir-format msgid "Community member" msgstr "" #: lib/who_need_help_web/live/activity_live/index.ex:167 #: lib/who_need_help_web/live/activity_live/show.ex:343 -#: lib/who_need_help_web/live/request_live/index.ex:182 -#: lib/who_need_help_web/live/request_live/index.ex:183 +#: lib/who_need_help_web/live/request_live/index.ex:276 +#: lib/who_need_help_web/live/request_live/index.ex:277 #: lib/who_need_help_web/live/request_live/show.ex:756 #, elixir-autogen, elixir-format msgid "Completed" @@ -502,7 +502,7 @@ msgstr "" msgid "Confirm and stay logged in" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1191 +#: lib/who_need_help_web/live/request_live/show.ex:1192 #, elixir-autogen, elixir-format msgid "Confirm my part is complete" msgstr "" @@ -557,18 +557,18 @@ msgstr "" msgid "Create category" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:203 +#: lib/who_need_help_web/live/request_live/index.ex:307 #, elixir-autogen, elixir-format msgid "Create urgent request" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:741 +#: lib/who_need_help_web/live/activity_live/show.ex:742 #, elixir-autogen, elixir-format msgid "Dangerous plan" msgstr "" #: lib/who_need_help_web/live/moderation_live.ex:249 -#: lib/who_need_help_web/live/request_live/show.ex:1377 +#: lib/who_need_help_web/live/request_live/show.ex:1378 #, elixir-autogen, elixir-format msgid "Dangerous request" msgstr "" @@ -588,7 +588,7 @@ msgstr "" msgid "Decisions and access to reported chat evidence are written to the audit log." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:652 +#: lib/who_need_help_web/live/activity_live/show.ex:653 #, elixir-autogen, elixir-format msgid "Decline" msgstr "" @@ -670,7 +670,7 @@ msgstr "" msgid "English name" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1264 +#: lib/who_need_help_web/live/request_live/show.ex:1265 #, elixir-autogen, elixir-format msgid "Enter handover code" msgstr "" @@ -716,9 +716,9 @@ msgstr "" msgid "Find people to join" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:742 +#: lib/who_need_help_web/live/activity_live/show.ex:743 #: lib/who_need_help_web/live/moderation_live.ex:251 -#: lib/who_need_help_web/live/request_live/show.ex:1379 +#: lib/who_need_help_web/live/request_live/show.ex:1380 #, elixir-autogen, elixir-format msgid "Fraud" msgstr "" @@ -738,7 +738,7 @@ msgstr "" msgid "GitHub verification is unavailable until the operator configures its OAuth credentials. No manually entered link is treated as verified." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1232 +#: lib/who_need_help_web/live/request_live/show.ex:1233 #, elixir-autogen, elixir-format msgid "HANDOVER CODE FOR THE HELPER" msgstr "" @@ -753,9 +753,9 @@ msgstr "" msgid "Handover code verified." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:740 +#: lib/who_need_help_web/live/activity_live/show.ex:741 #: lib/who_need_help_web/live/moderation_live.ex:250 -#: lib/who_need_help_web/live/request_live/show.ex:1378 +#: lib/who_need_help_web/live/request_live/show.ex:1379 #, elixir-autogen, elixir-format msgid "Harassment" msgstr "" @@ -830,8 +830,8 @@ msgstr "" #: lib/who_need_help_web/controllers/page_html/home.html.heex:54 #: lib/who_need_help_web/controllers/page_html/home.html.heex:86 -#: lib/who_need_help_web/controllers/page_html/home.html.heex:395 -#: lib/who_need_help_web/live/request_live/show.ex:1059 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:406 +#: lib/who_need_help_web/live/request_live/show.ex:1060 #, elixir-autogen, elixir-format msgid "I can help" msgstr "" @@ -868,21 +868,21 @@ msgstr "" #: lib/who_need_help_web/controllers/content_removal_html.ex:9 #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:32 -#: lib/who_need_help_web/live/activity_live/show.ex:744 +#: lib/who_need_help_web/live/activity_live/show.ex:745 #: lib/who_need_help_web/live/moderation_live.ex:254 -#: lib/who_need_help_web/live/request_live/show.ex:1382 +#: lib/who_need_help_web/live/request_live/show.ex:1383 #: lib/who_need_help_web/live/support_operations_live.ex:91 #, elixir-autogen, elixir-format msgid "Impersonation" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1313 +#: lib/who_need_help_web/live/request_live/show.ex:1314 #, elixir-autogen, elixir-format msgid "In a browser this works only while the page remains open. The Android app shows a persistent notification and can continue after it is minimized. Raw coordinates are removed when sharing stops." msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:180 -#: lib/who_need_help_web/live/request_live/index.ex:181 +#: lib/who_need_help_web/live/request_live/index.ex:274 +#: lib/who_need_help_web/live/request_live/index.ex:275 #: lib/who_need_help_web/live/request_live/show.ex:755 #, elixir-autogen, elixir-format msgid "In progress" @@ -915,28 +915,28 @@ msgid "Join requests close" msgstr "" #: lib/who_need_help_web/live/activity_live/new.ex:285 -#: lib/who_need_help_web/live/request_live/new.ex:569 +#: lib/who_need_help_web/live/request_live/new.ex:571 #, elixir-autogen, elixir-format msgid "Latitude" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:603 +#: lib/who_need_help_web/live/activity_live/show.ex:604 #, elixir-autogen, elixir-format msgid "Leave activity" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1311 +#: lib/who_need_help_web/live/request_live/show.ex:1312 #, elixir-autogen, elixir-format msgid "Live location" msgstr "" #: lib/who_need_help_web/controllers/page_html/safety.html.heex:51 -#: lib/who_need_help_web/live/activity_live/show.ex:545 +#: lib/who_need_help_web/live/activity_live/show.ex:546 #, elixir-autogen, elixir-format msgid "Location privacy" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1117 +#: lib/who_need_help_web/live/request_live/show.ex:1118 #, elixir-autogen, elixir-format msgid "Location sharing is optional; missing evidence is not proof of abuse." msgstr "" @@ -972,7 +972,7 @@ msgid "Logged out successfully." msgstr "" #: lib/who_need_help_web/live/activity_live/new.ex:292 -#: lib/who_need_help_web/live/request_live/new.ex:583 +#: lib/who_need_help_web/live/request_live/new.ex:585 #, elixir-autogen, elixir-format msgid "Longitude" msgstr "" @@ -992,18 +992,18 @@ msgstr "" msgid "Manually added links are public and marked unverified. A verified badge is only granted after completing a provider authorization flow." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:662 +#: lib/who_need_help_web/live/activity_live/show.ex:663 #, elixir-autogen, elixir-format msgid "Mark completed" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:231 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:242 #, elixir-autogen, elixir-format msgid "Match and coordinate" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:178 -#: lib/who_need_help_web/live/request_live/index.ex:179 +#: lib/who_need_help_web/live/request_live/index.ex:272 +#: lib/who_need_help_web/live/request_live/index.ex:273 #: lib/who_need_help_web/live/request_live/show.ex:753 #, elixir-autogen, elixir-format msgid "Matched" @@ -1089,12 +1089,12 @@ msgstr "" msgid "Moderator access is required." msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:196 +#: lib/who_need_help_web/live/request_live/index.ex:298 #, elixir-autogen, elixir-format msgid "NEARBY MUTUAL AID" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:97 +#: lib/who_need_help_web/live/request_live/index.ex:31 #, elixir-autogen, elixir-format msgid "Nearby help" msgstr "" @@ -1138,17 +1138,12 @@ msgstr "" msgid "No open activities yet" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:254 -#, elixir-autogen, elixir-format -msgid "No open requests yet" -msgstr "" - #: lib/who_need_help_web/live/moderation_live.ex:461 #, elixir-autogen, elixir-format msgid "No open signals." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:657 +#: lib/who_need_help_web/live/activity_live/show.ex:658 #, elixir-autogen, elixir-format msgid "No pending join requests." msgstr "" @@ -1184,9 +1179,9 @@ msgstr "" msgid "Not for emergencies" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:168 -#: lib/who_need_help_web/live/request_live/index.ex:169 -#: lib/who_need_help_web/live/request_live/index.ex:243 +#: lib/who_need_help_web/live/request_live/index.ex:262 +#: lib/who_need_help_web/live/request_live/index.ex:263 +#: lib/who_need_help_web/live/request_live/index.ex:347 #: lib/who_need_help_web/live/request_live/new.ex:359 #: lib/who_need_help_web/live/request_live/show.ex:744 #: lib/who_need_help_web/live/request_live/show.ex:745 @@ -1199,11 +1194,6 @@ msgstr "" msgid "OPTIONAL SOCIAL PLANS" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:199 -#, elixir-autogen, elixir-format -msgid "Only approximate areas are shown before a safe match." -msgstr "" - #: lib/who_need_help_web/controllers/page_html/safety.html.heex:26 #, elixir-autogen, elixir-format msgid "Only request pickup of a legal item already reserved or paid for. Do not request medical advice, a prescription, controlled substances, cash advances, repackaging, or a purchase on your behalf. Follow pharmacy rules and local law." @@ -1224,8 +1214,8 @@ msgstr "" #: lib/who_need_help_web/live/activity_live/index.ex:166 #: lib/who_need_help_web/live/activity_live/show.ex:342 #: lib/who_need_help_web/live/moderation_live.ex:258 -#: lib/who_need_help_web/live/request_live/index.ex:176 -#: lib/who_need_help_web/live/request_live/index.ex:177 +#: lib/who_need_help_web/live/request_live/index.ex:270 +#: lib/who_need_help_web/live/request_live/index.ex:271 #: lib/who_need_help_web/live/request_live/show.ex:752 #: lib/who_need_help_web/live/support_operations_live.ex:189 #: lib/who_need_help_web/live/support_operations_live.ex:252 @@ -1248,7 +1238,7 @@ msgstr "" msgid "Optional external thank-you link" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1297 +#: lib/who_need_help_web/live/request_live/show.ex:1298 #, elixir-autogen, elixir-format msgid "Optional thank-you link" msgstr "" @@ -1263,7 +1253,7 @@ msgstr "" msgid "Organizer blocked. Their activities and messages are hidden." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:608 +#: lib/who_need_help_web/live/activity_live/show.ex:609 #, elixir-autogen, elixir-format msgid "Organizer controls" msgstr "" @@ -1278,11 +1268,11 @@ msgstr "" #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:59 #: lib/who_need_help_web/controllers/support_html.ex:13 #: lib/who_need_help_web/controllers/support_html/new.html.heex:38 -#: lib/who_need_help_web/live/activity_live/show.ex:745 +#: lib/who_need_help_web/live/activity_live/show.ex:746 #: lib/who_need_help_web/live/moderation_live.ex:255 #: lib/who_need_help_web/live/profile_live.ex:319 #: lib/who_need_help_web/live/public_profile_live.ex:53 -#: lib/who_need_help_web/live/request_live/show.ex:1383 +#: lib/who_need_help_web/live/request_live/show.ex:1384 #: lib/who_need_help_web/live/support_operations_live.ex:85 #: lib/who_need_help_web/live/support_operations_live.ex:100 #, elixir-autogen, elixir-format @@ -1345,12 +1335,12 @@ msgstr "" msgid "Please check the submitted message." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:402 +#: lib/who_need_help_web/live/request_live/new.ex:403 #, elixir-autogen, elixir-format msgid "Podil, near the central pharmacy" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:224 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:235 #, elixir-autogen, elixir-format msgid "Post a clear request" msgstr "" @@ -1377,7 +1367,7 @@ msgid "Profile updated." msgstr "" #: lib/who_need_help_web/live/moderation_live.ex:252 -#: lib/who_need_help_web/live/request_live/show.ex:1380 +#: lib/who_need_help_web/live/request_live/show.ex:1381 #, elixir-autogen, elixir-format msgid "Prohibited item" msgstr "" @@ -1443,13 +1433,13 @@ msgstr "" msgid "Publish proposal" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:637 +#: lib/who_need_help_web/live/request_live/new.ex:639 #, elixir-autogen, elixir-format msgid "Publish request" msgstr "" #: lib/who_need_help_web/live/activity_live/new.ex:311 -#: lib/who_need_help_web/live/request_live/new.ex:635 +#: lib/who_need_help_web/live/request_live/new.ex:637 #, elixir-autogen, elixir-format msgid "Publishing…" msgstr "" @@ -1489,7 +1479,7 @@ msgid "Read the" msgstr "" #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:27 -#: lib/who_need_help_web/live/activity_live/show.ex:738 +#: lib/who_need_help_web/live/activity_live/show.ex:739 #, elixir-autogen, elixir-format msgid "Reason" msgstr "" @@ -1524,7 +1514,7 @@ msgstr "" msgid "Report message" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1375 +#: lib/who_need_help_web/live/request_live/show.ex:1376 #, elixir-autogen, elixir-format msgid "Report reason" msgstr "" @@ -1550,7 +1540,7 @@ msgstr "" msgid "Reports" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1339 +#: lib/who_need_help_web/live/request_live/show.ex:1340 #, elixir-autogen, elixir-format msgid "Reports go to moderators. Blocking hides requests in both directions and prevents new chat messages." msgstr "" @@ -1570,7 +1560,7 @@ msgstr "" msgid "Request restored." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:565 +#: lib/who_need_help_web/live/activity_live/show.ex:566 #, elixir-autogen, elixir-format msgid "Request to join" msgstr "" @@ -1651,8 +1641,8 @@ msgstr "" msgid "Russian name (optional)" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:708 -#: lib/who_need_help_web/live/request_live/show.ex:1337 +#: lib/who_need_help_web/live/activity_live/show.ex:709 +#: lib/who_need_help_web/live/request_live/show.ex:1338 #, elixir-autogen, elixir-format msgid "Safety controls" msgstr "" @@ -1685,9 +1675,9 @@ msgstr "" msgid "Save profile" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:172 -#: lib/who_need_help_web/live/request_live/index.ex:173 -#: lib/who_need_help_web/live/request_live/index.ex:245 +#: lib/who_need_help_web/live/request_live/index.ex:266 +#: lib/who_need_help_web/live/request_live/index.ex:267 +#: lib/who_need_help_web/live/request_live/index.ex:349 #: lib/who_need_help_web/live/request_live/new.ex:361 #: lib/who_need_help_web/live/request_live/show.ex:748 #: lib/who_need_help_web/live/request_live/show.ex:749 @@ -1701,8 +1691,8 @@ msgstr "" msgid "Send" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:754 -#: lib/who_need_help_web/live/request_live/show.ex:1392 +#: lib/who_need_help_web/live/activity_live/show.ex:755 +#: lib/who_need_help_web/live/request_live/show.ex:1393 #, elixir-autogen, elixir-format msgid "Send report" msgstr "" @@ -1712,7 +1702,7 @@ msgstr "" msgid "Set CODEX_SESSION_ID in the deployment environment before the submission recording." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1324 +#: lib/who_need_help_web/live/request_live/show.ex:1325 #, elixir-autogen, elixir-format msgid "Share location" msgstr "" @@ -1799,14 +1789,14 @@ msgstr "" msgid "Social verification session is invalid." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:743 +#: lib/who_need_help_web/live/activity_live/show.ex:744 #: lib/who_need_help_web/live/moderation_live.ex:253 -#: lib/who_need_help_web/live/request_live/show.ex:1381 +#: lib/who_need_help_web/live/request_live/show.ex:1382 #, elixir-autogen, elixir-format msgid "Spam" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1181 +#: lib/who_need_help_web/live/request_live/show.ex:1182 #, elixir-autogen, elixir-format msgid "Start helping" msgstr "" @@ -1821,7 +1811,7 @@ msgstr "" msgid "Status" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1332 +#: lib/who_need_help_web/live/request_live/show.ex:1333 #, elixir-autogen, elixir-format msgid "Stop and delete position" msgstr "" @@ -1898,7 +1888,7 @@ msgstr "" msgid "The link is invalid or it has expired." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:570 +#: lib/who_need_help_web/live/activity_live/show.ex:571 #, elixir-autogen, elixir-format msgid "The organizer has not approved your request yet." msgstr "" @@ -1913,17 +1903,17 @@ msgstr "" msgid "The platform never handles, requires, splits, or guarantees a payment." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:550 +#: lib/who_need_help_web/live/activity_live/show.ex:551 #, elixir-autogen, elixir-format msgid "The public map is approximate or hidden. Exact coordinates appear only after approval." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:726 +#: lib/who_need_help_web/live/activity_live/show.ex:727 #, elixir-autogen, elixir-format msgid "The report is scoped to the selected group message." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1367 +#: lib/who_need_help_web/live/request_live/show.ex:1368 #, elixir-autogen, elixir-format msgid "The report will be scoped to the selected chat message." msgstr "" @@ -1949,7 +1939,7 @@ msgstr "" msgid "This interaction is blocked." msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:210 +#: lib/who_need_help_web/live/request_live/index.ex:314 #: lib/who_need_help_web/live/request_live/show.ex:792 #, elixir-autogen, elixir-format msgid "This is not an emergency service. Contact local emergency services for immediate danger." @@ -1975,7 +1965,7 @@ msgstr "" msgid "This report has no linked conversation." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1302 +#: lib/who_need_help_web/live/request_live/show.ex:1303 #, elixir-autogen, elixir-format msgid "This request already has a helper." msgstr "" @@ -1996,9 +1986,9 @@ msgstr "" msgid "To see sent emails, visit" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:170 -#: lib/who_need_help_web/live/request_live/index.ex:171 -#: lib/who_need_help_web/live/request_live/index.ex:244 +#: lib/who_need_help_web/live/request_live/index.ex:264 +#: lib/who_need_help_web/live/request_live/index.ex:265 +#: lib/who_need_help_web/live/request_live/index.ex:348 #: lib/who_need_help_web/live/request_live/new.ex:360 #: lib/who_need_help_web/live/request_live/show.ex:746 #: lib/who_need_help_web/live/request_live/show.ex:747 @@ -2063,7 +2053,7 @@ msgstr "" msgid "Unblock" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1355 +#: lib/who_need_help_web/live/request_live/show.ex:1356 #, elixir-autogen, elixir-format msgid "Unblock this user" msgstr "" @@ -2078,7 +2068,7 @@ msgstr "" msgid "Update email instructions" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:240 +#: lib/who_need_help_web/live/request_live/index.ex:344 #: lib/who_need_help_web/live/request_live/new.ex:357 #, elixir-autogen, elixir-format msgid "Urgency" @@ -2110,7 +2100,7 @@ msgstr "" msgid "Use my current foreground location" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:233 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:244 #, elixir-autogen, elixir-format msgid "Use private chat and optional live location sharing." msgstr "" @@ -2163,12 +2153,12 @@ msgstr "" msgid "Verify GitHub" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1282 +#: lib/who_need_help_web/live/request_live/show.ex:1283 #, elixir-autogen, elixir-format msgid "Verify handover" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:238 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:249 #, elixir-autogen, elixir-format msgid "Verify the handover" msgstr "" @@ -2183,7 +2173,7 @@ msgstr "" msgid "Visible reviews" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1063 +#: lib/who_need_help_web/live/request_live/show.ex:1064 #, elixir-autogen, elixir-format msgid "Waiting for a nearby volunteer." msgstr "" @@ -2200,8 +2190,8 @@ msgstr "" msgid "What Codex contributed" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:751 -#: lib/who_need_help_web/live/request_live/show.ex:1389 +#: lib/who_need_help_web/live/activity_live/show.ex:752 +#: lib/who_need_help_web/live/request_live/show.ex:1390 #, elixir-autogen, elixir-format msgid "What happened?" msgstr "" @@ -2236,7 +2226,7 @@ msgstr "" msgid "Who Need Help was developed with the local Codex CLI authenticated through the builder's ChatGPT subscription. No OpenAI API key or usage-based API fallback is used." msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:197 +#: lib/who_need_help_web/live/request_live/index.ex:299 #, elixir-autogen, elixir-format msgid "Who needs help?" msgstr "" @@ -2246,7 +2236,7 @@ msgstr "" msgid "Why is this useful?" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1210 +#: lib/who_need_help_web/live/request_live/show.ex:1211 #, elixir-autogen, elixir-format msgid "Withdraw from this request" msgstr "" @@ -2260,8 +2250,8 @@ msgstr "" #: lib/who_need_help_web/live/activity_live/show.ex:298 #: lib/who_need_help_web/live/request_live/new.ex:318 #: lib/who_need_help_web/live/request_live/show.ex:682 -#: lib/who_need_help_web/live/request_live/show.ex:1127 -#: lib/who_need_help_web/live/request_live/show.ex:1135 +#: lib/who_need_help_web/live/request_live/show.ex:1128 +#: lib/who_need_help_web/live/request_live/show.ex:1136 #, elixir-autogen, elixir-format msgid "Yes" msgstr "" @@ -2276,7 +2266,7 @@ msgstr "" msgid "You already voted for this proposal." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:548 +#: lib/who_need_help_web/live/activity_live/show.ex:549 #, elixir-autogen, elixir-format msgid "You are approved, so the map can show the exact meeting coordinates." msgstr "" @@ -2297,11 +2287,6 @@ msgstr "" msgid "You are running the local mail adapter." msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:256 -#, elixir-autogen, elixir-format -msgid "You can be the first person to ask the community." -msgstr "" - #: lib/who_need_help_web/live/request_live/show.ex:723 #, elixir-autogen, elixir-format msgid "You cannot accept your own request." @@ -2344,7 +2329,7 @@ msgstr "" msgid "You withdrew from this request." msgstr "" -#: lib/who_need_help_web/live/activity_live/index.ex:292 +#: lib/who_need_help_web/live/activity_live/index.ex:293 #, elixir-autogen, elixir-format msgid "Your activities" msgstr "" @@ -2365,7 +2350,7 @@ msgid "Your request is now visible to nearby helpers." msgstr "" #: lib/who_need_help_web/controllers/support_html/index.html.heex:6 -#: lib/who_need_help_web/live/request_live/index.ex:342 +#: lib/who_need_help_web/live/request_live/index.ex:555 #, elixir-autogen, elixir-format msgid "Your requests" msgstr "" @@ -2375,7 +2360,7 @@ msgstr "" msgid "Your review is revealed only after both participants submit." msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:319 +#: lib/who_need_help_web/live/request_live/index.ex:534 #, elixir-autogen, elixir-format msgid "Your trust summary" msgstr "" @@ -2400,20 +2385,20 @@ msgstr "" #: lib/who_need_help_web/live/activity_live/index.ex:261 #: lib/who_need_help_web/live/category_proposal_live.ex:188 #: lib/who_need_help_web/live/moderation_live.ex:318 -#: lib/who_need_help_web/live/request_live/index.ex:286 +#: lib/who_need_help_web/live/request_live/index.ex:473 #, elixir-autogen, elixir-format msgid "by %{name}" msgstr "" #: lib/who_need_help_web/live/profile_live.ex:189 #: lib/who_need_help_web/live/public_profile_live.ex:128 -#: lib/who_need_help_web/live/request_live/index.ex:323 -#: lib/who_need_help_web/live/request_live/show.ex:1086 +#: lib/who_need_help_web/live/request_live/index.ex:538 +#: lib/who_need_help_web/live/request_live/show.ex:1087 #, elixir-autogen, elixir-format msgid "completed" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:291 +#: lib/who_need_help_web/live/request_live/index.ex:478 #, elixir-autogen, elixir-format msgid "expires %{time}" msgstr "" @@ -2423,22 +2408,22 @@ msgstr "" msgid "for an account now." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1113 +#: lib/who_need_help_web/live/request_live/show.ex:1114 #, elixir-autogen, elixir-format msgid "helper movement supported" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1114 +#: lib/who_need_help_web/live/request_live/show.ex:1115 #, elixir-autogen, elixir-format msgid "no movement evidence" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1105 +#: lib/who_need_help_web/live/request_live/show.ex:1106 #, elixir-autogen, elixir-format msgid "no proximity evidence" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:678 +#: lib/who_need_help_web/live/activity_live/show.ex:679 #, elixir-autogen, elixir-format msgid "organizer" msgstr "" @@ -2448,20 +2433,20 @@ msgstr "" msgid "participants only" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:328 -#: lib/who_need_help_web/live/request_live/show.ex:1090 +#: lib/who_need_help_web/live/request_live/index.ex:542 +#: lib/who_need_help_web/live/request_live/show.ex:1091 #, elixir-autogen, elixir-format msgid "people" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1104 +#: lib/who_need_help_web/live/request_live/show.ex:1105 #, elixir-autogen, elixir-format msgid "proximity supported" msgstr "" #: lib/who_need_help_web/live/profile_live.ex:204 #: lib/who_need_help_web/live/public_profile_live.ex:140 -#: lib/who_need_help_web/live/request_live/show.ex:1094 +#: lib/who_need_help_web/live/request_live/show.ex:1095 #, elixir-autogen, elixir-format msgid "rating" msgstr "" @@ -2488,12 +2473,12 @@ msgid "unique people" msgstr "" #: lib/who_need_help_web/live/activity_live/show.ex:420 -#: lib/who_need_help_web/live/activity_live/show.ex:636 -#: lib/who_need_help_web/live/activity_live/show.ex:697 +#: lib/who_need_help_web/live/activity_live/show.ex:637 +#: lib/who_need_help_web/live/activity_live/show.ex:698 #: lib/who_need_help_web/live/profile_live.ex:285 #: lib/who_need_help_web/live/public_profile_live.ex:98 #: lib/who_need_help_web/live/request_live/show.ex:867 -#: lib/who_need_help_web/live/request_live/show.ex:1173 +#: lib/who_need_help_web/live/request_live/show.ex:1174 #, elixir-autogen, elixir-format msgid "unverified" msgstr "" @@ -2504,13 +2489,13 @@ msgid "urgent" msgstr "" #: lib/who_need_help_web/live/activity_live/show.ex:419 -#: lib/who_need_help_web/live/activity_live/show.ex:635 -#: lib/who_need_help_web/live/activity_live/show.ex:696 +#: lib/who_need_help_web/live/activity_live/show.ex:636 +#: lib/who_need_help_web/live/activity_live/show.ex:697 #: lib/who_need_help_web/live/profile_live.ex:284 #: lib/who_need_help_web/live/public_profile_live.ex:98 -#: lib/who_need_help_web/live/request_live/index.ex:333 +#: lib/who_need_help_web/live/request_live/index.ex:546 #: lib/who_need_help_web/live/request_live/show.ex:866 -#: lib/who_need_help_web/live/request_live/show.ex:1172 +#: lib/who_need_help_web/live/request_live/show.ex:1173 #, elixir-autogen, elixir-format msgid "verified" msgstr "" @@ -2547,8 +2532,8 @@ msgstr "" msgid "Approved" msgstr "" -#: lib/who_need_help_web/live/request_live/index.ex:186 -#: lib/who_need_help_web/live/request_live/index.ex:187 +#: lib/who_need_help_web/live/request_live/index.ex:280 +#: lib/who_need_help_web/live/request_live/index.ex:281 #, elixir-autogen, elixir-format msgid "Expired" msgstr "" @@ -2602,7 +2587,7 @@ msgid "Load earlier messages" msgstr "" #: lib/who_need_help_web/live/activity_live/index.ex:273 -#: lib/who_need_help_web/live/activity_live/index.ex:310 +#: lib/who_need_help_web/live/activity_live/index.ex:311 #: lib/who_need_help_web/live/category_proposal_live.ex:220 #: lib/who_need_help_web/live/leaderboard_live.ex:91 #: lib/who_need_help_web/live/moderation_live.ex:385 @@ -2612,8 +2597,7 @@ msgstr "" #: lib/who_need_help_web/live/profile_live.ex:232 #: lib/who_need_help_web/live/profile_live.ex:362 #: lib/who_need_help_web/live/public_profile_live.ex:173 -#: lib/who_need_help_web/live/request_live/index.ex:303 -#: lib/who_need_help_web/live/request_live/index.ex:360 +#: lib/who_need_help_web/live/request_live/index.ex:573 #: lib/who_need_help_web/live/support_operations_live.ex:215 #: lib/who_need_help_web/live/support_operations_live.ex:276 #, elixir-autogen, elixir-format @@ -2622,7 +2606,7 @@ msgstr "" #: lib/who_need_help_web/live/activity_live/index.ex:284 #: lib/who_need_help_web/live/activity_live/show.ex:540 -#: lib/who_need_help_web/live/request_live/index.ex:314 +#: lib/who_need_help_web/live/request_live/index.ex:515 #: lib/who_need_help_web/live/request_live/show.ex:1046 #, elixir-autogen, elixir-format msgid "The map is unavailable in this browser. Request details remain usable." @@ -3363,8 +3347,8 @@ msgstr "" msgid "Subject" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:762 -#: lib/who_need_help_web/live/request_live/show.ex:1400 +#: lib/who_need_help_web/live/activity_live/show.ex:763 +#: lib/who_need_help_web/live/request_live/show.ex:1401 #, elixir-autogen, elixir-format msgid "Submit a legal content-removal notice" msgstr "" @@ -3610,7 +3594,7 @@ msgstr "" msgid "and" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:214 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:225 #, elixir-autogen, elixir-format msgid "A clear handover" msgstr "" @@ -3625,7 +3609,7 @@ msgstr "" msgid "A puncture, broken chain, tyre problem, or similar practical help." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:191 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:202 #, elixir-autogen, elixir-format msgid "Accept and open private coordination" msgstr "" @@ -3642,7 +3626,7 @@ msgstr "" msgid "Ask a nearby volunteer to collect medicine that is already purchased or help with a safe roadside problem. There is no mandatory fee." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:328 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:339 #, elixir-autogen, elixir-format msgid "Before you create a request" msgstr "" @@ -3657,7 +3641,7 @@ msgstr "" msgid "Bicycle or motorcycle" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:240 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:251 #, elixir-autogen, elixir-format msgid "Both confirm, the helper enters a one-time code, and reviews stay blind until both submit." msgstr "" @@ -3667,12 +3651,12 @@ msgstr "" msgid "Bring fuel" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:252 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:263 #, elixir-autogen, elixir-format msgid "Built for safer coordination" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:344 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:355 #, elixir-autogen, elixir-format msgid "Can a volunteer buy medicine for me?" msgstr "" @@ -3687,37 +3671,37 @@ msgstr "" msgid "Collect medicine" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:367 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:378 #, elixir-autogen, elixir-format msgid "Contact the emergency service for your location. Who Need Help is for voluntary practical coordination, not emergencies." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:380 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:391 #, elixir-autogen, elixir-format msgid "Create one account, choose your role for each situation, and keep control of what you share." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:202 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:213 #, elixir-autogen, elixir-format msgid "Current coordinates are optional and deleted when sharing stops." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:153 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:156 #, elixir-autogen, elixir-format msgid "Demo map with synthetic approximate help requests" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:182 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:193 #, elixir-autogen, elixir-format msgid "Discover an approximate area" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:334 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:345 #, elixir-autogen, elixir-format msgid "Do I have to pay a helper?" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:160 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:171 #, elixir-autogen, elixir-format msgid "Example data — not live requests" msgstr "" @@ -3727,12 +3711,12 @@ msgstr "" msgid "Example request" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:316 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:327 #, elixir-autogen, elixir-format msgid "Explore activities" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:307 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:318 #, elixir-autogen, elixir-format msgid "Find company for coffee, cinema, a walk, or a hike" msgstr "" @@ -3747,17 +3731,17 @@ msgstr "" msgid "Free, nearby, voluntary help" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:217 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:228 #, elixir-autogen, elixir-format msgid "From request to verified completion" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:289 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:300 #, elixir-autogen, elixir-format msgid "Handover codes and unique completed matches matter more than raw totals." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:264 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:275 #, elixir-autogen, elixir-format msgid "Help is voluntary. An external thank-you link is optional after completion." msgstr "" @@ -3768,17 +3752,17 @@ msgid "Help with a wheel" msgstr "" #: lib/who_need_help_web/controllers/page_html/home.html.heex:51 -#: lib/who_need_help_web/controllers/page_html/home.html.heex:389 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:400 #, elixir-autogen, elixir-format msgid "I need help" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:158 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:163 #, elixir-autogen, elixir-format msgid "Interactive demo" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:280 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:291 #, elixir-autogen, elixir-format msgid "Leave a match, block a person, or send a scoped report when something feels wrong." msgstr "" @@ -3793,17 +3777,17 @@ msgstr "" msgid "Need help nearby? Ask the community." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:262 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:273 #, elixir-autogen, elixir-format msgid "No mandatory payment" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:337 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:348 #, elixir-autogen, elixir-format msgid "No. Help has no mandatory fee. A helper may optionally publish an external thank-you link after a completed handover." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:304 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:315 #, elixir-autogen, elixir-format msgid "Not only urgent help" msgstr "" @@ -3813,52 +3797,52 @@ msgstr "" msgid "Only after people and the vehicle are away from active traffic danger." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:193 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:204 #, elixir-autogen, elixir-format msgid "Only the matched requester and helper receive the private chat." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:167 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:178 #, elixir-autogen, elixir-format msgid "Privacy by default" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:271 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:282 #, elixir-autogen, elixir-format msgid "Private matched chat" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:325 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:336 #, elixir-autogen, elixir-format msgid "Quick answers" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:295 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:306 #, elixir-autogen, elixir-format msgid "Read the safety rules" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:378 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:389 #, elixir-autogen, elixir-format msgid "Ready to ask or help nearby?" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:278 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:289 #, elixir-autogen, elixir-format msgid "Reports and blocking" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:170 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:181 #, elixir-autogen, elixir-format msgid "See nearby needs without exposing a home address" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:200 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:211 #, elixir-autogen, elixir-format msgid "Share live location only by choice" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:310 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:321 #, elixir-autogen, elixir-format msgid "Social activities are separate from urgent requests. Organizers approve participants, and exact meeting details stay inside the approved group." msgstr "" @@ -3868,37 +3852,32 @@ msgstr "" msgid "Start with urgent practical help" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:150 -#, elixir-autogen, elixir-format -msgid "The demo map is unavailable. The example steps remain available beside it." -msgstr "" - #: lib/who_need_help_web/controllers/page_html/home.html.heex:113 #, elixir-autogen, elixir-format msgid "The medicine is already legally purchased or reserved for pickup." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:347 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:358 #, elixir-autogen, elixir-format msgid "The medicine must already be legally purchased or reserved. The service does not prescribe, recommend, sell, or handle controlled substances." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:184 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:195 #, elixir-autogen, elixir-format msgid "The public marker does not need to reveal an exact address." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:273 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:284 #, elixir-autogen, elixir-format msgid "There is no unsolicited inbox between strangers." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:173 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:184 #, elixir-autogen, elixir-format msgid "These three points are synthetic examples. Real public discovery follows each requester's location visibility choice." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:287 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:298 #, elixir-autogen, elixir-format msgid "Verified reputation signals" msgstr "" @@ -3908,22 +3887,22 @@ msgstr "" msgid "What can you ask the community for?" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:364 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:375 #, elixir-autogen, elixir-format msgid "What if there is immediate danger?" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:354 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:365 #, elixir-autogen, elixir-format msgid "Who can see my exact address?" msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:357 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:368 #, elixir-autogen, elixir-format msgid "You choose the visibility. Exact active coordinates can be limited to the matched helper and are removed when sharing stops." msgstr "" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:255 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:266 #, elixir-autogen, elixir-format msgid "You stay in control of the match" msgstr "" @@ -4012,7 +3991,7 @@ msgid "Use my password instead" msgstr "" #: lib/who_need_help_web/controllers/google_auth_html/complete.html.heex:30 -#: lib/who_need_help_web/live/request_live/show.ex:1143 +#: lib/who_need_help_web/live/request_live/show.ex:1144 #, elixir-autogen, elixir-format msgid "Verified" msgstr "" @@ -4052,7 +4031,7 @@ msgstr "" msgid "A volunteer accepted this request. Use private chat to coordinate safely." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:536 +#: lib/who_need_help_web/live/request_live/new.ex:538 #, elixir-autogen, elixir-format msgid "After a helper accepts" msgstr "" @@ -4062,12 +4041,12 @@ msgstr "" msgid "Already registered? Check your email" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:401 +#: lib/who_need_help_web/live/request_live/new.ex:402 #, elixir-autogen, elixir-format msgid "Area or public landmark" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:500 +#: lib/who_need_help_web/live/request_live/new.ex:502 #, elixir-autogen, elixir-format msgid "Area radius" msgstr "" @@ -4098,7 +4077,7 @@ msgid "Choose a category from the same mode." msgstr "" #: lib/who_need_help_web/live/request_live/new.ex:383 -#: lib/who_need_help_web/live/request_live/new.ex:553 +#: lib/who_need_help_web/live/request_live/new.ex:555 #, elixir-autogen, elixir-format msgid "Choose a place on the map or use your current location." msgstr "" @@ -4118,18 +4097,18 @@ msgstr "" msgid "Choose an expiry time in the future." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1243 +#: lib/who_need_help_web/live/request_live/show.ex:1244 #, elixir-autogen, elixir-format msgid "Copied" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1242 -#: lib/who_need_help_web/live/request_live/show.ex:1248 +#: lib/who_need_help_web/live/request_live/show.ex:1243 +#: lib/who_need_help_web/live/request_live/show.ex:1249 #, elixir-autogen, elixir-format msgid "Copy code" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1244 +#: lib/who_need_help_web/live/request_live/show.ex:1245 #, elixir-autogen, elixir-format msgid "Copy failed" msgstr "" @@ -4139,27 +4118,27 @@ msgstr "" msgid "Date" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:561 +#: lib/who_need_help_web/live/request_live/new.ex:563 #, elixir-autogen, elixir-format msgid "Enter coordinates manually" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1276 +#: lib/who_need_help_web/live/request_live/show.ex:1277 #, elixir-autogen, elixir-format msgid "Enter the six digits shown to the requester." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:436 +#: lib/who_need_help_web/live/request_live/new.ex:437 #, elixir-autogen, elixir-format msgid "Exact point" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:627 +#: lib/who_need_help_web/live/request_live/new.ex:629 #, elixir-autogen, elixir-format msgid "Fix the following details and publish again:" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:563 +#: lib/who_need_help_web/live/request_live/new.ex:565 #, elixir-autogen, elixir-format msgid "For an approximate area, these coordinates are the area center—not your exact position." msgstr "" @@ -4169,12 +4148,12 @@ msgstr "" msgid "For privacy, this page cannot reveal whether an account exists. If you are new to Who Need Help, choose Register instead." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1140 +#: lib/who_need_help_web/live/request_live/show.ex:1141 #, elixir-autogen, elixir-format msgid "Handover code" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1152 +#: lib/who_need_help_web/live/request_live/show.ex:1153 #, elixir-autogen, elixir-format msgid "Help completed and verified by both participants." msgstr "" @@ -4189,17 +4168,17 @@ msgstr "" msgid "Help is now in progress." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1132 +#: lib/who_need_help_web/live/request_live/show.ex:1133 #, elixir-autogen, elixir-format msgid "Helper confirmed" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1075 +#: lib/who_need_help_web/live/request_live/show.ex:1076 #, elixir-autogen, elixir-format msgid "Helper:" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:481 +#: lib/who_need_help_web/live/request_live/new.ex:483 #, elixir-autogen, elixir-format msgid "Helpers will see only the area or landmark written above. You can share a live location later after matching." msgstr "" @@ -4229,12 +4208,12 @@ msgstr "" msgid "Location is unavailable in this browser." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:394 +#: lib/who_need_help_web/live/request_live/new.ex:395 #, elixir-autogen, elixir-format msgid "Location permission was denied." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:521 +#: lib/who_need_help_web/live/request_live/new.ex:523 #, elixir-autogen, elixir-format msgid "Move the map area so it covers a useful public meeting place." msgstr "" @@ -4244,7 +4223,7 @@ msgstr "" msgid "New notice" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:479 +#: lib/who_need_help_web/live/request_live/new.ex:481 #, elixir-autogen, elixir-format msgid "No coordinates will be stored" msgstr "" @@ -4254,7 +4233,7 @@ msgstr "" msgid "No map coordinates will be stored." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:450 +#: lib/who_need_help_web/live/request_live/new.ex:451 #, elixir-autogen, elixir-format msgid "No map location" msgstr "" @@ -4269,7 +4248,7 @@ msgstr "" msgid "Only notices submitted while signed in appear here. Notices submitted without an account remain accessible through their private email link." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:451 +#: lib/who_need_help_web/live/request_live/new.ex:452 #, elixir-autogen, elixir-format msgid "Only the public area description" msgstr "" @@ -4289,9 +4268,9 @@ msgstr "" msgid "Optional thanks" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1128 -#: lib/who_need_help_web/live/request_live/show.ex:1136 -#: lib/who_need_help_web/live/request_live/show.ex:1144 +#: lib/who_need_help_web/live/request_live/show.ex:1129 +#: lib/who_need_help_web/live/request_live/show.ex:1137 +#: lib/who_need_help_web/live/request_live/show.ex:1145 #, elixir-autogen, elixir-format msgid "Pending" msgstr "" @@ -4311,7 +4290,7 @@ msgstr "" msgid "Read" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:423 +#: lib/who_need_help_web/live/request_live/new.ex:424 #, elixir-autogen, elixir-format msgid "Recommended for privacy" msgstr "" @@ -4331,17 +4310,17 @@ msgstr "" msgid "Request expires" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:564 +#: lib/who_need_help_web/live/activity_live/show.ex:565 #, elixir-autogen, elixir-format msgid "Request to join again" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:626 +#: lib/who_need_help_web/live/request_live/new.ex:628 #, elixir-autogen, elixir-format msgid "Request was not published" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1124 +#: lib/who_need_help_web/live/request_live/show.ex:1125 #, elixir-autogen, elixir-format msgid "Requester confirmed" msgstr "" @@ -4388,7 +4367,7 @@ msgstr "" msgid "Status updates go to the email address of your signed-in account." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:463 +#: lib/who_need_help_web/live/request_live/new.ex:464 #, elixir-autogen, elixir-format msgid "The map is unavailable. You can use the manual coordinate fallback." msgstr "" @@ -4403,7 +4382,7 @@ msgstr "" msgid "This activity is closed. The group chat remains available as read-only history." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:405 +#: lib/who_need_help_web/live/request_live/new.ex:406 #, elixir-autogen, elixir-format msgid "This description is visible to everyone. Do not enter a private address." msgstr "" @@ -4423,7 +4402,7 @@ msgstr "" msgid "This help request was cancelled. Chat history is read-only." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1158 +#: lib/who_need_help_web/live/request_live/show.ex:1159 #, elixir-autogen, elixir-format msgid "This match was cancelled. No further handover action is required." msgstr "" @@ -4433,7 +4412,7 @@ msgstr "" msgid "This person has not added a public bio yet." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:528 +#: lib/who_need_help_web/live/request_live/new.ex:530 #, elixir-autogen, elixir-format msgid "This point is public" msgstr "" @@ -4468,7 +4447,7 @@ msgstr "" msgid "Tomorrow" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:529 +#: lib/who_need_help_web/live/request_live/new.ex:531 #, elixir-autogen, elixir-format msgid "Use a safe public meeting point instead of a private address." msgstr "" @@ -4478,7 +4457,7 @@ msgstr "" msgid "Use another email" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:496 +#: lib/who_need_help_web/live/request_live/new.ex:498 #, elixir-autogen, elixir-format msgid "Use my location" msgstr "" @@ -4493,7 +4472,7 @@ msgstr "" msgid "Use the newest confirmation link if it arrives." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1280 +#: lib/who_need_help_web/live/request_live/show.ex:1281 #, elixir-autogen, elixir-format msgid "Verifying…" msgstr "" @@ -4516,7 +4495,7 @@ msgstr "" msgid "View my requests" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:437 +#: lib/who_need_help_web/live/request_live/new.ex:438 #, elixir-autogen, elixir-format msgid "Visible before matching" msgstr "" @@ -4531,27 +4510,27 @@ msgstr "" msgid "Voted" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:410 +#: lib/who_need_help_web/live/request_live/new.ex:411 #, elixir-autogen, elixir-format msgid "What should people see?" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:398 +#: lib/who_need_help_web/live/request_live/new.ex:399 #, elixir-autogen, elixir-format msgid "Where is help needed?" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:579 +#: lib/who_need_help_web/live/activity_live/show.ex:580 #, elixir-autogen, elixir-format msgid "You are no longer a participant and cannot access the group chat or exact meeting point. You can request to join again while registration is open." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:590 +#: lib/who_need_help_web/live/activity_live/show.ex:591 #, elixir-autogen, elixir-format msgid "You are not a participant. You can send a new request while registration is open." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:538 +#: lib/who_need_help_web/live/request_live/new.ex:540 #, elixir-autogen, elixir-format msgid "You can separately share live location with the matched person and stop sharing at any time." msgstr "" @@ -4561,22 +4540,22 @@ msgstr "" msgid "You have not submitted any content-removal notices while signed in." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:577 +#: lib/who_need_help_web/live/activity_live/show.ex:578 #, elixir-autogen, elixir-format msgid "You left this activity" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1200 +#: lib/who_need_help_web/live/request_live/show.ex:1201 #, elixir-autogen, elixir-format msgid "Your completion confirmation is saved." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:520 +#: lib/who_need_help_web/live/request_live/new.ex:522 #, elixir-autogen, elixir-format msgid "Your exact position is not shown" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:588 +#: lib/who_need_help_web/live/activity_live/show.ex:589 #, elixir-autogen, elixir-format msgid "Your join request was declined" msgstr "" @@ -4601,12 +4580,12 @@ msgstr "" msgid "Area selected. Drag the green pin or click the map to move it." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:470 +#: lib/who_need_help_web/live/request_live/new.ex:472 #, elixir-autogen, elixir-format msgid "Click the map or drag the green pin to move the area" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:473 +#: lib/who_need_help_web/live/request_live/new.ex:475 #, elixir-autogen, elixir-format msgid "Click the map or drag the red pin to move the point" msgstr "" @@ -4625,3 +4604,116 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Exact point selected. Drag the red pin or click the map to move it." msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:371 +#, elixir-autogen, elixir-format +msgid "%{count} request in this map area" +msgid_plural "%{count} requests in this map area" +msgstr[0] "" +msgstr[1] "" + +#: lib/who_need_help_web/live/request_live/index.ex:354 +#, elixir-autogen, elixir-format +msgid "Area or city" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:424 +#, elixir-autogen, elixir-format +msgid "Choose an area on the map" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:301 +#, elixir-autogen, elixir-format +msgid "Explore privacy-friendly areas and public exact meeting points chosen by requesters." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:392 +#, elixir-autogen, elixir-format +msgid "List" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:491 +#, elixir-autogen, elixir-format +msgid "Load more in this area" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:412 +#, elixir-autogen, elixir-format +msgid "Map" +msgstr "" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:168 +#, elixir-autogen, elixir-format +msgid "Map preview" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:436 +#, elixir-autogen, elixir-format +msgid "Move or zoom the map to search somewhere else." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:379 +#, elixir-autogen, elixir-format +msgid "Move the map, then search the newly visible area." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:434 +#, elixir-autogen, elixir-format +msgid "No open requests in this area" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:426 +#, elixir-autogen, elixir-format +msgid "Only requests from the selected map area will be loaded." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:518 +#, elixir-autogen, elixir-format +msgid "Open request" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:355 +#, elixir-autogen, elixir-format +msgid "Optional text search" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:497 +#, elixir-autogen, elixir-format +msgid "Requests without map coordinates appear only when their public area description matches the text search." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:383 +#, elixir-autogen, elixir-format +msgid "Results layout" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:529 +#, elixir-autogen, elixir-format +msgid "Search this area" +msgstr "" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:164 +#, elixir-autogen, elixir-format +msgid "Static preview" +msgstr "" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:150 +#, elixir-autogen, elixir-format +msgid "The interactive demo could not start in this browser. You can retry or use the example steps beside it." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:402 +#, elixir-autogen, elixir-format +msgid "Together" +msgstr "" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:154 +#: lib/who_need_help_web/live/activity_live/index.ex:286 +#: lib/who_need_help_web/live/activity_live/show.ex:542 +#: lib/who_need_help_web/live/request_live/index.ex:517 +#: lib/who_need_help_web/live/request_live/new.ex:394 +#: lib/who_need_help_web/live/request_live/new.ex:466 +#: lib/who_need_help_web/live/request_live/show.ex:1048 +#, elixir-autogen, elixir-format +msgid "Try map again" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 0827c86..51d3a39 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -137,7 +137,7 @@ msgstr "A link to confirm your email change has been sent to the new address." msgid "A signal requests human review; optional tracking absence is not proof of abuse." msgstr "A signal requests human review; optional tracking absence is not proof of abuse." -#: lib/who_need_help_web/live/request_live/show.ex:1056 +#: lib/who_need_help_web/live/request_live/show.ex:1057 #, elixir-autogen, elixir-format msgid "Accept only if you can complete this safely and for free." msgstr "Accept only if you can complete this safely and for free." @@ -163,7 +163,7 @@ msgstr "Account and language" msgid "Accounts" msgstr "Accounts" -#: lib/who_need_help_web/live/request_live/show.ex:1052 +#: lib/who_need_help_web/live/request_live/show.ex:1053 #, elixir-autogen, elixir-format msgid "Action center" msgstr "Action center" @@ -233,7 +233,7 @@ msgstr "Administrator" msgid "All activities" msgstr "All activities" -#: lib/who_need_help_web/live/request_live/index.ex:227 +#: lib/who_need_help_web/live/request_live/index.ex:331 #, elixir-autogen, elixir-format msgid "All categories" msgstr "All categories" @@ -248,17 +248,17 @@ msgstr "Already registered?" msgid "Another helper already accepted this request." msgstr "Another helper already accepted this request." -#: lib/who_need_help_web/live/request_live/index.ex:242 +#: lib/who_need_help_web/live/request_live/index.ex:346 #, elixir-autogen, elixir-format msgid "Any urgency" msgstr "Any urgency" -#: lib/who_need_help_web/live/activity_live/show.ex:568 +#: lib/who_need_help_web/live/activity_live/show.ex:569 #, elixir-autogen, elixir-format msgid "Approval pending" msgstr "Approval pending" -#: lib/who_need_help_web/live/activity_live/show.ex:645 +#: lib/who_need_help_web/live/activity_live/show.ex:646 #, elixir-autogen, elixir-format msgid "Approve" msgstr "Approve" @@ -268,14 +268,14 @@ msgstr "Approve" msgid "Approved group chat" msgstr "Approved group chat" -#: lib/who_need_help_web/live/activity_live/show.ex:671 +#: lib/who_need_help_web/live/activity_live/show.ex:672 #, elixir-autogen, elixir-format msgid "Approved participants" msgstr "Approved participants" #: lib/who_need_help_web/controllers/page_html/home.html.heex:80 #: lib/who_need_help_web/live/activity_live/new.ex:261 -#: lib/who_need_help_web/live/request_live/new.ex:422 +#: lib/who_need_help_web/live/request_live/new.ex:423 #, elixir-autogen, elixir-format msgid "Approximate area" msgstr "Approximate area" @@ -316,12 +316,12 @@ msgstr "Block a person to hide discovery in both directions and stop new chat. R msgid "Block and report" msgstr "Block and report" -#: lib/who_need_help_web/live/activity_live/show.ex:714 +#: lib/who_need_help_web/live/activity_live/show.ex:715 #, elixir-autogen, elixir-format msgid "Block organizer" msgstr "Block organizer" -#: lib/who_need_help_web/live/request_live/show.ex:1348 +#: lib/who_need_help_web/live/request_live/show.ex:1349 #, elixir-autogen, elixir-format msgid "Block this user" msgstr "Block this user" @@ -356,27 +356,27 @@ msgstr "COMMUNITY TRUST" msgid "COMMUNITY-DRIVEN TAXONOMY" msgstr "COMMUNITY-DRIVEN TAXONOMY" -#: lib/who_need_help_web/live/activity_live/show.ex:665 +#: lib/who_need_help_web/live/activity_live/show.ex:666 #, elixir-autogen, elixir-format msgid "Cancel activity" msgstr "Cancel activity" -#: lib/who_need_help_web/live/request_live/show.ex:1070 -#: lib/who_need_help_web/live/request_live/show.ex:1220 +#: lib/who_need_help_web/live/request_live/show.ex:1071 +#: lib/who_need_help_web/live/request_live/show.ex:1221 #, elixir-autogen, elixir-format msgid "Cancel request" msgstr "Cancel request" #: lib/who_need_help_web/live/activity_live/index.ex:168 #: lib/who_need_help_web/live/activity_live/show.ex:344 -#: lib/who_need_help_web/live/request_live/index.ex:184 -#: lib/who_need_help_web/live/request_live/index.ex:185 +#: lib/who_need_help_web/live/request_live/index.ex:278 +#: lib/who_need_help_web/live/request_live/index.ex:279 #: lib/who_need_help_web/live/request_live/show.ex:757 #, elixir-autogen, elixir-format msgid "Cancelled" msgstr "Cancelled" -#: lib/who_need_help_web/live/request_live/index.ex:225 +#: lib/who_need_help_web/live/request_live/index.ex:329 #: lib/who_need_help_web/live/request_live/new.ex:246 #, elixir-autogen, elixir-format msgid "Category" @@ -415,7 +415,7 @@ msgstr "Change role" msgid "Changing..." msgstr "Changing..." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:226 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:237 #, elixir-autogen, elixir-format msgid "Choose a category, urgency, and safe location visibility." msgstr "Choose a category, urgency, and safe location visibility." @@ -443,8 +443,8 @@ msgstr "Choose…" msgid "City centre, near the main entrance" msgstr "City centre, near the main entrance" -#: lib/who_need_help_web/live/activity_live/show.ex:732 -#: lib/who_need_help_web/live/request_live/show.ex:1369 +#: lib/who_need_help_web/live/activity_live/show.ex:733 +#: lib/who_need_help_web/live/request_live/show.ex:1370 #, elixir-autogen, elixir-format msgid "Clear" msgstr "Clear" @@ -476,17 +476,17 @@ msgstr "Community helpers" #: lib/who_need_help_web/live/activity_live/index.ex:262 #: lib/who_need_help_web/live/activity_live/show.ex:397 -#: lib/who_need_help_web/live/activity_live/show.ex:616 -#: lib/who_need_help_web/live/activity_live/show.ex:675 -#: lib/who_need_help_web/live/request_live/index.ex:287 +#: lib/who_need_help_web/live/activity_live/show.ex:617 +#: lib/who_need_help_web/live/activity_live/show.ex:676 +#: lib/who_need_help_web/live/request_live/index.ex:474 #, elixir-autogen, elixir-format msgid "Community member" msgstr "Community member" #: lib/who_need_help_web/live/activity_live/index.ex:167 #: lib/who_need_help_web/live/activity_live/show.ex:343 -#: lib/who_need_help_web/live/request_live/index.ex:182 -#: lib/who_need_help_web/live/request_live/index.ex:183 +#: lib/who_need_help_web/live/request_live/index.ex:276 +#: lib/who_need_help_web/live/request_live/index.ex:277 #: lib/who_need_help_web/live/request_live/show.ex:756 #, elixir-autogen, elixir-format msgid "Completed" @@ -502,7 +502,7 @@ msgstr "Confirm and log in only this time" msgid "Confirm and stay logged in" msgstr "Confirm and stay logged in" -#: lib/who_need_help_web/live/request_live/show.ex:1191 +#: lib/who_need_help_web/live/request_live/show.ex:1192 #, elixir-autogen, elixir-format msgid "Confirm my part is complete" msgstr "Confirm my part is complete" @@ -557,18 +557,18 @@ msgstr "Create an activity" msgid "Create category" msgstr "Create category" -#: lib/who_need_help_web/live/request_live/index.ex:203 +#: lib/who_need_help_web/live/request_live/index.ex:307 #, elixir-autogen, elixir-format msgid "Create urgent request" msgstr "Create urgent request" -#: lib/who_need_help_web/live/activity_live/show.ex:741 +#: lib/who_need_help_web/live/activity_live/show.ex:742 #, elixir-autogen, elixir-format msgid "Dangerous plan" msgstr "Dangerous plan" #: lib/who_need_help_web/live/moderation_live.ex:249 -#: lib/who_need_help_web/live/request_live/show.ex:1377 +#: lib/who_need_help_web/live/request_live/show.ex:1378 #, elixir-autogen, elixir-format msgid "Dangerous request" msgstr "Dangerous request" @@ -588,7 +588,7 @@ msgstr "Decision note" msgid "Decisions and access to reported chat evidence are written to the audit log." msgstr "Decisions and access to reported chat evidence are written to the audit log." -#: lib/who_need_help_web/live/activity_live/show.ex:652 +#: lib/who_need_help_web/live/activity_live/show.ex:653 #, elixir-autogen, elixir-format msgid "Decline" msgstr "Decline" @@ -670,7 +670,7 @@ msgstr "English description" msgid "English name" msgstr "English name" -#: lib/who_need_help_web/live/request_live/show.ex:1264 +#: lib/who_need_help_web/live/request_live/show.ex:1265 #, elixir-autogen, elixir-format msgid "Enter handover code" msgstr "Enter handover code" @@ -716,9 +716,9 @@ msgstr "Explain what is already arranged and what the volunteer needs to do." msgid "Find people to join" msgstr "Find people to join" -#: lib/who_need_help_web/live/activity_live/show.ex:742 +#: lib/who_need_help_web/live/activity_live/show.ex:743 #: lib/who_need_help_web/live/moderation_live.ex:251 -#: lib/who_need_help_web/live/request_live/show.ex:1379 +#: lib/who_need_help_web/live/request_live/show.ex:1380 #, elixir-autogen, elixir-format msgid "Fraud" msgstr "Fraud" @@ -738,7 +738,7 @@ msgstr "GitHub profile verified." msgid "GitHub verification is unavailable until the operator configures its OAuth credentials. No manually entered link is treated as verified." msgstr "GitHub verification is unavailable until the operator configures its OAuth credentials. No manually entered link is treated as verified." -#: lib/who_need_help_web/live/request_live/show.ex:1232 +#: lib/who_need_help_web/live/request_live/show.ex:1233 #, elixir-autogen, elixir-format msgid "HANDOVER CODE FOR THE HELPER" msgstr "HANDOVER CODE FOR THE HELPER" @@ -753,9 +753,9 @@ msgstr "Handle (optional)" msgid "Handover code verified." msgstr "Handover code verified." -#: lib/who_need_help_web/live/activity_live/show.ex:740 +#: lib/who_need_help_web/live/activity_live/show.ex:741 #: lib/who_need_help_web/live/moderation_live.ex:250 -#: lib/who_need_help_web/live/request_live/show.ex:1378 +#: lib/who_need_help_web/live/request_live/show.ex:1379 #, elixir-autogen, elixir-format msgid "Harassment" msgstr "Harassment" @@ -830,8 +830,8 @@ msgstr "Human decisions retained" #: lib/who_need_help_web/controllers/page_html/home.html.heex:54 #: lib/who_need_help_web/controllers/page_html/home.html.heex:86 -#: lib/who_need_help_web/controllers/page_html/home.html.heex:395 -#: lib/who_need_help_web/live/request_live/show.ex:1059 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:406 +#: lib/who_need_help_web/live/request_live/show.ex:1060 #, elixir-autogen, elixir-format msgid "I can help" msgstr "I can help" @@ -868,21 +868,21 @@ msgstr "If your email is in our system, you will receive instructions for loggin #: lib/who_need_help_web/controllers/content_removal_html.ex:9 #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:32 -#: lib/who_need_help_web/live/activity_live/show.ex:744 +#: lib/who_need_help_web/live/activity_live/show.ex:745 #: lib/who_need_help_web/live/moderation_live.ex:254 -#: lib/who_need_help_web/live/request_live/show.ex:1382 +#: lib/who_need_help_web/live/request_live/show.ex:1383 #: lib/who_need_help_web/live/support_operations_live.ex:91 #, elixir-autogen, elixir-format msgid "Impersonation" msgstr "Impersonation" -#: lib/who_need_help_web/live/request_live/show.ex:1313 +#: lib/who_need_help_web/live/request_live/show.ex:1314 #, elixir-autogen, elixir-format msgid "In a browser this works only while the page remains open. The Android app shows a persistent notification and can continue after it is minimized. Raw coordinates are removed when sharing stops." msgstr "In a browser this works only while the page remains open. The Android app shows a persistent notification and can continue after it is minimized. Raw coordinates are removed when sharing stops." -#: lib/who_need_help_web/live/request_live/index.ex:180 -#: lib/who_need_help_web/live/request_live/index.ex:181 +#: lib/who_need_help_web/live/request_live/index.ex:274 +#: lib/who_need_help_web/live/request_live/index.ex:275 #: lib/who_need_help_web/live/request_live/show.ex:755 #, elixir-autogen, elixir-format msgid "In progress" @@ -915,28 +915,28 @@ msgid "Join requests close" msgstr "Join requests close" #: lib/who_need_help_web/live/activity_live/new.ex:285 -#: lib/who_need_help_web/live/request_live/new.ex:569 +#: lib/who_need_help_web/live/request_live/new.ex:571 #, elixir-autogen, elixir-format msgid "Latitude" msgstr "Latitude" -#: lib/who_need_help_web/live/activity_live/show.ex:603 +#: lib/who_need_help_web/live/activity_live/show.ex:604 #, elixir-autogen, elixir-format msgid "Leave activity" msgstr "Leave activity" -#: lib/who_need_help_web/live/request_live/show.ex:1311 +#: lib/who_need_help_web/live/request_live/show.ex:1312 #, elixir-autogen, elixir-format msgid "Live location" msgstr "Live location" #: lib/who_need_help_web/controllers/page_html/safety.html.heex:51 -#: lib/who_need_help_web/live/activity_live/show.ex:545 +#: lib/who_need_help_web/live/activity_live/show.ex:546 #, elixir-autogen, elixir-format msgid "Location privacy" msgstr "Location privacy" -#: lib/who_need_help_web/live/request_live/show.ex:1117 +#: lib/who_need_help_web/live/request_live/show.ex:1118 #, elixir-autogen, elixir-format msgid "Location sharing is optional; missing evidence is not proof of abuse." msgstr "Location sharing is optional; missing evidence is not proof of abuse." @@ -972,7 +972,7 @@ msgid "Logged out successfully." msgstr "Logged out successfully." #: lib/who_need_help_web/live/activity_live/new.ex:292 -#: lib/who_need_help_web/live/request_live/new.ex:583 +#: lib/who_need_help_web/live/request_live/new.ex:585 #, elixir-autogen, elixir-format msgid "Longitude" msgstr "Longitude" @@ -992,18 +992,18 @@ msgstr "Manage your account email address and password settings" msgid "Manually added links are public and marked unverified. A verified badge is only granted after completing a provider authorization flow." msgstr "Manually added links are public and marked unverified. A verified badge is only granted after completing a provider authorization flow." -#: lib/who_need_help_web/live/activity_live/show.ex:662 +#: lib/who_need_help_web/live/activity_live/show.ex:663 #, elixir-autogen, elixir-format msgid "Mark completed" msgstr "Mark completed" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:231 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:242 #, elixir-autogen, elixir-format msgid "Match and coordinate" msgstr "Match and coordinate" -#: lib/who_need_help_web/live/request_live/index.ex:178 -#: lib/who_need_help_web/live/request_live/index.ex:179 +#: lib/who_need_help_web/live/request_live/index.ex:272 +#: lib/who_need_help_web/live/request_live/index.ex:273 #: lib/who_need_help_web/live/request_live/show.ex:753 #, elixir-autogen, elixir-format msgid "Matched" @@ -1089,12 +1089,12 @@ msgstr "Moderator" msgid "Moderator access is required." msgstr "Moderator access is required." -#: lib/who_need_help_web/live/request_live/index.ex:196 +#: lib/who_need_help_web/live/request_live/index.ex:298 #, elixir-autogen, elixir-format msgid "NEARBY MUTUAL AID" msgstr "NEARBY MUTUAL AID" -#: lib/who_need_help_web/live/request_live/index.ex:97 +#: lib/who_need_help_web/live/request_live/index.ex:31 #, elixir-autogen, elixir-format msgid "Nearby help" msgstr "Nearby help" @@ -1138,17 +1138,12 @@ msgstr "No messages yet." msgid "No open activities yet" msgstr "No open activities yet" -#: lib/who_need_help_web/live/request_live/index.ex:254 -#, elixir-autogen, elixir-format -msgid "No open requests yet" -msgstr "No open requests yet" - #: lib/who_need_help_web/live/moderation_live.ex:461 #, elixir-autogen, elixir-format msgid "No open signals." msgstr "No open signals." -#: lib/who_need_help_web/live/activity_live/show.ex:657 +#: lib/who_need_help_web/live/activity_live/show.ex:658 #, elixir-autogen, elixir-format msgid "No pending join requests." msgstr "No pending join requests." @@ -1184,9 +1179,9 @@ msgstr "Not an emergency or medical service. In immediate danger, contact local msgid "Not for emergencies" msgstr "Not for emergencies" -#: lib/who_need_help_web/live/request_live/index.ex:168 -#: lib/who_need_help_web/live/request_live/index.ex:169 -#: lib/who_need_help_web/live/request_live/index.ex:243 +#: lib/who_need_help_web/live/request_live/index.ex:262 +#: lib/who_need_help_web/live/request_live/index.ex:263 +#: lib/who_need_help_web/live/request_live/index.ex:347 #: lib/who_need_help_web/live/request_live/new.ex:359 #: lib/who_need_help_web/live/request_live/show.ex:744 #: lib/who_need_help_web/live/request_live/show.ex:745 @@ -1199,11 +1194,6 @@ msgstr "Now" msgid "OPTIONAL SOCIAL PLANS" msgstr "OPTIONAL SOCIAL PLANS" -#: lib/who_need_help_web/live/request_live/index.ex:199 -#, elixir-autogen, elixir-format -msgid "Only approximate areas are shown before a safe match." -msgstr "Only approximate areas are shown before a safe match." - #: lib/who_need_help_web/controllers/page_html/safety.html.heex:26 #, elixir-autogen, elixir-format msgid "Only request pickup of a legal item already reserved or paid for. Do not request medical advice, a prescription, controlled substances, cash advances, repackaging, or a purchase on your behalf. Follow pharmacy rules and local law." @@ -1224,8 +1214,8 @@ msgstr "Only the organizer and approved participants can read or send these mess #: lib/who_need_help_web/live/activity_live/index.ex:166 #: lib/who_need_help_web/live/activity_live/show.ex:342 #: lib/who_need_help_web/live/moderation_live.ex:258 -#: lib/who_need_help_web/live/request_live/index.ex:176 -#: lib/who_need_help_web/live/request_live/index.ex:177 +#: lib/who_need_help_web/live/request_live/index.ex:270 +#: lib/who_need_help_web/live/request_live/index.ex:271 #: lib/who_need_help_web/live/request_live/show.ex:752 #: lib/who_need_help_web/live/support_operations_live.ex:189 #: lib/who_need_help_web/live/support_operations_live.ex:252 @@ -1248,7 +1238,7 @@ msgstr "Open proposals" msgid "Optional external thank-you link" msgstr "Optional external thank-you link" -#: lib/who_need_help_web/live/request_live/show.ex:1297 +#: lib/who_need_help_web/live/request_live/show.ex:1298 #, elixir-autogen, elixir-format msgid "Optional thank-you link" msgstr "Optional thank-you link" @@ -1263,7 +1253,7 @@ msgstr "Organizer" msgid "Organizer blocked. Their activities and messages are hidden." msgstr "Organizer blocked. Their activities and messages are hidden." -#: lib/who_need_help_web/live/activity_live/show.ex:608 +#: lib/who_need_help_web/live/activity_live/show.ex:609 #, elixir-autogen, elixir-format msgid "Organizer controls" msgstr "Organizer controls" @@ -1278,11 +1268,11 @@ msgstr "Organizer social links" #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:59 #: lib/who_need_help_web/controllers/support_html.ex:13 #: lib/who_need_help_web/controllers/support_html/new.html.heex:38 -#: lib/who_need_help_web/live/activity_live/show.ex:745 +#: lib/who_need_help_web/live/activity_live/show.ex:746 #: lib/who_need_help_web/live/moderation_live.ex:255 #: lib/who_need_help_web/live/profile_live.ex:319 #: lib/who_need_help_web/live/public_profile_live.ex:53 -#: lib/who_need_help_web/live/request_live/show.ex:1383 +#: lib/who_need_help_web/live/request_live/show.ex:1384 #: lib/who_need_help_web/live/support_operations_live.ex:85 #: lib/who_need_help_web/live/support_operations_live.ex:100 #, elixir-autogen, elixir-format @@ -1345,12 +1335,12 @@ msgstr "Please check the submitted fields." msgid "Please check the submitted message." msgstr "Please check the submitted message." -#: lib/who_need_help_web/live/request_live/new.ex:402 +#: lib/who_need_help_web/live/request_live/new.ex:403 #, elixir-autogen, elixir-format msgid "Podil, near the central pharmacy" msgstr "Podil, near the central pharmacy" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:224 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:235 #, elixir-autogen, elixir-format msgid "Post a clear request" msgstr "Post a clear request" @@ -1377,7 +1367,7 @@ msgid "Profile updated." msgstr "Profile updated." #: lib/who_need_help_web/live/moderation_live.ex:252 -#: lib/who_need_help_web/live/request_live/show.ex:1380 +#: lib/who_need_help_web/live/request_live/show.ex:1381 #, elixir-autogen, elixir-format msgid "Prohibited item" msgstr "Prohibited item" @@ -1443,13 +1433,13 @@ msgstr "Publish activity" msgid "Publish proposal" msgstr "Publish proposal" -#: lib/who_need_help_web/live/request_live/new.ex:637 +#: lib/who_need_help_web/live/request_live/new.ex:639 #, elixir-autogen, elixir-format msgid "Publish request" msgstr "Publish request" #: lib/who_need_help_web/live/activity_live/new.ex:311 -#: lib/who_need_help_web/live/request_live/new.ex:635 +#: lib/who_need_help_web/live/request_live/new.ex:637 #, elixir-autogen, elixir-format msgid "Publishing…" msgstr "Publishing…" @@ -1489,7 +1479,7 @@ msgid "Read the" msgstr "Read the" #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:27 -#: lib/who_need_help_web/live/activity_live/show.ex:738 +#: lib/who_need_help_web/live/activity_live/show.ex:739 #, elixir-autogen, elixir-format msgid "Reason" msgstr "Reason" @@ -1524,7 +1514,7 @@ msgstr "Report" msgid "Report message" msgstr "Report message" -#: lib/who_need_help_web/live/request_live/show.ex:1375 +#: lib/who_need_help_web/live/request_live/show.ex:1376 #, elixir-autogen, elixir-format msgid "Report reason" msgstr "Report reason" @@ -1550,7 +1540,7 @@ msgstr "Reported evidence" msgid "Reports" msgstr "Reports" -#: lib/who_need_help_web/live/request_live/show.ex:1339 +#: lib/who_need_help_web/live/request_live/show.ex:1340 #, elixir-autogen, elixir-format msgid "Reports go to moderators. Blocking hides requests in both directions and prevents new chat messages." msgstr "Reports go to moderators. Blocking hides requests in both directions and prevents new chat messages." @@ -1570,7 +1560,7 @@ msgstr "Request hidden." msgid "Request restored." msgstr "Request restored." -#: lib/who_need_help_web/live/activity_live/show.ex:565 +#: lib/who_need_help_web/live/activity_live/show.ex:566 #, elixir-autogen, elixir-format msgid "Request to join" msgstr "Request to join" @@ -1651,8 +1641,8 @@ msgstr "Russian description (optional)" msgid "Russian name (optional)" msgstr "Russian name (optional)" -#: lib/who_need_help_web/live/activity_live/show.ex:708 -#: lib/who_need_help_web/live/request_live/show.ex:1337 +#: lib/who_need_help_web/live/activity_live/show.ex:709 +#: lib/who_need_help_web/live/request_live/show.ex:1338 #, elixir-autogen, elixir-format msgid "Safety controls" msgstr "Safety controls" @@ -1685,9 +1675,9 @@ msgstr "Save Password" msgid "Save profile" msgstr "Save profile" -#: lib/who_need_help_web/live/request_live/index.ex:172 -#: lib/who_need_help_web/live/request_live/index.ex:173 -#: lib/who_need_help_web/live/request_live/index.ex:245 +#: lib/who_need_help_web/live/request_live/index.ex:266 +#: lib/who_need_help_web/live/request_live/index.ex:267 +#: lib/who_need_help_web/live/request_live/index.ex:349 #: lib/who_need_help_web/live/request_live/new.ex:361 #: lib/who_need_help_web/live/request_live/show.ex:748 #: lib/who_need_help_web/live/request_live/show.ex:749 @@ -1701,8 +1691,8 @@ msgstr "Scheduled" msgid "Send" msgstr "Send" -#: lib/who_need_help_web/live/activity_live/show.ex:754 -#: lib/who_need_help_web/live/request_live/show.ex:1392 +#: lib/who_need_help_web/live/activity_live/show.ex:755 +#: lib/who_need_help_web/live/request_live/show.ex:1393 #, elixir-autogen, elixir-format msgid "Send report" msgstr "Send report" @@ -1712,7 +1702,7 @@ msgstr "Send report" msgid "Set CODEX_SESSION_ID in the deployment environment before the submission recording." msgstr "Set CODEX_SESSION_ID in the deployment environment before the submission recording." -#: lib/who_need_help_web/live/request_live/show.ex:1324 +#: lib/who_need_help_web/live/request_live/show.ex:1325 #, elixir-autogen, elixir-format msgid "Share location" msgstr "Share location" @@ -1799,14 +1789,14 @@ msgstr "Social verification session expired. Please retry." msgid "Social verification session is invalid." msgstr "Social verification session is invalid." -#: lib/who_need_help_web/live/activity_live/show.ex:743 +#: lib/who_need_help_web/live/activity_live/show.ex:744 #: lib/who_need_help_web/live/moderation_live.ex:253 -#: lib/who_need_help_web/live/request_live/show.ex:1381 +#: lib/who_need_help_web/live/request_live/show.ex:1382 #, elixir-autogen, elixir-format msgid "Spam" msgstr "Spam" -#: lib/who_need_help_web/live/request_live/show.ex:1181 +#: lib/who_need_help_web/live/request_live/show.ex:1182 #, elixir-autogen, elixir-format msgid "Start helping" msgstr "Start helping" @@ -1821,7 +1811,7 @@ msgstr "Starts" msgid "Status" msgstr "Status" -#: lib/who_need_help_web/live/request_live/show.ex:1332 +#: lib/who_need_help_web/live/request_live/show.ex:1333 #, elixir-autogen, elixir-format msgid "Stop and delete position" msgstr "Stop and delete position" @@ -1898,7 +1888,7 @@ msgstr "The last administrator cannot demote themselves." msgid "The link is invalid or it has expired." msgstr "The link is invalid or it has expired." -#: lib/who_need_help_web/live/activity_live/show.ex:570 +#: lib/who_need_help_web/live/activity_live/show.ex:571 #, elixir-autogen, elixir-format msgid "The organizer has not approved your request yet." msgstr "The organizer has not approved your request yet." @@ -1913,17 +1903,17 @@ msgstr "The pharmacy closes soon and I cannot leave home. The item is already pa msgid "The platform never handles, requires, splits, or guarantees a payment." msgstr "The platform never handles, requires, splits, or guarantees a payment." -#: lib/who_need_help_web/live/activity_live/show.ex:550 +#: lib/who_need_help_web/live/activity_live/show.ex:551 #, elixir-autogen, elixir-format msgid "The public map is approximate or hidden. Exact coordinates appear only after approval." msgstr "The public map is approximate or hidden. Exact coordinates appear only after approval." -#: lib/who_need_help_web/live/activity_live/show.ex:726 +#: lib/who_need_help_web/live/activity_live/show.ex:727 #, elixir-autogen, elixir-format msgid "The report is scoped to the selected group message." msgstr "The report is scoped to the selected group message." -#: lib/who_need_help_web/live/request_live/show.ex:1367 +#: lib/who_need_help_web/live/request_live/show.ex:1368 #, elixir-autogen, elixir-format msgid "The report will be scoped to the selected chat message." msgstr "The report will be scoped to the selected chat message." @@ -1949,7 +1939,7 @@ msgstr "This activity state has already changed." msgid "This interaction is blocked." msgstr "This interaction is blocked." -#: lib/who_need_help_web/live/request_live/index.ex:210 +#: lib/who_need_help_web/live/request_live/index.ex:314 #: lib/who_need_help_web/live/request_live/show.ex:792 #, elixir-autogen, elixir-format msgid "This is not an emergency service. Contact local emergency services for immediate danger." @@ -1975,7 +1965,7 @@ msgstr "This proposal is already closed." msgid "This report has no linked conversation." msgstr "This report has no linked conversation." -#: lib/who_need_help_web/live/request_live/show.ex:1302 +#: lib/who_need_help_web/live/request_live/show.ex:1303 #, elixir-autogen, elixir-format msgid "This request already has a helper." msgstr "This request already has a helper." @@ -1996,9 +1986,9 @@ msgstr "This request is unavailable." msgid "To see sent emails, visit" msgstr "To see sent emails, visit" -#: lib/who_need_help_web/live/request_live/index.ex:170 -#: lib/who_need_help_web/live/request_live/index.ex:171 -#: lib/who_need_help_web/live/request_live/index.ex:244 +#: lib/who_need_help_web/live/request_live/index.ex:264 +#: lib/who_need_help_web/live/request_live/index.ex:265 +#: lib/who_need_help_web/live/request_live/index.ex:348 #: lib/who_need_help_web/live/request_live/new.ex:360 #: lib/who_need_help_web/live/request_live/show.ex:746 #: lib/who_need_help_web/live/request_live/show.ex:747 @@ -2063,7 +2053,7 @@ msgstr "Ukrainian name (optional)" msgid "Unblock" msgstr "Unblock" -#: lib/who_need_help_web/live/request_live/show.ex:1355 +#: lib/who_need_help_web/live/request_live/show.ex:1356 #, elixir-autogen, elixir-format msgid "Unblock this user" msgstr "Unblock this user" @@ -2078,7 +2068,7 @@ msgstr "Unique people" msgid "Update email instructions" msgstr "Update email instructions" -#: lib/who_need_help_web/live/request_live/index.ex:240 +#: lib/who_need_help_web/live/request_live/index.ex:344 #: lib/who_need_help_web/live/request_live/new.ex:357 #, elixir-autogen, elixir-format msgid "Urgency" @@ -2110,7 +2100,7 @@ msgstr "Use light theme" msgid "Use my current foreground location" msgstr "Use my current foreground location" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:233 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:244 #, elixir-autogen, elixir-format msgid "Use private chat and optional live location sharing." msgstr "Use private chat and optional live location sharing." @@ -2163,12 +2153,12 @@ msgstr "Verified people" msgid "Verify GitHub" msgstr "Verify GitHub" -#: lib/who_need_help_web/live/request_live/show.ex:1282 +#: lib/who_need_help_web/live/request_live/show.ex:1283 #, elixir-autogen, elixir-format msgid "Verify handover" msgstr "Verify handover" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:238 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:249 #, elixir-autogen, elixir-format msgid "Verify the handover" msgstr "Verify the handover" @@ -2183,7 +2173,7 @@ msgstr "View scoped evidence" msgid "Visible reviews" msgstr "Visible reviews" -#: lib/who_need_help_web/live/request_live/show.ex:1063 +#: lib/who_need_help_web/live/request_live/show.ex:1064 #, elixir-autogen, elixir-format msgid "Waiting for a nearby volunteer." msgstr "Waiting for a nearby volunteer." @@ -2200,8 +2190,8 @@ msgstr "Welcome back!" msgid "What Codex contributed" msgstr "What Codex contributed" -#: lib/who_need_help_web/live/activity_live/show.ex:751 -#: lib/who_need_help_web/live/request_live/show.ex:1389 +#: lib/who_need_help_web/live/activity_live/show.ex:752 +#: lib/who_need_help_web/live/request_live/show.ex:1390 #, elixir-autogen, elixir-format msgid "What happened?" msgstr "What happened?" @@ -2236,7 +2226,7 @@ msgstr "Who Need Help is not an emergency or medical service. Medicine requests msgid "Who Need Help was developed with the local Codex CLI authenticated through the builder's ChatGPT subscription. No OpenAI API key or usage-based API fallback is used." msgstr "Who Need Help was developed with the local Codex CLI authenticated through the builder's ChatGPT subscription. No OpenAI API key or usage-based API fallback is used." -#: lib/who_need_help_web/live/request_live/index.ex:197 +#: lib/who_need_help_web/live/request_live/index.ex:299 #, elixir-autogen, elixir-format msgid "Who needs help?" msgstr "Who needs help?" @@ -2246,7 +2236,7 @@ msgstr "Who needs help?" msgid "Why is this useful?" msgstr "Why is this useful?" -#: lib/who_need_help_web/live/request_live/show.ex:1210 +#: lib/who_need_help_web/live/request_live/show.ex:1211 #, elixir-autogen, elixir-format msgid "Withdraw from this request" msgstr "Withdraw from this request" @@ -2260,8 +2250,8 @@ msgstr "Write a safe coordination message…" #: lib/who_need_help_web/live/activity_live/show.ex:298 #: lib/who_need_help_web/live/request_live/new.ex:318 #: lib/who_need_help_web/live/request_live/show.ex:682 -#: lib/who_need_help_web/live/request_live/show.ex:1127 -#: lib/who_need_help_web/live/request_live/show.ex:1135 +#: lib/who_need_help_web/live/request_live/show.ex:1128 +#: lib/who_need_help_web/live/request_live/show.ex:1136 #, elixir-autogen, elixir-format msgid "Yes" msgstr "Yes" @@ -2276,7 +2266,7 @@ msgstr "You already have a join request for this activity." msgid "You already voted for this proposal." msgstr "You already voted for this proposal." -#: lib/who_need_help_web/live/activity_live/show.ex:548 +#: lib/who_need_help_web/live/activity_live/show.ex:549 #, elixir-autogen, elixir-format msgid "You are approved, so the map can show the exact meeting coordinates." msgstr "You are approved, so the map can show the exact meeting coordinates." @@ -2297,11 +2287,6 @@ msgstr "You are not allowed to do that." msgid "You are running the local mail adapter." msgstr "You are running the local mail adapter." -#: lib/who_need_help_web/live/request_live/index.ex:256 -#, elixir-autogen, elixir-format -msgid "You can be the first person to ask the community." -msgstr "You can be the first person to ask the community." - #: lib/who_need_help_web/live/request_live/show.ex:723 #, elixir-autogen, elixir-format msgid "You cannot accept your own request." @@ -2344,7 +2329,7 @@ msgstr "You need to reauthenticate to perform sensitive actions on your account. msgid "You withdrew from this request." msgstr "You withdrew from this request." -#: lib/who_need_help_web/live/activity_live/index.ex:292 +#: lib/who_need_help_web/live/activity_live/index.ex:293 #, elixir-autogen, elixir-format msgid "Your activities" msgstr "Your activities" @@ -2365,7 +2350,7 @@ msgid "Your request is now visible to nearby helpers." msgstr "Your request is now visible to nearby helpers." #: lib/who_need_help_web/controllers/support_html/index.html.heex:6 -#: lib/who_need_help_web/live/request_live/index.ex:342 +#: lib/who_need_help_web/live/request_live/index.ex:555 #, elixir-autogen, elixir-format msgid "Your requests" msgstr "Your requests" @@ -2375,7 +2360,7 @@ msgstr "Your requests" msgid "Your review is revealed only after both participants submit." msgstr "Your review is revealed only after both participants submit." -#: lib/who_need_help_web/live/request_live/index.ex:319 +#: lib/who_need_help_web/live/request_live/index.ex:534 #, elixir-autogen, elixir-format msgid "Your trust summary" msgstr "Your trust summary" @@ -2400,20 +2385,20 @@ msgstr "before confirming." #: lib/who_need_help_web/live/activity_live/index.ex:261 #: lib/who_need_help_web/live/category_proposal_live.ex:188 #: lib/who_need_help_web/live/moderation_live.ex:318 -#: lib/who_need_help_web/live/request_live/index.ex:286 +#: lib/who_need_help_web/live/request_live/index.ex:473 #, elixir-autogen, elixir-format msgid "by %{name}" msgstr "by %{name}" #: lib/who_need_help_web/live/profile_live.ex:189 #: lib/who_need_help_web/live/public_profile_live.ex:128 -#: lib/who_need_help_web/live/request_live/index.ex:323 -#: lib/who_need_help_web/live/request_live/show.ex:1086 +#: lib/who_need_help_web/live/request_live/index.ex:538 +#: lib/who_need_help_web/live/request_live/show.ex:1087 #, elixir-autogen, elixir-format msgid "completed" msgstr "completed" -#: lib/who_need_help_web/live/request_live/index.ex:291 +#: lib/who_need_help_web/live/request_live/index.ex:478 #, elixir-autogen, elixir-format msgid "expires %{time}" msgstr "expires %{time}" @@ -2423,22 +2408,22 @@ msgstr "expires %{time}" msgid "for an account now." msgstr "for an account now." -#: lib/who_need_help_web/live/request_live/show.ex:1113 +#: lib/who_need_help_web/live/request_live/show.ex:1114 #, elixir-autogen, elixir-format msgid "helper movement supported" msgstr "helper movement supported" -#: lib/who_need_help_web/live/request_live/show.ex:1114 +#: lib/who_need_help_web/live/request_live/show.ex:1115 #, elixir-autogen, elixir-format msgid "no movement evidence" msgstr "no movement evidence" -#: lib/who_need_help_web/live/request_live/show.ex:1105 +#: lib/who_need_help_web/live/request_live/show.ex:1106 #, elixir-autogen, elixir-format msgid "no proximity evidence" msgstr "no proximity evidence" -#: lib/who_need_help_web/live/activity_live/show.ex:678 +#: lib/who_need_help_web/live/activity_live/show.ex:679 #, elixir-autogen, elixir-format msgid "organizer" msgstr "organizer" @@ -2448,20 +2433,20 @@ msgstr "organizer" msgid "participants only" msgstr "participants only" -#: lib/who_need_help_web/live/request_live/index.ex:328 -#: lib/who_need_help_web/live/request_live/show.ex:1090 +#: lib/who_need_help_web/live/request_live/index.ex:542 +#: lib/who_need_help_web/live/request_live/show.ex:1091 #, elixir-autogen, elixir-format msgid "people" msgstr "people" -#: lib/who_need_help_web/live/request_live/show.ex:1104 +#: lib/who_need_help_web/live/request_live/show.ex:1105 #, elixir-autogen, elixir-format msgid "proximity supported" msgstr "proximity supported" #: lib/who_need_help_web/live/profile_live.ex:204 #: lib/who_need_help_web/live/public_profile_live.ex:140 -#: lib/who_need_help_web/live/request_live/show.ex:1094 +#: lib/who_need_help_web/live/request_live/show.ex:1095 #, elixir-autogen, elixir-format msgid "rating" msgstr "rating" @@ -2488,12 +2473,12 @@ msgid "unique people" msgstr "unique people" #: lib/who_need_help_web/live/activity_live/show.ex:420 -#: lib/who_need_help_web/live/activity_live/show.ex:636 -#: lib/who_need_help_web/live/activity_live/show.ex:697 +#: lib/who_need_help_web/live/activity_live/show.ex:637 +#: lib/who_need_help_web/live/activity_live/show.ex:698 #: lib/who_need_help_web/live/profile_live.ex:285 #: lib/who_need_help_web/live/public_profile_live.ex:98 #: lib/who_need_help_web/live/request_live/show.ex:867 -#: lib/who_need_help_web/live/request_live/show.ex:1173 +#: lib/who_need_help_web/live/request_live/show.ex:1174 #, elixir-autogen, elixir-format msgid "unverified" msgstr "unverified" @@ -2504,13 +2489,13 @@ msgid "urgent" msgstr "urgent" #: lib/who_need_help_web/live/activity_live/show.ex:419 -#: lib/who_need_help_web/live/activity_live/show.ex:635 -#: lib/who_need_help_web/live/activity_live/show.ex:696 +#: lib/who_need_help_web/live/activity_live/show.ex:636 +#: lib/who_need_help_web/live/activity_live/show.ex:697 #: lib/who_need_help_web/live/profile_live.ex:284 #: lib/who_need_help_web/live/public_profile_live.ex:98 -#: lib/who_need_help_web/live/request_live/index.ex:333 +#: lib/who_need_help_web/live/request_live/index.ex:546 #: lib/who_need_help_web/live/request_live/show.ex:866 -#: lib/who_need_help_web/live/request_live/show.ex:1172 +#: lib/who_need_help_web/live/request_live/show.ex:1173 #, elixir-autogen, elixir-format msgid "verified" msgstr "verified" @@ -2547,8 +2532,8 @@ msgstr "← Requests" msgid "Approved" msgstr "Approved" -#: lib/who_need_help_web/live/request_live/index.ex:186 -#: lib/who_need_help_web/live/request_live/index.ex:187 +#: lib/who_need_help_web/live/request_live/index.ex:280 +#: lib/who_need_help_web/live/request_live/index.ex:281 #, elixir-autogen, elixir-format msgid "Expired" msgstr "Expired" @@ -2602,7 +2587,7 @@ msgid "Load earlier messages" msgstr "Load earlier messages" #: lib/who_need_help_web/live/activity_live/index.ex:273 -#: lib/who_need_help_web/live/activity_live/index.ex:310 +#: lib/who_need_help_web/live/activity_live/index.ex:311 #: lib/who_need_help_web/live/category_proposal_live.ex:220 #: lib/who_need_help_web/live/leaderboard_live.ex:91 #: lib/who_need_help_web/live/moderation_live.ex:385 @@ -2612,8 +2597,7 @@ msgstr "Load earlier messages" #: lib/who_need_help_web/live/profile_live.ex:232 #: lib/who_need_help_web/live/profile_live.ex:362 #: lib/who_need_help_web/live/public_profile_live.ex:173 -#: lib/who_need_help_web/live/request_live/index.ex:303 -#: lib/who_need_help_web/live/request_live/index.ex:360 +#: lib/who_need_help_web/live/request_live/index.ex:573 #: lib/who_need_help_web/live/support_operations_live.ex:215 #: lib/who_need_help_web/live/support_operations_live.ex:276 #, elixir-autogen, elixir-format @@ -2622,7 +2606,7 @@ msgstr "Load more" #: lib/who_need_help_web/live/activity_live/index.ex:284 #: lib/who_need_help_web/live/activity_live/show.ex:540 -#: lib/who_need_help_web/live/request_live/index.ex:314 +#: lib/who_need_help_web/live/request_live/index.ex:515 #: lib/who_need_help_web/live/request_live/show.ex:1046 #, elixir-autogen, elixir-format msgid "The map is unavailable in this browser. Request details remain usable." @@ -3363,8 +3347,8 @@ msgstr "Stated basis:" msgid "Subject" msgstr "Subject" -#: lib/who_need_help_web/live/activity_live/show.ex:762 -#: lib/who_need_help_web/live/request_live/show.ex:1400 +#: lib/who_need_help_web/live/activity_live/show.ex:763 +#: lib/who_need_help_web/live/request_live/show.ex:1401 #, elixir-autogen, elixir-format msgid "Submit a legal content-removal notice" msgstr "Submit a legal content-removal notice" @@ -3610,7 +3594,7 @@ msgstr "Terms" msgid "and" msgstr "and" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:214 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:225 #, elixir-autogen, elixir-format msgid "A clear handover" msgstr "A clear handover" @@ -3625,7 +3609,7 @@ msgstr "A flat tyre or another small roadside problem in a safe place." msgid "A puncture, broken chain, tyre problem, or similar practical help." msgstr "A puncture, broken chain, tyre problem, or similar practical help." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:191 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:202 #, elixir-autogen, elixir-format msgid "Accept and open private coordination" msgstr "Accept and open private coordination" @@ -3642,7 +3626,7 @@ msgstr "Approximate area · demo data" msgid "Ask a nearby volunteer to collect medicine that is already purchased or help with a safe roadside problem. There is no mandatory fee." msgstr "Ask a nearby volunteer to collect medicine that is already purchased or help with a safe roadside problem. There is no mandatory fee." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:328 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:339 #, elixir-autogen, elixir-format msgid "Before you create a request" msgstr "Before you create a request" @@ -3657,7 +3641,7 @@ msgstr "Bicycle chain help · example" msgid "Bicycle or motorcycle" msgstr "Bicycle or motorcycle" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:240 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:251 #, elixir-autogen, elixir-format msgid "Both confirm, the helper enters a one-time code, and reviews stay blind until both submit." msgstr "Both confirm, the helper enters a one-time code, and reviews stay blind until both submit." @@ -3667,12 +3651,12 @@ msgstr "Both confirm, the helper enters a one-time code, and reviews stay blind msgid "Bring fuel" msgstr "Bring fuel" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:252 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:263 #, elixir-autogen, elixir-format msgid "Built for safer coordination" msgstr "Built for safer coordination" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:344 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:355 #, elixir-autogen, elixir-format msgid "Can a volunteer buy medicine for me?" msgstr "Can a volunteer buy medicine for me?" @@ -3687,37 +3671,37 @@ msgstr "Choose a moderated category. Each one asks only for the details needed f msgid "Collect medicine" msgstr "Collect medicine" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:367 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:378 #, elixir-autogen, elixir-format msgid "Contact the emergency service for your location. Who Need Help is for voluntary practical coordination, not emergencies." msgstr "Contact the emergency service for your location. Who Need Help is for voluntary practical coordination, not emergencies." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:380 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:391 #, elixir-autogen, elixir-format msgid "Create one account, choose your role for each situation, and keep control of what you share." msgstr "Create one account, choose your role for each situation, and keep control of what you share." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:202 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:213 #, elixir-autogen, elixir-format msgid "Current coordinates are optional and deleted when sharing stops." msgstr "Current coordinates are optional and deleted when sharing stops." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:153 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:156 #, elixir-autogen, elixir-format msgid "Demo map with synthetic approximate help requests" msgstr "Demo map with synthetic approximate help requests" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:182 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:193 #, elixir-autogen, elixir-format msgid "Discover an approximate area" msgstr "Discover an approximate area" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:334 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:345 #, elixir-autogen, elixir-format msgid "Do I have to pay a helper?" msgstr "Do I have to pay a helper?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:160 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:171 #, elixir-autogen, elixir-format msgid "Example data — not live requests" msgstr "Example data — not live requests" @@ -3727,12 +3711,12 @@ msgstr "Example data — not live requests" msgid "Example request" msgstr "Example request" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:316 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:327 #, elixir-autogen, elixir-format msgid "Explore activities" msgstr "Explore activities" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:307 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:318 #, elixir-autogen, elixir-format msgid "Find company for coffee, cinema, a walk, or a hike" msgstr "Find company for coffee, cinema, a walk, or a hike" @@ -3747,17 +3731,17 @@ msgstr "Flat tyre help · example" msgid "Free, nearby, voluntary help" msgstr "Free, nearby, voluntary help" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:217 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:228 #, elixir-autogen, elixir-format msgid "From request to verified completion" msgstr "From request to verified completion" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:289 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:300 #, elixir-autogen, elixir-format msgid "Handover codes and unique completed matches matter more than raw totals." msgstr "Handover codes and unique completed matches matter more than raw totals." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:264 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:275 #, elixir-autogen, elixir-format msgid "Help is voluntary. An external thank-you link is optional after completion." msgstr "Help is voluntary. An external thank-you link is optional after completion." @@ -3768,17 +3752,17 @@ msgid "Help with a wheel" msgstr "Help with a wheel" #: lib/who_need_help_web/controllers/page_html/home.html.heex:51 -#: lib/who_need_help_web/controllers/page_html/home.html.heex:389 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:400 #, elixir-autogen, elixir-format msgid "I need help" msgstr "I need help" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:158 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:163 #, elixir-autogen, elixir-format msgid "Interactive demo" msgstr "Interactive demo" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:280 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:291 #, elixir-autogen, elixir-format msgid "Leave a match, block a person, or send a scoped report when something feels wrong." msgstr "Leave a match, block a person, or send a scoped report when something feels wrong." @@ -3793,17 +3777,17 @@ msgstr "Medicine pickup · example" msgid "Need help nearby? Ask the community." msgstr "Need help nearby? Ask the community." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:262 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:273 #, elixir-autogen, elixir-format msgid "No mandatory payment" msgstr "No mandatory payment" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:337 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:348 #, elixir-autogen, elixir-format msgid "No. Help has no mandatory fee. A helper may optionally publish an external thank-you link after a completed handover." msgstr "No. Help has no mandatory fee. A helper may optionally publish an external thank-you link after a completed handover." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:304 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:315 #, elixir-autogen, elixir-format msgid "Not only urgent help" msgstr "Not only urgent help" @@ -3813,52 +3797,52 @@ msgstr "Not only urgent help" msgid "Only after people and the vehicle are away from active traffic danger." msgstr "Only after people and the vehicle are away from active traffic danger." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:193 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:204 #, elixir-autogen, elixir-format msgid "Only the matched requester and helper receive the private chat." msgstr "Only the matched requester and helper receive the private chat." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:167 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:178 #, elixir-autogen, elixir-format msgid "Privacy by default" msgstr "Privacy by default" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:271 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:282 #, elixir-autogen, elixir-format msgid "Private matched chat" msgstr "Private matched chat" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:325 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:336 #, elixir-autogen, elixir-format msgid "Quick answers" msgstr "Quick answers" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:295 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:306 #, elixir-autogen, elixir-format msgid "Read the safety rules" msgstr "Read the safety rules" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:378 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:389 #, elixir-autogen, elixir-format msgid "Ready to ask or help nearby?" msgstr "Ready to ask or help nearby?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:278 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:289 #, elixir-autogen, elixir-format msgid "Reports and blocking" msgstr "Reports and blocking" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:170 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:181 #, elixir-autogen, elixir-format msgid "See nearby needs without exposing a home address" msgstr "See nearby needs without exposing a home address" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:200 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:211 #, elixir-autogen, elixir-format msgid "Share live location only by choice" msgstr "Share live location only by choice" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:310 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:321 #, elixir-autogen, elixir-format msgid "Social activities are separate from urgent requests. Organizers approve participants, and exact meeting details stay inside the approved group." msgstr "Social activities are separate from urgent requests. Organizers approve participants, and exact meeting details stay inside the approved group." @@ -3868,37 +3852,32 @@ msgstr "Social activities are separate from urgent requests. Organizers approve msgid "Start with urgent practical help" msgstr "Start with urgent practical help" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:150 -#, elixir-autogen, elixir-format -msgid "The demo map is unavailable. The example steps remain available beside it." -msgstr "The demo map is unavailable. The example steps remain available beside it." - #: lib/who_need_help_web/controllers/page_html/home.html.heex:113 #, elixir-autogen, elixir-format msgid "The medicine is already legally purchased or reserved for pickup." msgstr "The medicine is already legally purchased or reserved for pickup." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:347 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:358 #, elixir-autogen, elixir-format msgid "The medicine must already be legally purchased or reserved. The service does not prescribe, recommend, sell, or handle controlled substances." msgstr "The medicine must already be legally purchased or reserved. The service does not prescribe, recommend, sell, or handle controlled substances." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:184 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:195 #, elixir-autogen, elixir-format msgid "The public marker does not need to reveal an exact address." msgstr "The public marker does not need to reveal an exact address." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:273 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:284 #, elixir-autogen, elixir-format msgid "There is no unsolicited inbox between strangers." msgstr "There is no unsolicited inbox between strangers." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:173 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:184 #, elixir-autogen, elixir-format msgid "These three points are synthetic examples. Real public discovery follows each requester's location visibility choice." msgstr "These three points are synthetic examples. Real public discovery follows each requester's location visibility choice." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:287 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:298 #, elixir-autogen, elixir-format msgid "Verified reputation signals" msgstr "Verified reputation signals" @@ -3908,22 +3887,22 @@ msgstr "Verified reputation signals" msgid "What can you ask the community for?" msgstr "What can you ask the community for?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:364 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:375 #, elixir-autogen, elixir-format msgid "What if there is immediate danger?" msgstr "What if there is immediate danger?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:354 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:365 #, elixir-autogen, elixir-format msgid "Who can see my exact address?" msgstr "Who can see my exact address?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:357 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:368 #, elixir-autogen, elixir-format msgid "You choose the visibility. Exact active coordinates can be limited to the matched helper and are removed when sharing stops." msgstr "You choose the visibility. Exact active coordinates can be limited to the matched helper and are removed when sharing stops." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:255 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:266 #, elixir-autogen, elixir-format msgid "You stay in control of the match" msgstr "You stay in control of the match" @@ -4012,7 +3991,7 @@ msgid "Use my password instead" msgstr "Use my password instead" #: lib/who_need_help_web/controllers/google_auth_html/complete.html.heex:30 -#: lib/who_need_help_web/live/request_live/show.ex:1143 +#: lib/who_need_help_web/live/request_live/show.ex:1144 #, elixir-autogen, elixir-format msgid "Verified" msgstr "Verified" @@ -4052,7 +4031,7 @@ msgstr "" msgid "A volunteer accepted this request. Use private chat to coordinate safely." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:536 +#: lib/who_need_help_web/live/request_live/new.ex:538 #, elixir-autogen, elixir-format msgid "After a helper accepts" msgstr "" @@ -4062,12 +4041,12 @@ msgstr "" msgid "Already registered? Check your email" msgstr "Already registered? Check your email" -#: lib/who_need_help_web/live/request_live/new.ex:401 +#: lib/who_need_help_web/live/request_live/new.ex:402 #, elixir-autogen, elixir-format msgid "Area or public landmark" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:500 +#: lib/who_need_help_web/live/request_live/new.ex:502 #, elixir-autogen, elixir-format msgid "Area radius" msgstr "" @@ -4098,7 +4077,7 @@ msgid "Choose a category from the same mode." msgstr "Choose a category from the same mode." #: lib/who_need_help_web/live/request_live/new.ex:383 -#: lib/who_need_help_web/live/request_live/new.ex:553 +#: lib/who_need_help_web/live/request_live/new.ex:555 #, elixir-autogen, elixir-format msgid "Choose a place on the map or use your current location." msgstr "" @@ -4118,18 +4097,18 @@ msgstr "" msgid "Choose an expiry time in the future." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1243 +#: lib/who_need_help_web/live/request_live/show.ex:1244 #, elixir-autogen, elixir-format msgid "Copied" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1242 -#: lib/who_need_help_web/live/request_live/show.ex:1248 +#: lib/who_need_help_web/live/request_live/show.ex:1243 +#: lib/who_need_help_web/live/request_live/show.ex:1249 #, elixir-autogen, elixir-format msgid "Copy code" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1244 +#: lib/who_need_help_web/live/request_live/show.ex:1245 #, elixir-autogen, elixir-format msgid "Copy failed" msgstr "" @@ -4139,27 +4118,27 @@ msgstr "" msgid "Date" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:561 +#: lib/who_need_help_web/live/request_live/new.ex:563 #, elixir-autogen, elixir-format msgid "Enter coordinates manually" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1276 +#: lib/who_need_help_web/live/request_live/show.ex:1277 #, elixir-autogen, elixir-format msgid "Enter the six digits shown to the requester." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:436 +#: lib/who_need_help_web/live/request_live/new.ex:437 #, elixir-autogen, elixir-format msgid "Exact point" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:627 +#: lib/who_need_help_web/live/request_live/new.ex:629 #, elixir-autogen, elixir-format msgid "Fix the following details and publish again:" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:563 +#: lib/who_need_help_web/live/request_live/new.ex:565 #, elixir-autogen, elixir-format msgid "For an approximate area, these coordinates are the area center—not your exact position." msgstr "" @@ -4169,12 +4148,12 @@ msgstr "" msgid "For privacy, this page cannot reveal whether an account exists. If you are new to Who Need Help, choose Register instead." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1140 +#: lib/who_need_help_web/live/request_live/show.ex:1141 #, elixir-autogen, elixir-format, fuzzy msgid "Handover code" msgstr "Handover code" -#: lib/who_need_help_web/live/request_live/show.ex:1152 +#: lib/who_need_help_web/live/request_live/show.ex:1153 #, elixir-autogen, elixir-format msgid "Help completed and verified by both participants." msgstr "" @@ -4189,17 +4168,17 @@ msgstr "" msgid "Help is now in progress." msgstr "Help is now in progress." -#: lib/who_need_help_web/live/request_live/show.ex:1132 +#: lib/who_need_help_web/live/request_live/show.ex:1133 #, elixir-autogen, elixir-format msgid "Helper confirmed" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1075 +#: lib/who_need_help_web/live/request_live/show.ex:1076 #, elixir-autogen, elixir-format, fuzzy msgid "Helper:" msgstr "Helper:" -#: lib/who_need_help_web/live/request_live/new.ex:481 +#: lib/who_need_help_web/live/request_live/new.ex:483 #, elixir-autogen, elixir-format msgid "Helpers will see only the area or landmark written above. You can share a live location later after matching." msgstr "" @@ -4229,12 +4208,12 @@ msgstr "" msgid "Location is unavailable in this browser." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:394 +#: lib/who_need_help_web/live/request_live/new.ex:395 #, elixir-autogen, elixir-format msgid "Location permission was denied." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:521 +#: lib/who_need_help_web/live/request_live/new.ex:523 #, elixir-autogen, elixir-format msgid "Move the map area so it covers a useful public meeting place." msgstr "" @@ -4244,7 +4223,7 @@ msgstr "" msgid "New notice" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:479 +#: lib/who_need_help_web/live/request_live/new.ex:481 #, elixir-autogen, elixir-format msgid "No coordinates will be stored" msgstr "" @@ -4254,7 +4233,7 @@ msgstr "" msgid "No map coordinates will be stored." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:450 +#: lib/who_need_help_web/live/request_live/new.ex:451 #, elixir-autogen, elixir-format msgid "No map location" msgstr "" @@ -4269,7 +4248,7 @@ msgstr "No public social links added." msgid "Only notices submitted while signed in appear here. Notices submitted without an account remain accessible through their private email link." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:451 +#: lib/who_need_help_web/live/request_live/new.ex:452 #, elixir-autogen, elixir-format msgid "Only the public area description" msgstr "" @@ -4289,9 +4268,9 @@ msgstr "" msgid "Optional thanks" msgstr "Optional thanks" -#: lib/who_need_help_web/live/request_live/show.ex:1128 -#: lib/who_need_help_web/live/request_live/show.ex:1136 -#: lib/who_need_help_web/live/request_live/show.ex:1144 +#: lib/who_need_help_web/live/request_live/show.ex:1129 +#: lib/who_need_help_web/live/request_live/show.ex:1137 +#: lib/who_need_help_web/live/request_live/show.ex:1145 #, elixir-autogen, elixir-format, fuzzy msgid "Pending" msgstr "Pending" @@ -4311,7 +4290,7 @@ msgstr "" msgid "Read" msgstr "Read" -#: lib/who_need_help_web/live/request_live/new.ex:423 +#: lib/who_need_help_web/live/request_live/new.ex:424 #, elixir-autogen, elixir-format msgid "Recommended for privacy" msgstr "" @@ -4331,17 +4310,17 @@ msgstr "" msgid "Request expires" msgstr "Request expires" -#: lib/who_need_help_web/live/activity_live/show.ex:564 +#: lib/who_need_help_web/live/activity_live/show.ex:565 #, elixir-autogen, elixir-format, fuzzy msgid "Request to join again" msgstr "Request to join again" -#: lib/who_need_help_web/live/request_live/new.ex:626 +#: lib/who_need_help_web/live/request_live/new.ex:628 #, elixir-autogen, elixir-format msgid "Request was not published" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1124 +#: lib/who_need_help_web/live/request_live/show.ex:1125 #, elixir-autogen, elixir-format, fuzzy msgid "Requester confirmed" msgstr "Requester confirmed" @@ -4388,7 +4367,7 @@ msgstr "Starts at" msgid "Status updates go to the email address of your signed-in account." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:463 +#: lib/who_need_help_web/live/request_live/new.ex:464 #, elixir-autogen, elixir-format msgid "The map is unavailable. You can use the manual coordinate fallback." msgstr "" @@ -4403,7 +4382,7 @@ msgstr "" msgid "This activity is closed. The group chat remains available as read-only history." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:405 +#: lib/who_need_help_web/live/request_live/new.ex:406 #, elixir-autogen, elixir-format msgid "This description is visible to everyone. Do not enter a private address." msgstr "" @@ -4423,7 +4402,7 @@ msgstr "" msgid "This help request was cancelled. Chat history is read-only." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1158 +#: lib/who_need_help_web/live/request_live/show.ex:1159 #, elixir-autogen, elixir-format msgid "This match was cancelled. No further handover action is required." msgstr "" @@ -4433,7 +4412,7 @@ msgstr "" msgid "This person has not added a public bio yet." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:528 +#: lib/who_need_help_web/live/request_live/new.ex:530 #, elixir-autogen, elixir-format msgid "This point is public" msgstr "" @@ -4468,7 +4447,7 @@ msgstr "" msgid "Tomorrow" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:529 +#: lib/who_need_help_web/live/request_live/new.ex:531 #, elixir-autogen, elixir-format msgid "Use a safe public meeting point instead of a private address." msgstr "" @@ -4478,7 +4457,7 @@ msgstr "" msgid "Use another email" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:496 +#: lib/who_need_help_web/live/request_live/new.ex:498 #, elixir-autogen, elixir-format, fuzzy msgid "Use my location" msgstr "Use my location" @@ -4493,7 +4472,7 @@ msgstr "" msgid "Use the newest confirmation link if it arrives." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1280 +#: lib/who_need_help_web/live/request_live/show.ex:1281 #, elixir-autogen, elixir-format msgid "Verifying…" msgstr "" @@ -4516,7 +4495,7 @@ msgstr "" msgid "View my requests" msgstr "View my requests" -#: lib/who_need_help_web/live/request_live/new.ex:437 +#: lib/who_need_help_web/live/request_live/new.ex:438 #, elixir-autogen, elixir-format msgid "Visible before matching" msgstr "" @@ -4531,27 +4510,27 @@ msgstr "" msgid "Voted" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:410 +#: lib/who_need_help_web/live/request_live/new.ex:411 #, elixir-autogen, elixir-format msgid "What should people see?" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:398 +#: lib/who_need_help_web/live/request_live/new.ex:399 #, elixir-autogen, elixir-format msgid "Where is help needed?" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:579 +#: lib/who_need_help_web/live/activity_live/show.ex:580 #, elixir-autogen, elixir-format msgid "You are no longer a participant and cannot access the group chat or exact meeting point. You can request to join again while registration is open." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:590 +#: lib/who_need_help_web/live/activity_live/show.ex:591 #, elixir-autogen, elixir-format msgid "You are not a participant. You can send a new request while registration is open." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:538 +#: lib/who_need_help_web/live/request_live/new.ex:540 #, elixir-autogen, elixir-format msgid "You can separately share live location with the matched person and stop sharing at any time." msgstr "" @@ -4561,22 +4540,22 @@ msgstr "" msgid "You have not submitted any content-removal notices while signed in." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:577 +#: lib/who_need_help_web/live/activity_live/show.ex:578 #, elixir-autogen, elixir-format msgid "You left this activity" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1200 +#: lib/who_need_help_web/live/request_live/show.ex:1201 #, elixir-autogen, elixir-format msgid "Your completion confirmation is saved." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:520 +#: lib/who_need_help_web/live/request_live/new.ex:522 #, elixir-autogen, elixir-format msgid "Your exact position is not shown" msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:588 +#: lib/who_need_help_web/live/activity_live/show.ex:589 #, elixir-autogen, elixir-format, fuzzy msgid "Your join request was declined" msgstr "Your join request was declined" @@ -4601,12 +4580,12 @@ msgstr "← Community helpers" msgid "Area selected. Drag the green pin or click the map to move it." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:470 +#: lib/who_need_help_web/live/request_live/new.ex:472 #, elixir-autogen, elixir-format msgid "Click the map or drag the green pin to move the area" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:473 +#: lib/who_need_help_web/live/request_live/new.ex:475 #, elixir-autogen, elixir-format msgid "Click the map or drag the red pin to move the point" msgstr "" @@ -4625,3 +4604,116 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Exact point selected. Drag the red pin or click the map to move it." msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:371 +#, elixir-autogen, elixir-format +msgid "%{count} request in this map area" +msgid_plural "%{count} requests in this map area" +msgstr[0] "" +msgstr[1] "" + +#: lib/who_need_help_web/live/request_live/index.ex:354 +#, elixir-autogen, elixir-format +msgid "Area or city" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:424 +#, elixir-autogen, elixir-format +msgid "Choose an area on the map" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:301 +#, elixir-autogen, elixir-format +msgid "Explore privacy-friendly areas and public exact meeting points chosen by requesters." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:392 +#, elixir-autogen, elixir-format +msgid "List" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:491 +#, elixir-autogen, elixir-format +msgid "Load more in this area" +msgstr "Load more in this area" + +#: lib/who_need_help_web/live/request_live/index.ex:412 +#, elixir-autogen, elixir-format +msgid "Map" +msgstr "" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:168 +#, elixir-autogen, elixir-format +msgid "Map preview" +msgstr "Map preview" + +#: lib/who_need_help_web/live/request_live/index.ex:436 +#, elixir-autogen, elixir-format +msgid "Move or zoom the map to search somewhere else." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:379 +#, elixir-autogen, elixir-format +msgid "Move the map, then search the newly visible area." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:434 +#, elixir-autogen, elixir-format +msgid "No open requests in this area" +msgstr "No open requests in this area" + +#: lib/who_need_help_web/live/request_live/index.ex:426 +#, elixir-autogen, elixir-format +msgid "Only requests from the selected map area will be loaded." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:518 +#, elixir-autogen, elixir-format +msgid "Open request" +msgstr "Open request" + +#: lib/who_need_help_web/live/request_live/index.ex:355 +#, elixir-autogen, elixir-format +msgid "Optional text search" +msgstr "Optional text search" + +#: lib/who_need_help_web/live/request_live/index.ex:497 +#, elixir-autogen, elixir-format +msgid "Requests without map coordinates appear only when their public area description matches the text search." +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:383 +#, elixir-autogen, elixir-format +msgid "Results layout" +msgstr "" + +#: lib/who_need_help_web/live/request_live/index.ex:529 +#, elixir-autogen, elixir-format +msgid "Search this area" +msgstr "" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:164 +#, elixir-autogen, elixir-format +msgid "Static preview" +msgstr "Static preview" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:150 +#, elixir-autogen, elixir-format +msgid "The interactive demo could not start in this browser. You can retry or use the example steps beside it." +msgstr "The interactive demo could not start in this browser. You can retry or use the example steps beside it." + +#: lib/who_need_help_web/live/request_live/index.ex:402 +#, elixir-autogen, elixir-format +msgid "Together" +msgstr "" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:154 +#: lib/who_need_help_web/live/activity_live/index.ex:286 +#: lib/who_need_help_web/live/activity_live/show.ex:542 +#: lib/who_need_help_web/live/request_live/index.ex:517 +#: lib/who_need_help_web/live/request_live/new.ex:394 +#: lib/who_need_help_web/live/request_live/new.ex:466 +#: lib/who_need_help_web/live/request_live/show.ex:1048 +#, elixir-autogen, elixir-format +msgid "Try map again" +msgstr "Try map again" diff --git a/priv/gettext/ru/LC_MESSAGES/default.po b/priv/gettext/ru/LC_MESSAGES/default.po index 380765d..d3fbc40 100644 --- a/priv/gettext/ru/LC_MESSAGES/default.po +++ b/priv/gettext/ru/LC_MESSAGES/default.po @@ -141,7 +141,7 @@ msgstr "" "Сигнал требует проверки человеком; отсутствие необязательного отслеживания " "не является доказательством злоупотребления." -#: lib/who_need_help_web/live/request_live/show.ex:1056 +#: lib/who_need_help_web/live/request_live/show.ex:1057 #, elixir-autogen, elixir-format msgid "Accept only if you can complete this safely and for free." msgstr "" @@ -168,7 +168,7 @@ msgstr "Аккаунт и язык" msgid "Accounts" msgstr "Аккаунты" -#: lib/who_need_help_web/live/request_live/show.ex:1052 +#: lib/who_need_help_web/live/request_live/show.ex:1053 #, elixir-autogen, elixir-format msgid "Action center" msgstr "Центр действий" @@ -244,7 +244,7 @@ msgstr "Администратор" msgid "All activities" msgstr "Все активности" -#: lib/who_need_help_web/live/request_live/index.ex:227 +#: lib/who_need_help_web/live/request_live/index.ex:331 #, elixir-autogen, elixir-format msgid "All categories" msgstr "Все категории" @@ -259,17 +259,17 @@ msgstr "Уже зарегистрированы?" msgid "Another helper already accepted this request." msgstr "Другой помощник уже принял эту заявку." -#: lib/who_need_help_web/live/request_live/index.ex:242 +#: lib/who_need_help_web/live/request_live/index.ex:346 #, elixir-autogen, elixir-format msgid "Any urgency" msgstr "Любая срочность" -#: lib/who_need_help_web/live/activity_live/show.ex:568 +#: lib/who_need_help_web/live/activity_live/show.ex:569 #, elixir-autogen, elixir-format msgid "Approval pending" msgstr "Ожидает одобрения" -#: lib/who_need_help_web/live/activity_live/show.ex:645 +#: lib/who_need_help_web/live/activity_live/show.ex:646 #, elixir-autogen, elixir-format msgid "Approve" msgstr "Одобрить" @@ -279,14 +279,14 @@ msgstr "Одобрить" msgid "Approved group chat" msgstr "Чат одобренной группы" -#: lib/who_need_help_web/live/activity_live/show.ex:671 +#: lib/who_need_help_web/live/activity_live/show.ex:672 #, elixir-autogen, elixir-format msgid "Approved participants" msgstr "Одобренные участники" #: lib/who_need_help_web/controllers/page_html/home.html.heex:80 #: lib/who_need_help_web/live/activity_live/new.ex:261 -#: lib/who_need_help_web/live/request_live/new.ex:422 +#: lib/who_need_help_web/live/request_live/new.ex:423 #, elixir-autogen, elixir-format msgid "Approximate area" msgstr "Примерный район" @@ -332,12 +332,12 @@ msgstr "" msgid "Block and report" msgstr "Блокировка и жалоба" -#: lib/who_need_help_web/live/activity_live/show.ex:714 +#: lib/who_need_help_web/live/activity_live/show.ex:715 #, elixir-autogen, elixir-format msgid "Block organizer" msgstr "Заблокировать организатора" -#: lib/who_need_help_web/live/request_live/show.ex:1348 +#: lib/who_need_help_web/live/request_live/show.ex:1349 #, elixir-autogen, elixir-format msgid "Block this user" msgstr "Заблокировать пользователя" @@ -372,27 +372,27 @@ msgstr "ДОВЕРИЕ СООБЩЕСТВА" msgid "COMMUNITY-DRIVEN TAXONOMY" msgstr "КАТЕГОРИИ ОТ СООБЩЕСТВА" -#: lib/who_need_help_web/live/activity_live/show.ex:665 +#: lib/who_need_help_web/live/activity_live/show.ex:666 #, elixir-autogen, elixir-format msgid "Cancel activity" msgstr "Отменить активность" -#: lib/who_need_help_web/live/request_live/show.ex:1070 -#: lib/who_need_help_web/live/request_live/show.ex:1220 +#: lib/who_need_help_web/live/request_live/show.ex:1071 +#: lib/who_need_help_web/live/request_live/show.ex:1221 #, elixir-autogen, elixir-format msgid "Cancel request" msgstr "Отменить заявку" #: lib/who_need_help_web/live/activity_live/index.ex:168 #: lib/who_need_help_web/live/activity_live/show.ex:344 -#: lib/who_need_help_web/live/request_live/index.ex:184 -#: lib/who_need_help_web/live/request_live/index.ex:185 +#: lib/who_need_help_web/live/request_live/index.ex:278 +#: lib/who_need_help_web/live/request_live/index.ex:279 #: lib/who_need_help_web/live/request_live/show.ex:757 #, elixir-autogen, elixir-format msgid "Cancelled" msgstr "Отменено" -#: lib/who_need_help_web/live/request_live/index.ex:225 +#: lib/who_need_help_web/live/request_live/index.ex:329 #: lib/who_need_help_web/live/request_live/new.ex:246 #, elixir-autogen, elixir-format msgid "Category" @@ -431,7 +431,7 @@ msgstr "Изменить роль" msgid "Changing..." msgstr "Изменение…" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:226 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:237 #, elixir-autogen, elixir-format msgid "Choose a category, urgency, and safe location visibility." msgstr "" @@ -460,8 +460,8 @@ msgstr "Выберите…" msgid "City centre, near the main entrance" msgstr "Центр города, рядом с главным входом" -#: lib/who_need_help_web/live/activity_live/show.ex:732 -#: lib/who_need_help_web/live/request_live/show.ex:1369 +#: lib/who_need_help_web/live/activity_live/show.ex:733 +#: lib/who_need_help_web/live/request_live/show.ex:1370 #, elixir-autogen, elixir-format msgid "Clear" msgstr "Очистить" @@ -495,17 +495,17 @@ msgstr "Помощники сообщества" #: lib/who_need_help_web/live/activity_live/index.ex:262 #: lib/who_need_help_web/live/activity_live/show.ex:397 -#: lib/who_need_help_web/live/activity_live/show.ex:616 -#: lib/who_need_help_web/live/activity_live/show.ex:675 -#: lib/who_need_help_web/live/request_live/index.ex:287 +#: lib/who_need_help_web/live/activity_live/show.ex:617 +#: lib/who_need_help_web/live/activity_live/show.ex:676 +#: lib/who_need_help_web/live/request_live/index.ex:474 #, elixir-autogen, elixir-format msgid "Community member" msgstr "Член сообщества" #: lib/who_need_help_web/live/activity_live/index.ex:167 #: lib/who_need_help_web/live/activity_live/show.ex:343 -#: lib/who_need_help_web/live/request_live/index.ex:182 -#: lib/who_need_help_web/live/request_live/index.ex:183 +#: lib/who_need_help_web/live/request_live/index.ex:276 +#: lib/who_need_help_web/live/request_live/index.ex:277 #: lib/who_need_help_web/live/request_live/show.ex:756 #, elixir-autogen, elixir-format msgid "Completed" @@ -521,7 +521,7 @@ msgstr "Подтвердить и войти только сейчас" msgid "Confirm and stay logged in" msgstr "Подтвердить и оставаться в системе" -#: lib/who_need_help_web/live/request_live/show.ex:1191 +#: lib/who_need_help_web/live/request_live/show.ex:1192 #, elixir-autogen, elixir-format msgid "Confirm my part is complete" msgstr "Подтвердить выполнение своей части" @@ -578,18 +578,18 @@ msgstr "Создать активность" msgid "Create category" msgstr "Создать категорию" -#: lib/who_need_help_web/live/request_live/index.ex:203 +#: lib/who_need_help_web/live/request_live/index.ex:307 #, elixir-autogen, elixir-format msgid "Create urgent request" msgstr "Создать срочную заявку" -#: lib/who_need_help_web/live/activity_live/show.ex:741 +#: lib/who_need_help_web/live/activity_live/show.ex:742 #, elixir-autogen, elixir-format msgid "Dangerous plan" msgstr "Опасный план" #: lib/who_need_help_web/live/moderation_live.ex:249 -#: lib/who_need_help_web/live/request_live/show.ex:1377 +#: lib/who_need_help_web/live/request_live/show.ex:1378 #, elixir-autogen, elixir-format msgid "Dangerous request" msgstr "Опасный запрос" @@ -611,7 +611,7 @@ msgstr "" "Решения и доступ к материалам жалоб на переписку записываются в журнал " "аудита." -#: lib/who_need_help_web/live/activity_live/show.ex:652 +#: lib/who_need_help_web/live/activity_live/show.ex:653 #, elixir-autogen, elixir-format msgid "Decline" msgstr "Отклонить" @@ -703,7 +703,7 @@ msgstr "Описание на английском" msgid "English name" msgstr "Название на английском" -#: lib/who_need_help_web/live/request_live/show.ex:1264 +#: lib/who_need_help_web/live/request_live/show.ex:1265 #, elixir-autogen, elixir-format msgid "Enter handover code" msgstr "Введите код передачи" @@ -749,9 +749,9 @@ msgstr "Объясните, что уже сделано и что нужно с msgid "Find people to join" msgstr "Найти компанию" -#: lib/who_need_help_web/live/activity_live/show.ex:742 +#: lib/who_need_help_web/live/activity_live/show.ex:743 #: lib/who_need_help_web/live/moderation_live.ex:251 -#: lib/who_need_help_web/live/request_live/show.ex:1379 +#: lib/who_need_help_web/live/request_live/show.ex:1380 #, elixir-autogen, elixir-format msgid "Fraud" msgstr "Мошенничество" @@ -773,7 +773,7 @@ msgstr "" "Подтверждение через GitHub недоступно, пока оператор не настроит учётные " "данные OAuth. Ссылка, введённая вручную, не считается подтверждённой." -#: lib/who_need_help_web/live/request_live/show.ex:1232 +#: lib/who_need_help_web/live/request_live/show.ex:1233 #, elixir-autogen, elixir-format msgid "HANDOVER CODE FOR THE HELPER" msgstr "КОД ПЕРЕДАЧИ ДЛЯ ПОМОЩНИКА" @@ -788,9 +788,9 @@ msgstr "Имя пользователя (необязательно)" msgid "Handover code verified." msgstr "Код передачи подтверждён." -#: lib/who_need_help_web/live/activity_live/show.ex:740 +#: lib/who_need_help_web/live/activity_live/show.ex:741 #: lib/who_need_help_web/live/moderation_live.ex:250 -#: lib/who_need_help_web/live/request_live/show.ex:1378 +#: lib/who_need_help_web/live/request_live/show.ex:1379 #, elixir-autogen, elixir-format msgid "Harassment" msgstr "Домогательства" @@ -890,8 +890,8 @@ msgstr "Решения остаются за человеком" #: lib/who_need_help_web/controllers/page_html/home.html.heex:54 #: lib/who_need_help_web/controllers/page_html/home.html.heex:86 -#: lib/who_need_help_web/controllers/page_html/home.html.heex:395 -#: lib/who_need_help_web/live/request_live/show.ex:1059 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:406 +#: lib/who_need_help_web/live/request_live/show.ex:1060 #, elixir-autogen, elixir-format msgid "I can help" msgstr "Я могу помочь" @@ -941,15 +941,15 @@ msgstr "" #: lib/who_need_help_web/controllers/content_removal_html.ex:9 #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:32 -#: lib/who_need_help_web/live/activity_live/show.ex:744 +#: lib/who_need_help_web/live/activity_live/show.ex:745 #: lib/who_need_help_web/live/moderation_live.ex:254 -#: lib/who_need_help_web/live/request_live/show.ex:1382 +#: lib/who_need_help_web/live/request_live/show.ex:1383 #: lib/who_need_help_web/live/support_operations_live.ex:91 #, elixir-autogen, elixir-format msgid "Impersonation" msgstr "Выдача себя за другого человека" -#: lib/who_need_help_web/live/request_live/show.ex:1313 +#: lib/who_need_help_web/live/request_live/show.ex:1314 #, elixir-autogen, elixir-format msgid "In a browser this works only while the page remains open. The Android app shows a persistent notification and can continue after it is minimized. Raw coordinates are removed when sharing stops." msgstr "" @@ -957,8 +957,8 @@ msgstr "" "Android показывает постоянное уведомление и может продолжать передачу после " "сворачивания. При остановке передачи исходные координаты удаляются." -#: lib/who_need_help_web/live/request_live/index.ex:180 -#: lib/who_need_help_web/live/request_live/index.ex:181 +#: lib/who_need_help_web/live/request_live/index.ex:274 +#: lib/who_need_help_web/live/request_live/index.ex:275 #: lib/who_need_help_web/live/request_live/show.ex:755 #, elixir-autogen, elixir-format msgid "In progress" @@ -991,28 +991,28 @@ msgid "Join requests close" msgstr "Приём заявок завершается" #: lib/who_need_help_web/live/activity_live/new.ex:285 -#: lib/who_need_help_web/live/request_live/new.ex:569 +#: lib/who_need_help_web/live/request_live/new.ex:571 #, elixir-autogen, elixir-format msgid "Latitude" msgstr "Широта" -#: lib/who_need_help_web/live/activity_live/show.ex:603 +#: lib/who_need_help_web/live/activity_live/show.ex:604 #, elixir-autogen, elixir-format msgid "Leave activity" msgstr "Покинуть активность" -#: lib/who_need_help_web/live/request_live/show.ex:1311 +#: lib/who_need_help_web/live/request_live/show.ex:1312 #, elixir-autogen, elixir-format msgid "Live location" msgstr "Геопозиция в реальном времени" #: lib/who_need_help_web/controllers/page_html/safety.html.heex:51 -#: lib/who_need_help_web/live/activity_live/show.ex:545 +#: lib/who_need_help_web/live/activity_live/show.ex:546 #, elixir-autogen, elixir-format msgid "Location privacy" msgstr "Конфиденциальность геопозиции" -#: lib/who_need_help_web/live/request_live/show.ex:1117 +#: lib/who_need_help_web/live/request_live/show.ex:1118 #, elixir-autogen, elixir-format msgid "Location sharing is optional; missing evidence is not proof of abuse." msgstr "" @@ -1050,7 +1050,7 @@ msgid "Logged out successfully." msgstr "Вы успешно вышли." #: lib/who_need_help_web/live/activity_live/new.ex:292 -#: lib/who_need_help_web/live/request_live/new.ex:583 +#: lib/who_need_help_web/live/request_live/new.ex:585 #, elixir-autogen, elixir-format msgid "Longitude" msgstr "Долгота" @@ -1075,18 +1075,18 @@ msgstr "" "подтверждения появляется только после авторизации у соответствующего " "провайдера." -#: lib/who_need_help_web/live/activity_live/show.ex:662 +#: lib/who_need_help_web/live/activity_live/show.ex:663 #, elixir-autogen, elixir-format msgid "Mark completed" msgstr "Отметить завершённой" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:231 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:242 #, elixir-autogen, elixir-format msgid "Match and coordinate" msgstr "Найдите помощника и согласуйте детали" -#: lib/who_need_help_web/live/request_live/index.ex:178 -#: lib/who_need_help_web/live/request_live/index.ex:179 +#: lib/who_need_help_web/live/request_live/index.ex:272 +#: lib/who_need_help_web/live/request_live/index.ex:273 #: lib/who_need_help_web/live/request_live/show.ex:753 #, elixir-autogen, elixir-format msgid "Matched" @@ -1178,12 +1178,12 @@ msgstr "Модератор" msgid "Moderator access is required." msgstr "Требуется доступ модератора." -#: lib/who_need_help_web/live/request_live/index.ex:196 +#: lib/who_need_help_web/live/request_live/index.ex:298 #, elixir-autogen, elixir-format msgid "NEARBY MUTUAL AID" msgstr "ВЗАИМОПОМОЩЬ РЯДОМ" -#: lib/who_need_help_web/live/request_live/index.ex:97 +#: lib/who_need_help_web/live/request_live/index.ex:31 #, elixir-autogen, elixir-format msgid "Nearby help" msgstr "Помощь рядом" @@ -1227,17 +1227,12 @@ msgstr "Сообщений пока нет." msgid "No open activities yet" msgstr "Открытых активностей пока нет" -#: lib/who_need_help_web/live/request_live/index.ex:254 -#, elixir-autogen, elixir-format -msgid "No open requests yet" -msgstr "Открытых заявок пока нет" - #: lib/who_need_help_web/live/moderation_live.ex:461 #, elixir-autogen, elixir-format msgid "No open signals." msgstr "Открытых сигналов нет." -#: lib/who_need_help_web/live/activity_live/show.ex:657 +#: lib/who_need_help_web/live/activity_live/show.ex:658 #, elixir-autogen, elixir-format msgid "No pending join requests." msgstr "Нет ожидающих заявок на участие." @@ -1275,9 +1270,9 @@ msgstr "" msgid "Not for emergencies" msgstr "Не для чрезвычайных ситуаций" -#: lib/who_need_help_web/live/request_live/index.ex:168 -#: lib/who_need_help_web/live/request_live/index.ex:169 -#: lib/who_need_help_web/live/request_live/index.ex:243 +#: lib/who_need_help_web/live/request_live/index.ex:262 +#: lib/who_need_help_web/live/request_live/index.ex:263 +#: lib/who_need_help_web/live/request_live/index.ex:347 #: lib/who_need_help_web/live/request_live/new.ex:359 #: lib/who_need_help_web/live/request_live/show.ex:744 #: lib/who_need_help_web/live/request_live/show.ex:745 @@ -1290,13 +1285,6 @@ msgstr "Сейчас" msgid "OPTIONAL SOCIAL PLANS" msgstr "НЕОБЯЗАТЕЛЬНЫЕ СОВМЕСТНЫЕ ПЛАНЫ" -#: lib/who_need_help_web/live/request_live/index.ex:199 -#, elixir-autogen, elixir-format -msgid "Only approximate areas are shown before a safe match." -msgstr "" -"До безопасного назначения помощника показываются только приблизительные " -"области." - #: lib/who_need_help_web/controllers/page_html/safety.html.heex:26 #, elixir-autogen, elixir-format msgid "Only request pickup of a legal item already reserved or paid for. Do not request medical advice, a prescription, controlled substances, cash advances, repackaging, or a purchase on your behalf. Follow pharmacy rules and local law." @@ -1323,8 +1311,8 @@ msgstr "" #: lib/who_need_help_web/live/activity_live/index.ex:166 #: lib/who_need_help_web/live/activity_live/show.ex:342 #: lib/who_need_help_web/live/moderation_live.ex:258 -#: lib/who_need_help_web/live/request_live/index.ex:176 -#: lib/who_need_help_web/live/request_live/index.ex:177 +#: lib/who_need_help_web/live/request_live/index.ex:270 +#: lib/who_need_help_web/live/request_live/index.ex:271 #: lib/who_need_help_web/live/request_live/show.ex:752 #: lib/who_need_help_web/live/support_operations_live.ex:189 #: lib/who_need_help_web/live/support_operations_live.ex:252 @@ -1347,7 +1335,7 @@ msgstr "Открытые предложения" msgid "Optional external thank-you link" msgstr "Необязательная внешняя ссылка для благодарности" -#: lib/who_need_help_web/live/request_live/show.ex:1297 +#: lib/who_need_help_web/live/request_live/show.ex:1298 #, elixir-autogen, elixir-format msgid "Optional thank-you link" msgstr "Необязательная ссылка для благодарности" @@ -1362,7 +1350,7 @@ msgstr "Организатор" msgid "Organizer blocked. Their activities and messages are hidden." msgstr "Организатор заблокирован. Его активности и сообщения скрыты." -#: lib/who_need_help_web/live/activity_live/show.ex:608 +#: lib/who_need_help_web/live/activity_live/show.ex:609 #, elixir-autogen, elixir-format msgid "Organizer controls" msgstr "Управление организатора" @@ -1377,11 +1365,11 @@ msgstr "Ссылки организатора на соцсети" #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:59 #: lib/who_need_help_web/controllers/support_html.ex:13 #: lib/who_need_help_web/controllers/support_html/new.html.heex:38 -#: lib/who_need_help_web/live/activity_live/show.ex:745 +#: lib/who_need_help_web/live/activity_live/show.ex:746 #: lib/who_need_help_web/live/moderation_live.ex:255 #: lib/who_need_help_web/live/profile_live.ex:319 #: lib/who_need_help_web/live/public_profile_live.ex:53 -#: lib/who_need_help_web/live/request_live/show.ex:1383 +#: lib/who_need_help_web/live/request_live/show.ex:1384 #: lib/who_need_help_web/live/support_operations_live.ex:85 #: lib/who_need_help_web/live/support_operations_live.ex:100 #, elixir-autogen, elixir-format @@ -1444,12 +1432,12 @@ msgstr "Пожалуйста, проверьте представленные п msgid "Please check the submitted message." msgstr "Пожалуйста, проверьте отправленное сообщение." -#: lib/who_need_help_web/live/request_live/new.ex:402 +#: lib/who_need_help_web/live/request_live/new.ex:403 #, elixir-autogen, elixir-format msgid "Podil, near the central pharmacy" msgstr "Подол, рядом с центральной аптекой" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:224 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:235 #, elixir-autogen, elixir-format msgid "Post a clear request" msgstr "Опубликуйте понятную заявку" @@ -1478,7 +1466,7 @@ msgid "Profile updated." msgstr "Профиль обновлён." #: lib/who_need_help_web/live/moderation_live.ex:252 -#: lib/who_need_help_web/live/request_live/show.ex:1380 +#: lib/who_need_help_web/live/request_live/show.ex:1381 #, elixir-autogen, elixir-format msgid "Prohibited item" msgstr "Запрещённый предмет" @@ -1555,13 +1543,13 @@ msgstr "Опубликовать активность" msgid "Publish proposal" msgstr "Опубликовать предложение" -#: lib/who_need_help_web/live/request_live/new.ex:637 +#: lib/who_need_help_web/live/request_live/new.ex:639 #, elixir-autogen, elixir-format msgid "Publish request" msgstr "Опубликовать заявку" #: lib/who_need_help_web/live/activity_live/new.ex:311 -#: lib/who_need_help_web/live/request_live/new.ex:635 +#: lib/who_need_help_web/live/request_live/new.ex:637 #, elixir-autogen, elixir-format msgid "Publishing…" msgstr "Публикация…" @@ -1605,7 +1593,7 @@ msgid "Read the" msgstr "Прочитайте" #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:27 -#: lib/who_need_help_web/live/activity_live/show.ex:738 +#: lib/who_need_help_web/live/activity_live/show.ex:739 #, elixir-autogen, elixir-format msgid "Reason" msgstr "Причина" @@ -1640,7 +1628,7 @@ msgstr "Пожаловаться" msgid "Report message" msgstr "Пожаловаться на сообщение" -#: lib/who_need_help_web/live/request_live/show.ex:1375 +#: lib/who_need_help_web/live/request_live/show.ex:1376 #, elixir-autogen, elixir-format msgid "Report reason" msgstr "Причина жалобы" @@ -1666,7 +1654,7 @@ msgstr "Материалы жалобы" msgid "Reports" msgstr "Жалобы" -#: lib/who_need_help_web/live/request_live/show.ex:1339 +#: lib/who_need_help_web/live/request_live/show.ex:1340 #, elixir-autogen, elixir-format msgid "Reports go to moderators. Blocking hides requests in both directions and prevents new chat messages." msgstr "" @@ -1688,7 +1676,7 @@ msgstr "Заявка скрыта." msgid "Request restored." msgstr "Заявка восстановлена." -#: lib/who_need_help_web/live/activity_live/show.ex:565 +#: lib/who_need_help_web/live/activity_live/show.ex:566 #, elixir-autogen, elixir-format msgid "Request to join" msgstr "Подать заявку на участие" @@ -1770,8 +1758,8 @@ msgstr "Описание на русском (необязательно)" msgid "Russian name (optional)" msgstr "Название на русском (необязательно)" -#: lib/who_need_help_web/live/activity_live/show.ex:708 -#: lib/who_need_help_web/live/request_live/show.ex:1337 +#: lib/who_need_help_web/live/activity_live/show.ex:709 +#: lib/who_need_help_web/live/request_live/show.ex:1338 #, elixir-autogen, elixir-format msgid "Safety controls" msgstr "Инструменты безопасности" @@ -1807,9 +1795,9 @@ msgstr "Сохранить пароль" msgid "Save profile" msgstr "Сохранить профиль" -#: lib/who_need_help_web/live/request_live/index.ex:172 -#: lib/who_need_help_web/live/request_live/index.ex:173 -#: lib/who_need_help_web/live/request_live/index.ex:245 +#: lib/who_need_help_web/live/request_live/index.ex:266 +#: lib/who_need_help_web/live/request_live/index.ex:267 +#: lib/who_need_help_web/live/request_live/index.ex:349 #: lib/who_need_help_web/live/request_live/new.ex:361 #: lib/who_need_help_web/live/request_live/show.ex:748 #: lib/who_need_help_web/live/request_live/show.ex:749 @@ -1823,8 +1811,8 @@ msgstr "Запланировано" msgid "Send" msgstr "Отправить" -#: lib/who_need_help_web/live/activity_live/show.ex:754 -#: lib/who_need_help_web/live/request_live/show.ex:1392 +#: lib/who_need_help_web/live/activity_live/show.ex:755 +#: lib/who_need_help_web/live/request_live/show.ex:1393 #, elixir-autogen, elixir-format msgid "Send report" msgstr "Отправить жалобу" @@ -1836,7 +1824,7 @@ msgstr "" "Установите CODEX_SESSION_ID в среде развёртывания перед записью " "демонстрации." -#: lib/who_need_help_web/live/request_live/show.ex:1324 +#: lib/who_need_help_web/live/request_live/show.ex:1325 #, elixir-autogen, elixir-format msgid "Share location" msgstr "Поделиться геопозицией" @@ -1925,14 +1913,14 @@ msgstr "Сеанс подтверждения соцсети завершилс msgid "Social verification session is invalid." msgstr "Сеанс социальной проверки недействителен." -#: lib/who_need_help_web/live/activity_live/show.ex:743 +#: lib/who_need_help_web/live/activity_live/show.ex:744 #: lib/who_need_help_web/live/moderation_live.ex:253 -#: lib/who_need_help_web/live/request_live/show.ex:1381 +#: lib/who_need_help_web/live/request_live/show.ex:1382 #, elixir-autogen, elixir-format msgid "Spam" msgstr "Спам" -#: lib/who_need_help_web/live/request_live/show.ex:1181 +#: lib/who_need_help_web/live/request_live/show.ex:1182 #, elixir-autogen, elixir-format msgid "Start helping" msgstr "Начать помогать" @@ -1947,7 +1935,7 @@ msgstr "Начало" msgid "Status" msgstr "Статус" -#: lib/who_need_help_web/live/request_live/show.ex:1332 +#: lib/who_need_help_web/live/request_live/show.ex:1333 #, elixir-autogen, elixir-format msgid "Stop and delete position" msgstr "Остановить и удалить геопозицию" @@ -2024,7 +2012,7 @@ msgstr "Последний администратор не может пониз msgid "The link is invalid or it has expired." msgstr "Ссылка недействительна или просрочена." -#: lib/who_need_help_web/live/activity_live/show.ex:570 +#: lib/who_need_help_web/live/activity_live/show.ex:571 #, elixir-autogen, elixir-format msgid "The organizer has not approved your request yet." msgstr "Организатор ещё не одобрил вашу заявку." @@ -2042,19 +2030,19 @@ msgstr "" "Платформа никогда не обрабатывает, не требует, не разделяет и не гарантирует" " оплату." -#: lib/who_need_help_web/live/activity_live/show.ex:550 +#: lib/who_need_help_web/live/activity_live/show.ex:551 #, elixir-autogen, elixir-format msgid "The public map is approximate or hidden. Exact coordinates appear only after approval." msgstr "" "Публичная карта показывает приблизительную область либо скрыта. Точные " "координаты появляются только после одобрения." -#: lib/who_need_help_web/live/activity_live/show.ex:726 +#: lib/who_need_help_web/live/activity_live/show.ex:727 #, elixir-autogen, elixir-format msgid "The report is scoped to the selected group message." msgstr "Жалоба относится к выбранному сообщению группы." -#: lib/who_need_help_web/live/request_live/show.ex:1367 +#: lib/who_need_help_web/live/request_live/show.ex:1368 #, elixir-autogen, elixir-format msgid "The report will be scoped to the selected chat message." msgstr "Жалоба будет относиться к выбранному сообщению чата." @@ -2080,7 +2068,7 @@ msgstr "Состояние этой активности уже изменило msgid "This interaction is blocked." msgstr "Это взаимодействие заблокировано." -#: lib/who_need_help_web/live/request_live/index.ex:210 +#: lib/who_need_help_web/live/request_live/index.ex:314 #: lib/who_need_help_web/live/request_live/show.ex:792 #, elixir-autogen, elixir-format msgid "This is not an emergency service. Contact local emergency services for immediate danger." @@ -2111,7 +2099,7 @@ msgstr "Это предложение уже закрыто." msgid "This report has no linked conversation." msgstr "У этой жалобы нет связанной переписки." -#: lib/who_need_help_web/live/request_live/show.ex:1302 +#: lib/who_need_help_web/live/request_live/show.ex:1303 #, elixir-autogen, elixir-format msgid "This request already has a helper." msgstr "У этой заявки уже есть помощник." @@ -2132,9 +2120,9 @@ msgstr "Эта заявка недоступна." msgid "To see sent emails, visit" msgstr "Чтобы посмотреть отправленные письма, откройте" -#: lib/who_need_help_web/live/request_live/index.ex:170 -#: lib/who_need_help_web/live/request_live/index.ex:171 -#: lib/who_need_help_web/live/request_live/index.ex:244 +#: lib/who_need_help_web/live/request_live/index.ex:264 +#: lib/who_need_help_web/live/request_live/index.ex:265 +#: lib/who_need_help_web/live/request_live/index.ex:348 #: lib/who_need_help_web/live/request_live/new.ex:360 #: lib/who_need_help_web/live/request_live/show.ex:746 #: lib/who_need_help_web/live/request_live/show.ex:747 @@ -2199,7 +2187,7 @@ msgstr "Название на украинском (необязательно)" msgid "Unblock" msgstr "Разблокировать" -#: lib/who_need_help_web/live/request_live/show.ex:1355 +#: lib/who_need_help_web/live/request_live/show.ex:1356 #, elixir-autogen, elixir-format msgid "Unblock this user" msgstr "Разблокировать этого пользователя" @@ -2214,7 +2202,7 @@ msgstr "Уникальные люди" msgid "Update email instructions" msgstr "Инструкции для изменения электронной почты" -#: lib/who_need_help_web/live/request_live/index.ex:240 +#: lib/who_need_help_web/live/request_live/index.ex:344 #: lib/who_need_help_web/live/request_live/new.ex:357 #, elixir-autogen, elixir-format msgid "Urgency" @@ -2249,7 +2237,7 @@ msgstr "Включить светлую тему" msgid "Use my current foreground location" msgstr "Использовать мою текущую геопозицию" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:233 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:244 #, elixir-autogen, elixir-format msgid "Use private chat and optional live location sharing." msgstr "" @@ -2304,12 +2292,12 @@ msgstr "Подтверждённые люди" msgid "Verify GitHub" msgstr "Подтвердить через GitHub" -#: lib/who_need_help_web/live/request_live/show.ex:1282 +#: lib/who_need_help_web/live/request_live/show.ex:1283 #, elixir-autogen, elixir-format msgid "Verify handover" msgstr "Подтвердить передачу" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:238 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:249 #, elixir-autogen, elixir-format msgid "Verify the handover" msgstr "Подтвердите передачу" @@ -2324,7 +2312,7 @@ msgstr "Просмотреть связанные доказательства" msgid "Visible reviews" msgstr "Открытые отзывы" -#: lib/who_need_help_web/live/request_live/show.ex:1063 +#: lib/who_need_help_web/live/request_live/show.ex:1064 #, elixir-autogen, elixir-format msgid "Waiting for a nearby volunteer." msgstr "Ожидаем помощника поблизости." @@ -2341,8 +2329,8 @@ msgstr "С возвращением!" msgid "What Codex contributed" msgstr "Что сделал Codex" -#: lib/who_need_help_web/live/activity_live/show.ex:751 -#: lib/who_need_help_web/live/request_live/show.ex:1389 +#: lib/who_need_help_web/live/activity_live/show.ex:752 +#: lib/who_need_help_web/live/request_live/show.ex:1390 #, elixir-autogen, elixir-format msgid "What happened?" msgstr "Что случилось?" @@ -2386,7 +2374,7 @@ msgstr "" "через подписку ChatGPT разработчика. Ключ OpenAI API и резервный вариант API" " с оплатой по использованию не применяются." -#: lib/who_need_help_web/live/request_live/index.ex:197 +#: lib/who_need_help_web/live/request_live/index.ex:299 #, elixir-autogen, elixir-format msgid "Who needs help?" msgstr "Кому нужна помощь?" @@ -2396,7 +2384,7 @@ msgstr "Кому нужна помощь?" msgid "Why is this useful?" msgstr "Почему это полезно?" -#: lib/who_need_help_web/live/request_live/show.ex:1210 +#: lib/who_need_help_web/live/request_live/show.ex:1211 #, elixir-autogen, elixir-format msgid "Withdraw from this request" msgstr "Отказаться от этой заявки" @@ -2410,8 +2398,8 @@ msgstr "Напишите безопасное сообщение для коор #: lib/who_need_help_web/live/activity_live/show.ex:298 #: lib/who_need_help_web/live/request_live/new.ex:318 #: lib/who_need_help_web/live/request_live/show.ex:682 -#: lib/who_need_help_web/live/request_live/show.ex:1127 -#: lib/who_need_help_web/live/request_live/show.ex:1135 +#: lib/who_need_help_web/live/request_live/show.ex:1128 +#: lib/who_need_help_web/live/request_live/show.ex:1136 #, elixir-autogen, elixir-format msgid "Yes" msgstr "Да" @@ -2426,7 +2414,7 @@ msgstr "Вы уже подали заявку на участие в этой а msgid "You already voted for this proposal." msgstr "Вы уже проголосовали за это предложение." -#: lib/who_need_help_web/live/activity_live/show.ex:548 +#: lib/who_need_help_web/live/activity_live/show.ex:549 #, elixir-autogen, elixir-format msgid "You are approved, so the map can show the exact meeting coordinates." msgstr "" @@ -2448,11 +2436,6 @@ msgstr "У вас нет разрешения на это действие." msgid "You are running the local mail adapter." msgstr "Вы используете локальный почтовый адаптер." -#: lib/who_need_help_web/live/request_live/index.ex:256 -#, elixir-autogen, elixir-format -msgid "You can be the first person to ask the community." -msgstr "Вы можете первыми обратиться за помощью к сообществу." - #: lib/who_need_help_web/live/request_live/show.ex:723 #, elixir-autogen, elixir-format msgid "You cannot accept your own request." @@ -2499,7 +2482,7 @@ msgstr "" msgid "You withdrew from this request." msgstr "Вы отказались помогать с этой заявкой." -#: lib/who_need_help_web/live/activity_live/index.ex:292 +#: lib/who_need_help_web/live/activity_live/index.ex:293 #, elixir-autogen, elixir-format msgid "Your activities" msgstr "Ваши активности" @@ -2520,7 +2503,7 @@ msgid "Your request is now visible to nearby helpers." msgstr "Теперь вашу заявку видят помощники рядом." #: lib/who_need_help_web/controllers/support_html/index.html.heex:6 -#: lib/who_need_help_web/live/request_live/index.ex:342 +#: lib/who_need_help_web/live/request_live/index.ex:555 #, elixir-autogen, elixir-format msgid "Your requests" msgstr "Ваши запросы" @@ -2531,7 +2514,7 @@ msgid "Your review is revealed only after both participants submit." msgstr "" "Ваш отзыв откроется только после того, как его отправят оба участника." -#: lib/who_need_help_web/live/request_live/index.ex:319 +#: lib/who_need_help_web/live/request_live/index.ex:534 #, elixir-autogen, elixir-format msgid "Your trust summary" msgstr "Ваши показатели доверия" @@ -2556,20 +2539,20 @@ msgstr "перед подтверждением." #: lib/who_need_help_web/live/activity_live/index.ex:261 #: lib/who_need_help_web/live/category_proposal_live.ex:188 #: lib/who_need_help_web/live/moderation_live.ex:318 -#: lib/who_need_help_web/live/request_live/index.ex:286 +#: lib/who_need_help_web/live/request_live/index.ex:473 #, elixir-autogen, elixir-format msgid "by %{name}" msgstr "автор: %{name}" #: lib/who_need_help_web/live/profile_live.ex:189 #: lib/who_need_help_web/live/public_profile_live.ex:128 -#: lib/who_need_help_web/live/request_live/index.ex:323 -#: lib/who_need_help_web/live/request_live/show.ex:1086 +#: lib/who_need_help_web/live/request_live/index.ex:538 +#: lib/who_need_help_web/live/request_live/show.ex:1087 #, elixir-autogen, elixir-format msgid "completed" msgstr "завершено" -#: lib/who_need_help_web/live/request_live/index.ex:291 +#: lib/who_need_help_web/live/request_live/index.ex:478 #, elixir-autogen, elixir-format msgid "expires %{time}" msgstr "истекает %{time}" @@ -2579,22 +2562,22 @@ msgstr "истекает %{time}" msgid "for an account now." msgstr "учётную запись сейчас." -#: lib/who_need_help_web/live/request_live/show.ex:1113 +#: lib/who_need_help_web/live/request_live/show.ex:1114 #, elixir-autogen, elixir-format msgid "helper movement supported" msgstr "движение помощника подтверждено" -#: lib/who_need_help_web/live/request_live/show.ex:1114 +#: lib/who_need_help_web/live/request_live/show.ex:1115 #, elixir-autogen, elixir-format msgid "no movement evidence" msgstr "нет подтверждения движения" -#: lib/who_need_help_web/live/request_live/show.ex:1105 +#: lib/who_need_help_web/live/request_live/show.ex:1106 #, elixir-autogen, elixir-format msgid "no proximity evidence" msgstr "нет подтверждения близости" -#: lib/who_need_help_web/live/activity_live/show.ex:678 +#: lib/who_need_help_web/live/activity_live/show.ex:679 #, elixir-autogen, elixir-format msgid "organizer" msgstr "организатор" @@ -2604,20 +2587,20 @@ msgstr "организатор" msgid "participants only" msgstr "только участники" -#: lib/who_need_help_web/live/request_live/index.ex:328 -#: lib/who_need_help_web/live/request_live/show.ex:1090 +#: lib/who_need_help_web/live/request_live/index.ex:542 +#: lib/who_need_help_web/live/request_live/show.ex:1091 #, elixir-autogen, elixir-format msgid "people" msgstr "люди" -#: lib/who_need_help_web/live/request_live/show.ex:1104 +#: lib/who_need_help_web/live/request_live/show.ex:1105 #, elixir-autogen, elixir-format msgid "proximity supported" msgstr "близость подтверждена" #: lib/who_need_help_web/live/profile_live.ex:204 #: lib/who_need_help_web/live/public_profile_live.ex:140 -#: lib/who_need_help_web/live/request_live/show.ex:1094 +#: lib/who_need_help_web/live/request_live/show.ex:1095 #, elixir-autogen, elixir-format msgid "rating" msgstr "оценка" @@ -2644,12 +2627,12 @@ msgid "unique people" msgstr "Уникальные люди" #: lib/who_need_help_web/live/activity_live/show.ex:420 -#: lib/who_need_help_web/live/activity_live/show.ex:636 -#: lib/who_need_help_web/live/activity_live/show.ex:697 +#: lib/who_need_help_web/live/activity_live/show.ex:637 +#: lib/who_need_help_web/live/activity_live/show.ex:698 #: lib/who_need_help_web/live/profile_live.ex:285 #: lib/who_need_help_web/live/public_profile_live.ex:98 #: lib/who_need_help_web/live/request_live/show.ex:867 -#: lib/who_need_help_web/live/request_live/show.ex:1173 +#: lib/who_need_help_web/live/request_live/show.ex:1174 #, elixir-autogen, elixir-format msgid "unverified" msgstr "не подтверждено" @@ -2660,13 +2643,13 @@ msgid "urgent" msgstr "срочно" #: lib/who_need_help_web/live/activity_live/show.ex:419 -#: lib/who_need_help_web/live/activity_live/show.ex:635 -#: lib/who_need_help_web/live/activity_live/show.ex:696 +#: lib/who_need_help_web/live/activity_live/show.ex:636 +#: lib/who_need_help_web/live/activity_live/show.ex:697 #: lib/who_need_help_web/live/profile_live.ex:284 #: lib/who_need_help_web/live/public_profile_live.ex:98 -#: lib/who_need_help_web/live/request_live/index.ex:333 +#: lib/who_need_help_web/live/request_live/index.ex:546 #: lib/who_need_help_web/live/request_live/show.ex:866 -#: lib/who_need_help_web/live/request_live/show.ex:1172 +#: lib/who_need_help_web/live/request_live/show.ex:1173 #, elixir-autogen, elixir-format msgid "verified" msgstr "подтверждено" @@ -2703,8 +2686,8 @@ msgstr "← Заявки" msgid "Approved" msgstr "Одобрено" -#: lib/who_need_help_web/live/request_live/index.ex:186 -#: lib/who_need_help_web/live/request_live/index.ex:187 +#: lib/who_need_help_web/live/request_live/index.ex:280 +#: lib/who_need_help_web/live/request_live/index.ex:281 #, elixir-autogen, elixir-format msgid "Expired" msgstr "Истекло" @@ -2758,7 +2741,7 @@ msgid "Load earlier messages" msgstr "Загрузить предыдущие сообщения" #: lib/who_need_help_web/live/activity_live/index.ex:273 -#: lib/who_need_help_web/live/activity_live/index.ex:310 +#: lib/who_need_help_web/live/activity_live/index.ex:311 #: lib/who_need_help_web/live/category_proposal_live.ex:220 #: lib/who_need_help_web/live/leaderboard_live.ex:91 #: lib/who_need_help_web/live/moderation_live.ex:385 @@ -2768,8 +2751,7 @@ msgstr "Загрузить предыдущие сообщения" #: lib/who_need_help_web/live/profile_live.ex:232 #: lib/who_need_help_web/live/profile_live.ex:362 #: lib/who_need_help_web/live/public_profile_live.ex:173 -#: lib/who_need_help_web/live/request_live/index.ex:303 -#: lib/who_need_help_web/live/request_live/index.ex:360 +#: lib/who_need_help_web/live/request_live/index.ex:573 #: lib/who_need_help_web/live/support_operations_live.ex:215 #: lib/who_need_help_web/live/support_operations_live.ex:276 #, elixir-autogen, elixir-format @@ -2778,7 +2760,7 @@ msgstr "Загрузить ещё" #: lib/who_need_help_web/live/activity_live/index.ex:284 #: lib/who_need_help_web/live/activity_live/show.ex:540 -#: lib/who_need_help_web/live/request_live/index.ex:314 +#: lib/who_need_help_web/live/request_live/index.ex:515 #: lib/who_need_help_web/live/request_live/show.ex:1046 #, elixir-autogen, elixir-format msgid "The map is unavailable in this browser. Request details remain usable." @@ -3519,8 +3501,8 @@ msgstr "Указанное основание:" msgid "Subject" msgstr "Тема" -#: lib/who_need_help_web/live/activity_live/show.ex:762 -#: lib/who_need_help_web/live/request_live/show.ex:1400 +#: lib/who_need_help_web/live/activity_live/show.ex:763 +#: lib/who_need_help_web/live/request_live/show.ex:1401 #, elixir-autogen, elixir-format msgid "Submit a legal content-removal notice" msgstr "Подать юридическое уведомление об удалении контента" @@ -3766,7 +3748,7 @@ msgstr "Условия" msgid "and" msgstr "и" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:214 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:225 #, elixir-autogen, elixir-format msgid "A clear handover" msgstr "Понятная передача помощи" @@ -3781,7 +3763,7 @@ msgstr "Проколотая шина или другая небольшая п msgid "A puncture, broken chain, tyre problem, or similar practical help." msgstr "Прокол, сломанная цепь, проблема с шиной или похожая практическая помощь." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:191 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:202 #, elixir-autogen, elixir-format msgid "Accept and open private coordination" msgstr "Принять заявку и перейти к приватной координации" @@ -3798,7 +3780,7 @@ msgstr "Примерный район · демонстрационные дан msgid "Ask a nearby volunteer to collect medicine that is already purchased or help with a safe roadside problem. There is no mandatory fee." msgstr "Попросите волонтёра поблизости забрать уже купленное лекарство или помочь с безопасной проблемой в дороге. Обязательной оплаты нет." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:328 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:339 #, elixir-autogen, elixir-format msgid "Before you create a request" msgstr "Перед созданием заявки" @@ -3813,7 +3795,7 @@ msgstr "Помощь с велосипедной цепью · пример" msgid "Bicycle or motorcycle" msgstr "Велосипед или мотоцикл" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:240 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:251 #, elixir-autogen, elixir-format msgid "Both confirm, the helper enters a one-time code, and reviews stay blind until both submit." msgstr "Оба участника подтверждают передачу, помощник вводит одноразовый код, а отзывы остаются скрытыми, пока их не отправят оба." @@ -3823,12 +3805,12 @@ msgstr "Оба участника подтверждают передачу, п msgid "Bring fuel" msgstr "Привезти топливо" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:252 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:263 #, elixir-autogen, elixir-format msgid "Built for safer coordination" msgstr "Создано для более безопасной координации" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:344 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:355 #, elixir-autogen, elixir-format msgid "Can a volunteer buy medicine for me?" msgstr "Может ли волонтёр купить мне лекарство?" @@ -3843,37 +3825,37 @@ msgstr "Выберите модерируемую категорию. Кажда msgid "Collect medicine" msgstr "Забрать лекарство" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:367 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:378 #, elixir-autogen, elixir-format msgid "Contact the emergency service for your location. Who Need Help is for voluntary practical coordination, not emergencies." msgstr "Обратитесь в экстренную службу по месту нахождения. Who Need Help предназначен для добровольной практической координации, а не для экстренных ситуаций." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:380 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:391 #, elixir-autogen, elixir-format msgid "Create one account, choose your role for each situation, and keep control of what you share." msgstr "Создайте один аккаунт, выбирайте свою роль в каждой ситуации и контролируйте, чем делитесь." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:202 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:213 #, elixir-autogen, elixir-format msgid "Current coordinates are optional and deleted when sharing stops." msgstr "Текущие координаты передаются по желанию и удаляются после остановки." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:153 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:156 #, elixir-autogen, elixir-format msgid "Demo map with synthetic approximate help requests" msgstr "Демонстрационная карта с синтетическими примерными заявками о помощи" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:182 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:193 #, elixir-autogen, elixir-format msgid "Discover an approximate area" msgstr "Увидеть примерный район" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:334 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:345 #, elixir-autogen, elixir-format msgid "Do I have to pay a helper?" msgstr "Нужно ли платить помощнику?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:160 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:171 #, elixir-autogen, elixir-format msgid "Example data — not live requests" msgstr "Демонстрационные данные — не реальные заявки" @@ -3883,12 +3865,12 @@ msgstr "Демонстрационные данные — не реальные msgid "Example request" msgstr "Пример заявки" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:316 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:327 #, elixir-autogen, elixir-format msgid "Explore activities" msgstr "Посмотреть активности" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:307 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:318 #, elixir-autogen, elixir-format msgid "Find company for coffee, cinema, a walk, or a hike" msgstr "Найдите компанию для кофе, кино, прогулки или похода" @@ -3903,17 +3885,17 @@ msgstr "Помощь с проколотой шиной · пример" msgid "Free, nearby, voluntary help" msgstr "Бесплатная добровольная помощь рядом" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:217 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:228 #, elixir-autogen, elixir-format msgid "From request to verified completion" msgstr "От заявки до подтверждённого завершения" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:289 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:300 #, elixir-autogen, elixir-format msgid "Handover codes and unique completed matches matter more than raw totals." msgstr "Одноразовые коды передачи и уникальные завершённые взаимодействия важнее простых итоговых чисел." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:264 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:275 #, elixir-autogen, elixir-format msgid "Help is voluntary. An external thank-you link is optional after completion." msgstr "Помощь добровольная. Внешняя ссылка для благодарности необязательна и доступна после завершения." @@ -3924,17 +3906,17 @@ msgid "Help with a wheel" msgstr "Помочь с колесом" #: lib/who_need_help_web/controllers/page_html/home.html.heex:51 -#: lib/who_need_help_web/controllers/page_html/home.html.heex:389 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:400 #, elixir-autogen, elixir-format msgid "I need help" msgstr "Мне нужна помощь" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:158 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:163 #, elixir-autogen, elixir-format msgid "Interactive demo" msgstr "Интерактивный пример" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:280 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:291 #, elixir-autogen, elixir-format msgid "Leave a match, block a person, or send a scoped report when something feels wrong." msgstr "Откажитесь от взаимодействия, заблокируйте человека или отправьте жалобу на конкретный объект, если что-то кажется небезопасным." @@ -3949,17 +3931,17 @@ msgstr "Получение лекарства · пример" msgid "Need help nearby? Ask the community." msgstr "Нужна помощь рядом? Обратитесь к сообществу." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:262 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:273 #, elixir-autogen, elixir-format msgid "No mandatory payment" msgstr "Без обязательной оплаты" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:337 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:348 #, elixir-autogen, elixir-format msgid "No. Help has no mandatory fee. A helper may optionally publish an external thank-you link after a completed handover." msgstr "Нет. Помощь не требует обязательной оплаты. После подтверждённой передачи помощник может по желанию указать внешнюю ссылку для благодарности." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:304 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:315 #, elixir-autogen, elixir-format msgid "Not only urgent help" msgstr "Не только срочная помощь" @@ -3969,52 +3951,52 @@ msgstr "Не только срочная помощь" msgid "Only after people and the vehicle are away from active traffic danger." msgstr "Только когда люди и транспорт находятся вне опасной зоны активного движения." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:193 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:204 #, elixir-autogen, elixir-format msgid "Only the matched requester and helper receive the private chat." msgstr "Приватный чат доступен только автору заявки и назначенному помощнику." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:167 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:178 #, elixir-autogen, elixir-format msgid "Privacy by default" msgstr "Приватность по умолчанию" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:271 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:282 #, elixir-autogen, elixir-format msgid "Private matched chat" msgstr "Приватный чат после совпадения" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:325 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:336 #, elixir-autogen, elixir-format msgid "Quick answers" msgstr "Короткие ответы" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:295 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:306 #, elixir-autogen, elixir-format msgid "Read the safety rules" msgstr "Прочитать правила безопасности" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:378 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:389 #, elixir-autogen, elixir-format msgid "Ready to ask or help nearby?" msgstr "Готовы попросить о помощи или помочь рядом?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:278 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:289 #, elixir-autogen, elixir-format msgid "Reports and blocking" msgstr "Жалобы и блокировка" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:170 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:181 #, elixir-autogen, elixir-format msgid "See nearby needs without exposing a home address" msgstr "Узнавайте о помощи поблизости, не раскрывая домашний адрес" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:200 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:211 #, elixir-autogen, elixir-format msgid "Share live location only by choice" msgstr "Делитесь геопозицией только по своему выбору" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:310 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:321 #, elixir-autogen, elixir-format msgid "Social activities are separate from urgent requests. Organizers approve participants, and exact meeting details stay inside the approved group." msgstr "Социальные активности отделены от срочных заявок. Организаторы одобряют участников, а точные сведения о встрече остаются внутри одобренной группы." @@ -4024,37 +4006,32 @@ msgstr "Социальные активности отделены от сроч msgid "Start with urgent practical help" msgstr "Начните со срочной практической помощи" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:150 -#, elixir-autogen, elixir-format -msgid "The demo map is unavailable. The example steps remain available beside it." -msgstr "Демонстрационная карта недоступна. Шаги примера остаются доступными рядом." - #: lib/who_need_help_web/controllers/page_html/home.html.heex:113 #, elixir-autogen, elixir-format msgid "The medicine is already legally purchased or reserved for pickup." msgstr "Лекарство уже законно куплено или зарезервировано для получения." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:347 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:358 #, elixir-autogen, elixir-format msgid "The medicine must already be legally purchased or reserved. The service does not prescribe, recommend, sell, or handle controlled substances." msgstr "Лекарство должно быть заранее законно куплено или зарезервировано. Сервис не назначает, не рекомендует, не продаёт и не доставляет контролируемые вещества." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:184 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:195 #, elixir-autogen, elixir-format msgid "The public marker does not need to reveal an exact address." msgstr "Публичная отметка не обязана раскрывать точный адрес." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:273 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:284 #, elixir-autogen, elixir-format msgid "There is no unsolicited inbox between strangers." msgstr "Между незнакомыми людьми нет возможности писать без совпадения." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:173 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:184 #, elixir-autogen, elixir-format msgid "These three points are synthetic examples. Real public discovery follows each requester's location visibility choice." msgstr "Эти три точки — синтетические примеры. Отображение реальных заявок зависит от выбранной автором заявки видимости геопозиции." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:287 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:298 #, elixir-autogen, elixir-format msgid "Verified reputation signals" msgstr "Подтверждённые сигналы репутации" @@ -4064,22 +4041,22 @@ msgstr "Подтверждённые сигналы репутации" msgid "What can you ask the community for?" msgstr "О чём можно попросить сообщество?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:364 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:375 #, elixir-autogen, elixir-format msgid "What if there is immediate danger?" msgstr "Что делать при непосредственной опасности?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:354 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:365 #, elixir-autogen, elixir-format msgid "Who can see my exact address?" msgstr "Кто увидит мой точный адрес?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:357 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:368 #, elixir-autogen, elixir-format msgid "You choose the visibility. Exact active coordinates can be limited to the matched helper and are removed when sharing stops." msgstr "Вы сами выбираете видимость. Точные текущие координаты можно показывать только назначенному помощнику; после остановки передачи они удаляются." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:255 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:266 #, elixir-autogen, elixir-format msgid "You stay in control of the match" msgstr "Вы контролируете взаимодействие" @@ -4168,7 +4145,7 @@ msgid "Use my password instead" msgstr "Использовать пароль" #: lib/who_need_help_web/controllers/google_auth_html/complete.html.heex:30 -#: lib/who_need_help_web/live/request_live/show.ex:1143 +#: lib/who_need_help_web/live/request_live/show.ex:1144 #, elixir-autogen, elixir-format msgid "Verified" msgstr "Подтверждено" @@ -4208,7 +4185,7 @@ msgstr "" msgid "A volunteer accepted this request. Use private chat to coordinate safely." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:536 +#: lib/who_need_help_web/live/request_live/new.ex:538 #, elixir-autogen, elixir-format msgid "After a helper accepts" msgstr "После принятия заявки помощником" @@ -4218,12 +4195,12 @@ msgstr "После принятия заявки помощником" msgid "Already registered? Check your email" msgstr "Уже зарегистрированы?" -#: lib/who_need_help_web/live/request_live/new.ex:401 +#: lib/who_need_help_web/live/request_live/new.ex:402 #, elixir-autogen, elixir-format msgid "Area or public landmark" msgstr "Район или публичный ориентир" -#: lib/who_need_help_web/live/request_live/new.ex:500 +#: lib/who_need_help_web/live/request_live/new.ex:502 #, elixir-autogen, elixir-format msgid "Area radius" msgstr "Радиус зоны" @@ -4254,7 +4231,7 @@ msgid "Choose a category from the same mode." msgstr "Выберите категорию" #: lib/who_need_help_web/live/request_live/new.ex:383 -#: lib/who_need_help_web/live/request_live/new.ex:553 +#: lib/who_need_help_web/live/request_live/new.ex:555 #, elixir-autogen, elixir-format msgid "Choose a place on the map or use your current location." msgstr "Выберите место на карте или используйте текущую геопозицию." @@ -4274,18 +4251,18 @@ msgstr "Выберите зону или точную точку на карте msgid "Choose an expiry time in the future." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1243 +#: lib/who_need_help_web/live/request_live/show.ex:1244 #, elixir-autogen, elixir-format msgid "Copied" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1242 -#: lib/who_need_help_web/live/request_live/show.ex:1248 +#: lib/who_need_help_web/live/request_live/show.ex:1243 +#: lib/who_need_help_web/live/request_live/show.ex:1249 #, elixir-autogen, elixir-format msgid "Copy code" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1244 +#: lib/who_need_help_web/live/request_live/show.ex:1245 #, elixir-autogen, elixir-format msgid "Copy failed" msgstr "" @@ -4295,27 +4272,27 @@ msgstr "" msgid "Date" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:561 +#: lib/who_need_help_web/live/request_live/new.ex:563 #, elixir-autogen, elixir-format msgid "Enter coordinates manually" msgstr "Ввести координаты вручную" -#: lib/who_need_help_web/live/request_live/show.ex:1276 +#: lib/who_need_help_web/live/request_live/show.ex:1277 #, elixir-autogen, elixir-format msgid "Enter the six digits shown to the requester." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:436 +#: lib/who_need_help_web/live/request_live/new.ex:437 #, elixir-autogen, elixir-format msgid "Exact point" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:627 +#: lib/who_need_help_web/live/request_live/new.ex:629 #, elixir-autogen, elixir-format msgid "Fix the following details and publish again:" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:563 +#: lib/who_need_help_web/live/request_live/new.ex:565 #, elixir-autogen, elixir-format msgid "For an approximate area, these coordinates are the area center—not your exact position." msgstr "Для примерной зоны эти координаты задают центр области, а не вашу точную позицию." @@ -4325,12 +4302,12 @@ msgstr "Для примерной зоны эти координаты зада msgid "For privacy, this page cannot reveal whether an account exists. If you are new to Who Need Help, choose Register instead." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1140 +#: lib/who_need_help_web/live/request_live/show.ex:1141 #, elixir-autogen, elixir-format, fuzzy msgid "Handover code" msgstr "Код передачи подтверждён." -#: lib/who_need_help_web/live/request_live/show.ex:1152 +#: lib/who_need_help_web/live/request_live/show.ex:1153 #, elixir-autogen, elixir-format msgid "Help completed and verified by both participants." msgstr "" @@ -4345,17 +4322,17 @@ msgstr "" msgid "Help is now in progress." msgstr "Помощь выполняется." -#: lib/who_need_help_web/live/request_live/show.ex:1132 +#: lib/who_need_help_web/live/request_live/show.ex:1133 #, elixir-autogen, elixir-format msgid "Helper confirmed" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1075 +#: lib/who_need_help_web/live/request_live/show.ex:1076 #, elixir-autogen, elixir-format, fuzzy msgid "Helper:" msgstr "Помощник" -#: lib/who_need_help_web/live/request_live/new.ex:481 +#: lib/who_need_help_web/live/request_live/new.ex:483 #, elixir-autogen, elixir-format msgid "Helpers will see only the area or landmark written above. You can share a live location later after matching." msgstr "Помощники увидят только указанный выше район или ориентир. После совпадения можно отдельно поделиться геопозицией." @@ -4385,12 +4362,12 @@ msgstr "" msgid "Location is unavailable in this browser." msgstr "Геопозиция недоступна в этом браузере." -#: lib/who_need_help_web/live/request_live/new.ex:394 +#: lib/who_need_help_web/live/request_live/new.ex:395 #, elixir-autogen, elixir-format msgid "Location permission was denied." msgstr "Доступ к геопозиции отклонён." -#: lib/who_need_help_web/live/request_live/new.ex:521 +#: lib/who_need_help_web/live/request_live/new.ex:523 #, elixir-autogen, elixir-format msgid "Move the map area so it covers a useful public meeting place." msgstr "Переместите зону так, чтобы она охватывала удобное публичное место встречи." @@ -4400,7 +4377,7 @@ msgstr "Переместите зону так, чтобы она охватыв msgid "New notice" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:479 +#: lib/who_need_help_web/live/request_live/new.ex:481 #, elixir-autogen, elixir-format msgid "No coordinates will be stored" msgstr "Координаты не будут сохранены" @@ -4410,7 +4387,7 @@ msgstr "Координаты не будут сохранены" msgid "No map coordinates will be stored." msgstr "Координаты на карте не будут сохранены." -#: lib/who_need_help_web/live/request_live/new.ex:450 +#: lib/who_need_help_web/live/request_live/new.ex:451 #, elixir-autogen, elixir-format msgid "No map location" msgstr "Не показывать место на карте" @@ -4425,7 +4402,7 @@ msgstr "Ссылки на соцсети не добавлены." msgid "Only notices submitted while signed in appear here. Notices submitted without an account remain accessible through their private email link." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:451 +#: lib/who_need_help_web/live/request_live/new.ex:452 #, elixir-autogen, elixir-format msgid "Only the public area description" msgstr "Только публичное описание района" @@ -4445,9 +4422,9 @@ msgstr "" msgid "Optional thanks" msgstr "Необязательная ссылка для благодарности" -#: lib/who_need_help_web/live/request_live/show.ex:1128 -#: lib/who_need_help_web/live/request_live/show.ex:1136 -#: lib/who_need_help_web/live/request_live/show.ex:1144 +#: lib/who_need_help_web/live/request_live/show.ex:1129 +#: lib/who_need_help_web/live/request_live/show.ex:1137 +#: lib/who_need_help_web/live/request_live/show.ex:1145 #, elixir-autogen, elixir-format, fuzzy msgid "Pending" msgstr "Отправляем..." @@ -4467,7 +4444,7 @@ msgstr "" msgid "Read" msgstr "Прочитайте" -#: lib/who_need_help_web/live/request_live/new.ex:423 +#: lib/who_need_help_web/live/request_live/new.ex:424 #, elixir-autogen, elixir-format msgid "Recommended for privacy" msgstr "Рекомендуется для приватности" @@ -4487,17 +4464,17 @@ msgstr "" msgid "Request expires" msgstr "Срок действия заявки (UTC)" -#: lib/who_need_help_web/live/activity_live/show.ex:564 +#: lib/who_need_help_web/live/activity_live/show.ex:565 #, elixir-autogen, elixir-format, fuzzy msgid "Request to join again" msgstr "Подать заявку на участие" -#: lib/who_need_help_web/live/request_live/new.ex:626 +#: lib/who_need_help_web/live/request_live/new.ex:628 #, elixir-autogen, elixir-format msgid "Request was not published" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1124 +#: lib/who_need_help_web/live/request_live/show.ex:1125 #, elixir-autogen, elixir-format, fuzzy msgid "Requester confirmed" msgstr "Заявка восстановлена." @@ -4544,7 +4521,7 @@ msgstr "Начало" msgid "Status updates go to the email address of your signed-in account." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:463 +#: lib/who_need_help_web/live/request_live/new.ex:464 #, elixir-autogen, elixir-format msgid "The map is unavailable. You can use the manual coordinate fallback." msgstr "Карта недоступна. Можно использовать резервный ручной ввод координат." @@ -4559,7 +4536,7 @@ msgstr "" msgid "This activity is closed. The group chat remains available as read-only history." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:405 +#: lib/who_need_help_web/live/request_live/new.ex:406 #, elixir-autogen, elixir-format msgid "This description is visible to everyone. Do not enter a private address." msgstr "Это описание видно всем. Не указывайте частный адрес." @@ -4579,7 +4556,7 @@ msgstr "" msgid "This help request was cancelled. Chat history is read-only." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1158 +#: lib/who_need_help_web/live/request_live/show.ex:1159 #, elixir-autogen, elixir-format msgid "This match was cancelled. No further handover action is required." msgstr "" @@ -4589,7 +4566,7 @@ msgstr "" msgid "This person has not added a public bio yet." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:528 +#: lib/who_need_help_web/live/request_live/new.ex:530 #, elixir-autogen, elixir-format msgid "This point is public" msgstr "Эта точка видна всем" @@ -4624,7 +4601,7 @@ msgstr "" msgid "Tomorrow" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:529 +#: lib/who_need_help_web/live/request_live/new.ex:531 #, elixir-autogen, elixir-format msgid "Use a safe public meeting point instead of a private address." msgstr "Укажите безопасное публичное место встречи вместо частного адреса." @@ -4634,7 +4611,7 @@ msgstr "Укажите безопасное публичное место вст msgid "Use another email" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:496 +#: lib/who_need_help_web/live/request_live/new.ex:498 #, elixir-autogen, elixir-format, fuzzy msgid "Use my location" msgstr "Использовать мою геопозицию" @@ -4649,7 +4626,7 @@ msgstr "" msgid "Use the newest confirmation link if it arrives." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1280 +#: lib/who_need_help_web/live/request_live/show.ex:1281 #, elixir-autogen, elixir-format msgid "Verifying…" msgstr "" @@ -4672,7 +4649,7 @@ msgstr "" msgid "View my requests" msgstr "Новое обращение" -#: lib/who_need_help_web/live/request_live/new.ex:437 +#: lib/who_need_help_web/live/request_live/new.ex:438 #, elixir-autogen, elixir-format msgid "Visible before matching" msgstr "Видно до принятия заявки" @@ -4687,27 +4664,27 @@ msgstr "" msgid "Voted" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:410 +#: lib/who_need_help_web/live/request_live/new.ex:411 #, elixir-autogen, elixir-format msgid "What should people see?" msgstr "Что должны видеть другие?" -#: lib/who_need_help_web/live/request_live/new.ex:398 +#: lib/who_need_help_web/live/request_live/new.ex:399 #, elixir-autogen, elixir-format msgid "Where is help needed?" msgstr "Где нужна помощь?" -#: lib/who_need_help_web/live/activity_live/show.ex:579 +#: lib/who_need_help_web/live/activity_live/show.ex:580 #, elixir-autogen, elixir-format msgid "You are no longer a participant and cannot access the group chat or exact meeting point. You can request to join again while registration is open." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:590 +#: lib/who_need_help_web/live/activity_live/show.ex:591 #, elixir-autogen, elixir-format msgid "You are not a participant. You can send a new request while registration is open." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:538 +#: lib/who_need_help_web/live/request_live/new.ex:540 #, elixir-autogen, elixir-format msgid "You can separately share live location with the matched person and stop sharing at any time." msgstr "Можно отдельно поделиться геопозицией с подобранным человеком и остановить передачу в любой момент." @@ -4717,22 +4694,22 @@ msgstr "Можно отдельно поделиться геопозицией msgid "You have not submitted any content-removal notices while signed in." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:577 +#: lib/who_need_help_web/live/activity_live/show.ex:578 #, elixir-autogen, elixir-format msgid "You left this activity" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1200 +#: lib/who_need_help_web/live/request_live/show.ex:1201 #, elixir-autogen, elixir-format msgid "Your completion confirmation is saved." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:520 +#: lib/who_need_help_web/live/request_live/new.ex:522 #, elixir-autogen, elixir-format msgid "Your exact position is not shown" msgstr "Ваша точная позиция не показывается" -#: lib/who_need_help_web/live/activity_live/show.ex:588 +#: lib/who_need_help_web/live/activity_live/show.ex:589 #, elixir-autogen, elixir-format, fuzzy msgid "Your join request was declined" msgstr "Ваши запросы" @@ -4757,12 +4734,12 @@ msgstr "Помощники сообщества" msgid "Area selected. Drag the green pin or click the map to move it." msgstr "Область выбрана. Перетащите зелёный маркер или нажмите на карту, чтобы переместить её." -#: lib/who_need_help_web/live/request_live/new.ex:470 +#: lib/who_need_help_web/live/request_live/new.ex:472 #, elixir-autogen, elixir-format msgid "Click the map or drag the green pin to move the area" msgstr "Нажмите на карту или перетащите зелёный маркер, чтобы переместить область" -#: lib/who_need_help_web/live/request_live/new.ex:473 +#: lib/who_need_help_web/live/request_live/new.ex:475 #, elixir-autogen, elixir-format msgid "Click the map or drag the red pin to move the point" msgstr "Нажмите на карту или перетащите красный маркер, чтобы переместить точку" @@ -4781,3 +4758,117 @@ msgstr "Перетащите, чтобы переместить точную т #, elixir-autogen, elixir-format msgid "Exact point selected. Drag the red pin or click the map to move it." msgstr "Точная точка выбрана. Перетащите красный маркер или нажмите на карту, чтобы переместить её." + +#: lib/who_need_help_web/live/request_live/index.ex:371 +#, elixir-autogen, elixir-format +msgid "%{count} request in this map area" +msgid_plural "%{count} requests in this map area" +msgstr[0] "%{count} заявка в этой области карты" +msgstr[1] "%{count} заявки в этой области карты" +msgstr[2] "%{count} заявок в этой области карты" + +#: lib/who_need_help_web/live/request_live/index.ex:354 +#, elixir-autogen, elixir-format +msgid "Area or city" +msgstr "Район или город" + +#: lib/who_need_help_web/live/request_live/index.ex:424 +#, elixir-autogen, elixir-format +msgid "Choose an area on the map" +msgstr "Выберите область на карте" + +#: lib/who_need_help_web/live/request_live/index.ex:301 +#, elixir-autogen, elixir-format +msgid "Explore privacy-friendly areas and public exact meeting points chosen by requesters." +msgstr "Просматривайте безопасные для приватности области и точные публичные места встречи, выбранные авторами заявок." + +#: lib/who_need_help_web/live/request_live/index.ex:392 +#, elixir-autogen, elixir-format +msgid "List" +msgstr "Список" + +#: lib/who_need_help_web/live/request_live/index.ex:491 +#, elixir-autogen, elixir-format +msgid "Load more in this area" +msgstr "Загрузить ещё в этой области" + +#: lib/who_need_help_web/live/request_live/index.ex:412 +#, elixir-autogen, elixir-format +msgid "Map" +msgstr "Карта" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:168 +#, elixir-autogen, elixir-format +msgid "Map preview" +msgstr "Предпросмотр карты" + +#: lib/who_need_help_web/live/request_live/index.ex:436 +#, elixir-autogen, elixir-format +msgid "Move or zoom the map to search somewhere else." +msgstr "Переместите или масштабируйте карту, чтобы искать в другом месте." + +#: lib/who_need_help_web/live/request_live/index.ex:379 +#, elixir-autogen, elixir-format +msgid "Move the map, then search the newly visible area." +msgstr "Переместите карту, затем выполните поиск в новой видимой области." + +#: lib/who_need_help_web/live/request_live/index.ex:434 +#, elixir-autogen, elixir-format +msgid "No open requests in this area" +msgstr "В этой области нет открытых заявок" + +#: lib/who_need_help_web/live/request_live/index.ex:426 +#, elixir-autogen, elixir-format +msgid "Only requests from the selected map area will be loaded." +msgstr "Будут загружены только заявки из выбранной области карты." + +#: lib/who_need_help_web/live/request_live/index.ex:518 +#, elixir-autogen, elixir-format +msgid "Open request" +msgstr "Открыть заявку" + +#: lib/who_need_help_web/live/request_live/index.ex:355 +#, elixir-autogen, elixir-format +msgid "Optional text search" +msgstr "Необязательный текстовый поиск" + +#: lib/who_need_help_web/live/request_live/index.ex:497 +#, elixir-autogen, elixir-format +msgid "Requests without map coordinates appear only when their public area description matches the text search." +msgstr "Заявки без координат на карте отображаются только тогда, когда описание публичной области совпадает с текстовым поиском." + +#: lib/who_need_help_web/live/request_live/index.ex:383 +#, elixir-autogen, elixir-format +msgid "Results layout" +msgstr "Расположение результатов" + +#: lib/who_need_help_web/live/request_live/index.ex:529 +#, elixir-autogen, elixir-format +msgid "Search this area" +msgstr "Искать в этой области" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:164 +#, elixir-autogen, elixir-format +msgid "Static preview" +msgstr "Статический просмотр" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:150 +#, elixir-autogen, elixir-format +msgid "The interactive demo could not start in this browser. You can retry or use the example steps beside it." +msgstr "Интерактивная карта не запустилась в этом браузере. Попробуйте ещё раз или используйте примеры рядом." + +#: lib/who_need_help_web/live/request_live/index.ex:402 +#, elixir-autogen, elixir-format +msgid "Together" +msgstr "Вместе" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:154 +#: lib/who_need_help_web/live/activity_live/index.ex:286 +#: lib/who_need_help_web/live/activity_live/show.ex:542 +#: lib/who_need_help_web/live/request_live/index.ex:517 +#: lib/who_need_help_web/live/request_live/new.ex:394 +#: lib/who_need_help_web/live/request_live/new.ex:466 +#: lib/who_need_help_web/live/request_live/show.ex:1048 +#, elixir-autogen, elixir-format +msgid "Try map again" +msgstr "Попробовать карту снова" diff --git a/priv/gettext/uk/LC_MESSAGES/default.po b/priv/gettext/uk/LC_MESSAGES/default.po index 9bdb5d9..2972c4b 100644 --- a/priv/gettext/uk/LC_MESSAGES/default.po +++ b/priv/gettext/uk/LC_MESSAGES/default.po @@ -141,7 +141,7 @@ msgstr "" "Сигнал потребує перевірки людиною; відсутність необов’язкового відстеження " "не є доказом зловживання." -#: lib/who_need_help_web/live/request_live/show.ex:1056 +#: lib/who_need_help_web/live/request_live/show.ex:1057 #, elixir-autogen, elixir-format msgid "Accept only if you can complete this safely and for free." msgstr "" @@ -168,7 +168,7 @@ msgstr "Акаунт і мова" msgid "Accounts" msgstr "Акаунти" -#: lib/who_need_help_web/live/request_live/show.ex:1052 +#: lib/who_need_help_web/live/request_live/show.ex:1053 #, elixir-autogen, elixir-format msgid "Action center" msgstr "Центр дій" @@ -244,7 +244,7 @@ msgstr "Адміністратор" msgid "All activities" msgstr "Усі активності" -#: lib/who_need_help_web/live/request_live/index.ex:227 +#: lib/who_need_help_web/live/request_live/index.ex:331 #, elixir-autogen, elixir-format msgid "All categories" msgstr "Усі категорії" @@ -259,17 +259,17 @@ msgstr "Уже зареєстровані?" msgid "Another helper already accepted this request." msgstr "Інший помічник уже прийняв цю заявку." -#: lib/who_need_help_web/live/request_live/index.ex:242 +#: lib/who_need_help_web/live/request_live/index.ex:346 #, elixir-autogen, elixir-format msgid "Any urgency" msgstr "Будь-яка терміновість" -#: lib/who_need_help_web/live/activity_live/show.ex:568 +#: lib/who_need_help_web/live/activity_live/show.ex:569 #, elixir-autogen, elixir-format msgid "Approval pending" msgstr "Очікує схвалення" -#: lib/who_need_help_web/live/activity_live/show.ex:645 +#: lib/who_need_help_web/live/activity_live/show.ex:646 #, elixir-autogen, elixir-format msgid "Approve" msgstr "Схвалити" @@ -279,14 +279,14 @@ msgstr "Схвалити" msgid "Approved group chat" msgstr "Чат схваленої групи" -#: lib/who_need_help_web/live/activity_live/show.ex:671 +#: lib/who_need_help_web/live/activity_live/show.ex:672 #, elixir-autogen, elixir-format msgid "Approved participants" msgstr "Схвалені учасники" #: lib/who_need_help_web/controllers/page_html/home.html.heex:80 #: lib/who_need_help_web/live/activity_live/new.ex:261 -#: lib/who_need_help_web/live/request_live/new.ex:422 +#: lib/who_need_help_web/live/request_live/new.ex:423 #, elixir-autogen, elixir-format msgid "Approximate area" msgstr "Орієнтовний район" @@ -332,12 +332,12 @@ msgstr "" msgid "Block and report" msgstr "Блокування та скарга" -#: lib/who_need_help_web/live/activity_live/show.ex:714 +#: lib/who_need_help_web/live/activity_live/show.ex:715 #, elixir-autogen, elixir-format msgid "Block organizer" msgstr "Заблокувати організатора" -#: lib/who_need_help_web/live/request_live/show.ex:1348 +#: lib/who_need_help_web/live/request_live/show.ex:1349 #, elixir-autogen, elixir-format msgid "Block this user" msgstr "Заблокувати користувача" @@ -372,27 +372,27 @@ msgstr "ДОВІРА СПІЛЬНОТИ" msgid "COMMUNITY-DRIVEN TAXONOMY" msgstr "КАТЕГОРІЇ ВІД СПІЛЬНОТИ" -#: lib/who_need_help_web/live/activity_live/show.ex:665 +#: lib/who_need_help_web/live/activity_live/show.ex:666 #, elixir-autogen, elixir-format msgid "Cancel activity" msgstr "Скасувати активність" -#: lib/who_need_help_web/live/request_live/show.ex:1070 -#: lib/who_need_help_web/live/request_live/show.ex:1220 +#: lib/who_need_help_web/live/request_live/show.ex:1071 +#: lib/who_need_help_web/live/request_live/show.ex:1221 #, elixir-autogen, elixir-format msgid "Cancel request" msgstr "Скасувати запит" #: lib/who_need_help_web/live/activity_live/index.ex:168 #: lib/who_need_help_web/live/activity_live/show.ex:344 -#: lib/who_need_help_web/live/request_live/index.ex:184 -#: lib/who_need_help_web/live/request_live/index.ex:185 +#: lib/who_need_help_web/live/request_live/index.ex:278 +#: lib/who_need_help_web/live/request_live/index.ex:279 #: lib/who_need_help_web/live/request_live/show.ex:757 #, elixir-autogen, elixir-format msgid "Cancelled" msgstr "Скасовано" -#: lib/who_need_help_web/live/request_live/index.ex:225 +#: lib/who_need_help_web/live/request_live/index.ex:329 #: lib/who_need_help_web/live/request_live/new.ex:246 #, elixir-autogen, elixir-format msgid "Category" @@ -431,7 +431,7 @@ msgstr "Змінити роль" msgid "Changing..." msgstr "Зміна…" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:226 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:237 #, elixir-autogen, elixir-format msgid "Choose a category, urgency, and safe location visibility." msgstr "" @@ -460,8 +460,8 @@ msgstr "Оберіть…" msgid "City centre, near the main entrance" msgstr "Центр міста, біля головного входу" -#: lib/who_need_help_web/live/activity_live/show.ex:732 -#: lib/who_need_help_web/live/request_live/show.ex:1369 +#: lib/who_need_help_web/live/activity_live/show.ex:733 +#: lib/who_need_help_web/live/request_live/show.ex:1370 #, elixir-autogen, elixir-format msgid "Clear" msgstr "Очистити" @@ -495,17 +495,17 @@ msgstr "Помічники спільноти" #: lib/who_need_help_web/live/activity_live/index.ex:262 #: lib/who_need_help_web/live/activity_live/show.ex:397 -#: lib/who_need_help_web/live/activity_live/show.ex:616 -#: lib/who_need_help_web/live/activity_live/show.ex:675 -#: lib/who_need_help_web/live/request_live/index.ex:287 +#: lib/who_need_help_web/live/activity_live/show.ex:617 +#: lib/who_need_help_web/live/activity_live/show.ex:676 +#: lib/who_need_help_web/live/request_live/index.ex:474 #, elixir-autogen, elixir-format msgid "Community member" msgstr "Член спільноти" #: lib/who_need_help_web/live/activity_live/index.ex:167 #: lib/who_need_help_web/live/activity_live/show.ex:343 -#: lib/who_need_help_web/live/request_live/index.ex:182 -#: lib/who_need_help_web/live/request_live/index.ex:183 +#: lib/who_need_help_web/live/request_live/index.ex:276 +#: lib/who_need_help_web/live/request_live/index.ex:277 #: lib/who_need_help_web/live/request_live/show.ex:756 #, elixir-autogen, elixir-format msgid "Completed" @@ -521,7 +521,7 @@ msgstr "Підтвердити й увійти лише зараз" msgid "Confirm and stay logged in" msgstr "Підтвердити й залишатися в системі" -#: lib/who_need_help_web/live/request_live/show.ex:1191 +#: lib/who_need_help_web/live/request_live/show.ex:1192 #, elixir-autogen, elixir-format msgid "Confirm my part is complete" msgstr "Підтвердити виконання своєї частини" @@ -579,18 +579,18 @@ msgstr "Створити активність" msgid "Create category" msgstr "Створити категорію" -#: lib/who_need_help_web/live/request_live/index.ex:203 +#: lib/who_need_help_web/live/request_live/index.ex:307 #, elixir-autogen, elixir-format msgid "Create urgent request" msgstr "Створити термінову заявку" -#: lib/who_need_help_web/live/activity_live/show.ex:741 +#: lib/who_need_help_web/live/activity_live/show.ex:742 #, elixir-autogen, elixir-format msgid "Dangerous plan" msgstr "Небезпечний план" #: lib/who_need_help_web/live/moderation_live.ex:249 -#: lib/who_need_help_web/live/request_live/show.ex:1377 +#: lib/who_need_help_web/live/request_live/show.ex:1378 #, elixir-autogen, elixir-format msgid "Dangerous request" msgstr "Небезпечна заявка" @@ -612,7 +612,7 @@ msgstr "" "Рішення та доступ до матеріалів зі скарг на листування записуються до " "журналу аудиту." -#: lib/who_need_help_web/live/activity_live/show.ex:652 +#: lib/who_need_help_web/live/activity_live/show.ex:653 #, elixir-autogen, elixir-format msgid "Decline" msgstr "Відхилити" @@ -702,7 +702,7 @@ msgstr "Опис англійською" msgid "English name" msgstr "Назва англійською" -#: lib/who_need_help_web/live/request_live/show.ex:1264 +#: lib/who_need_help_web/live/request_live/show.ex:1265 #, elixir-autogen, elixir-format msgid "Enter handover code" msgstr "Введіть код передачі" @@ -748,9 +748,9 @@ msgstr "Поясніть, що вже організовано й що має з msgid "Find people to join" msgstr "Знайти компанію" -#: lib/who_need_help_web/live/activity_live/show.ex:742 +#: lib/who_need_help_web/live/activity_live/show.ex:743 #: lib/who_need_help_web/live/moderation_live.ex:251 -#: lib/who_need_help_web/live/request_live/show.ex:1379 +#: lib/who_need_help_web/live/request_live/show.ex:1380 #, elixir-autogen, elixir-format msgid "Fraud" msgstr "Шахрайство" @@ -772,7 +772,7 @@ msgstr "" "Підтвердження через GitHub недоступне, доки оператор не налаштує облікові " "дані OAuth. Посилання, введене вручну, не вважається підтвердженим." -#: lib/who_need_help_web/live/request_live/show.ex:1232 +#: lib/who_need_help_web/live/request_live/show.ex:1233 #, elixir-autogen, elixir-format msgid "HANDOVER CODE FOR THE HELPER" msgstr "КОД ПЕРЕДАЧІ ДЛЯ ПОМІЧНИКА" @@ -787,9 +787,9 @@ msgstr "Ім’я користувача (необов’язково)" msgid "Handover code verified." msgstr "Код передачі підтверджено." -#: lib/who_need_help_web/live/activity_live/show.ex:740 +#: lib/who_need_help_web/live/activity_live/show.ex:741 #: lib/who_need_help_web/live/moderation_live.ex:250 -#: lib/who_need_help_web/live/request_live/show.ex:1378 +#: lib/who_need_help_web/live/request_live/show.ex:1379 #, elixir-autogen, elixir-format msgid "Harassment" msgstr "Домагання" @@ -889,8 +889,8 @@ msgstr "Рішення залишаються за людиною" #: lib/who_need_help_web/controllers/page_html/home.html.heex:54 #: lib/who_need_help_web/controllers/page_html/home.html.heex:86 -#: lib/who_need_help_web/controllers/page_html/home.html.heex:395 -#: lib/who_need_help_web/live/request_live/show.ex:1059 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:406 +#: lib/who_need_help_web/live/request_live/show.ex:1060 #, elixir-autogen, elixir-format msgid "I can help" msgstr "Я можу допомогти" @@ -938,15 +938,15 @@ msgstr "" #: lib/who_need_help_web/controllers/content_removal_html.ex:9 #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:32 -#: lib/who_need_help_web/live/activity_live/show.ex:744 +#: lib/who_need_help_web/live/activity_live/show.ex:745 #: lib/who_need_help_web/live/moderation_live.ex:254 -#: lib/who_need_help_web/live/request_live/show.ex:1382 +#: lib/who_need_help_web/live/request_live/show.ex:1383 #: lib/who_need_help_web/live/support_operations_live.ex:91 #, elixir-autogen, elixir-format msgid "Impersonation" msgstr "Видавання себе за іншу особу" -#: lib/who_need_help_web/live/request_live/show.ex:1313 +#: lib/who_need_help_web/live/request_live/show.ex:1314 #, elixir-autogen, elixir-format msgid "In a browser this works only while the page remains open. The Android app shows a persistent notification and can continue after it is minimized. Raw coordinates are removed when sharing stops." msgstr "" @@ -954,8 +954,8 @@ msgstr "" "Android показує постійне сповіщення й може продовжувати передавання після " "згортання. Після зупинення передавання вихідні координати видаляються." -#: lib/who_need_help_web/live/request_live/index.ex:180 -#: lib/who_need_help_web/live/request_live/index.ex:181 +#: lib/who_need_help_web/live/request_live/index.ex:274 +#: lib/who_need_help_web/live/request_live/index.ex:275 #: lib/who_need_help_web/live/request_live/show.ex:755 #, elixir-autogen, elixir-format msgid "In progress" @@ -988,28 +988,28 @@ msgid "Join requests close" msgstr "Приймання заявок завершується" #: lib/who_need_help_web/live/activity_live/new.ex:285 -#: lib/who_need_help_web/live/request_live/new.ex:569 +#: lib/who_need_help_web/live/request_live/new.ex:571 #, elixir-autogen, elixir-format msgid "Latitude" msgstr "Широта" -#: lib/who_need_help_web/live/activity_live/show.ex:603 +#: lib/who_need_help_web/live/activity_live/show.ex:604 #, elixir-autogen, elixir-format msgid "Leave activity" msgstr "Залишити активність" -#: lib/who_need_help_web/live/request_live/show.ex:1311 +#: lib/who_need_help_web/live/request_live/show.ex:1312 #, elixir-autogen, elixir-format msgid "Live location" msgstr "Геопозиція в реальному часі" #: lib/who_need_help_web/controllers/page_html/safety.html.heex:51 -#: lib/who_need_help_web/live/activity_live/show.ex:545 +#: lib/who_need_help_web/live/activity_live/show.ex:546 #, elixir-autogen, elixir-format msgid "Location privacy" msgstr "Приватність геопозиції" -#: lib/who_need_help_web/live/request_live/show.ex:1117 +#: lib/who_need_help_web/live/request_live/show.ex:1118 #, elixir-autogen, elixir-format msgid "Location sharing is optional; missing evidence is not proof of abuse." msgstr "" @@ -1047,7 +1047,7 @@ msgid "Logged out successfully." msgstr "Ви успішно вийшли." #: lib/who_need_help_web/live/activity_live/new.ex:292 -#: lib/who_need_help_web/live/request_live/new.ex:583 +#: lib/who_need_help_web/live/request_live/new.ex:585 #, elixir-autogen, elixir-format msgid "Longitude" msgstr "Довгота" @@ -1070,18 +1070,18 @@ msgstr "" "Значок підтвердження з’являється лише після авторизації у відповідного " "провайдера." -#: lib/who_need_help_web/live/activity_live/show.ex:662 +#: lib/who_need_help_web/live/activity_live/show.ex:663 #, elixir-autogen, elixir-format msgid "Mark completed" msgstr "Позначити завершеною" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:231 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:242 #, elixir-autogen, elixir-format msgid "Match and coordinate" msgstr "Знайдіть помічника й узгодьте деталі" -#: lib/who_need_help_web/live/request_live/index.ex:178 -#: lib/who_need_help_web/live/request_live/index.ex:179 +#: lib/who_need_help_web/live/request_live/index.ex:272 +#: lib/who_need_help_web/live/request_live/index.ex:273 #: lib/who_need_help_web/live/request_live/show.ex:753 #, elixir-autogen, elixir-format msgid "Matched" @@ -1173,12 +1173,12 @@ msgstr "Модератор" msgid "Moderator access is required." msgstr "Потрібен доступ модератора." -#: lib/who_need_help_web/live/request_live/index.ex:196 +#: lib/who_need_help_web/live/request_live/index.ex:298 #, elixir-autogen, elixir-format msgid "NEARBY MUTUAL AID" msgstr "ВЗАЄМОДОПОМОГА ПОРУЧ" -#: lib/who_need_help_web/live/request_live/index.ex:97 +#: lib/who_need_help_web/live/request_live/index.ex:31 #, elixir-autogen, elixir-format msgid "Nearby help" msgstr "Допомога поруч" @@ -1222,17 +1222,12 @@ msgstr "Ще немає повідомлень." msgid "No open activities yet" msgstr "Відкритих активностей поки немає" -#: lib/who_need_help_web/live/request_live/index.ex:254 -#, elixir-autogen, elixir-format -msgid "No open requests yet" -msgstr "Відкритих заявок поки немає" - #: lib/who_need_help_web/live/moderation_live.ex:461 #, elixir-autogen, elixir-format msgid "No open signals." msgstr "Немає відкритих сигналів." -#: lib/who_need_help_web/live/activity_live/show.ex:657 +#: lib/who_need_help_web/live/activity_live/show.ex:658 #, elixir-autogen, elixir-format msgid "No pending join requests." msgstr "Немає заявок на участь, що очікують." @@ -1270,9 +1265,9 @@ msgstr "" msgid "Not for emergencies" msgstr "Не для екстрених ситуацій" -#: lib/who_need_help_web/live/request_live/index.ex:168 -#: lib/who_need_help_web/live/request_live/index.ex:169 -#: lib/who_need_help_web/live/request_live/index.ex:243 +#: lib/who_need_help_web/live/request_live/index.ex:262 +#: lib/who_need_help_web/live/request_live/index.ex:263 +#: lib/who_need_help_web/live/request_live/index.ex:347 #: lib/who_need_help_web/live/request_live/new.ex:359 #: lib/who_need_help_web/live/request_live/show.ex:744 #: lib/who_need_help_web/live/request_live/show.ex:745 @@ -1285,12 +1280,6 @@ msgstr "Зараз" msgid "OPTIONAL SOCIAL PLANS" msgstr "НЕОБОВ’ЯЗКОВІ СПІЛЬНІ ПЛАНИ" -#: lib/who_need_help_web/live/request_live/index.ex:199 -#, elixir-autogen, elixir-format -msgid "Only approximate areas are shown before a safe match." -msgstr "" -"До безпечного призначення помічника показуються лише приблизні області." - #: lib/who_need_help_web/controllers/page_html/safety.html.heex:26 #, elixir-autogen, elixir-format msgid "Only request pickup of a legal item already reserved or paid for. Do not request medical advice, a prescription, controlled substances, cash advances, repackaging, or a purchase on your behalf. Follow pharmacy rules and local law." @@ -1317,8 +1306,8 @@ msgstr "" #: lib/who_need_help_web/live/activity_live/index.ex:166 #: lib/who_need_help_web/live/activity_live/show.ex:342 #: lib/who_need_help_web/live/moderation_live.ex:258 -#: lib/who_need_help_web/live/request_live/index.ex:176 -#: lib/who_need_help_web/live/request_live/index.ex:177 +#: lib/who_need_help_web/live/request_live/index.ex:270 +#: lib/who_need_help_web/live/request_live/index.ex:271 #: lib/who_need_help_web/live/request_live/show.ex:752 #: lib/who_need_help_web/live/support_operations_live.ex:189 #: lib/who_need_help_web/live/support_operations_live.ex:252 @@ -1341,7 +1330,7 @@ msgstr "Відкриті пропозиції" msgid "Optional external thank-you link" msgstr "Необов’язкове зовнішнє посилання для подяки" -#: lib/who_need_help_web/live/request_live/show.ex:1297 +#: lib/who_need_help_web/live/request_live/show.ex:1298 #, elixir-autogen, elixir-format msgid "Optional thank-you link" msgstr "Необов’язкове посилання для подяки" @@ -1356,7 +1345,7 @@ msgstr "Організатор" msgid "Organizer blocked. Their activities and messages are hidden." msgstr "Організатора заблоковано. Його активності й повідомлення приховано." -#: lib/who_need_help_web/live/activity_live/show.ex:608 +#: lib/who_need_help_web/live/activity_live/show.ex:609 #, elixir-autogen, elixir-format msgid "Organizer controls" msgstr "Керування організатора" @@ -1371,11 +1360,11 @@ msgstr "Посилання організатора на соцмережі" #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:59 #: lib/who_need_help_web/controllers/support_html.ex:13 #: lib/who_need_help_web/controllers/support_html/new.html.heex:38 -#: lib/who_need_help_web/live/activity_live/show.ex:745 +#: lib/who_need_help_web/live/activity_live/show.ex:746 #: lib/who_need_help_web/live/moderation_live.ex:255 #: lib/who_need_help_web/live/profile_live.ex:319 #: lib/who_need_help_web/live/public_profile_live.ex:53 -#: lib/who_need_help_web/live/request_live/show.ex:1383 +#: lib/who_need_help_web/live/request_live/show.ex:1384 #: lib/who_need_help_web/live/support_operations_live.ex:85 #: lib/who_need_help_web/live/support_operations_live.ex:100 #, elixir-autogen, elixir-format @@ -1438,12 +1427,12 @@ msgstr "Будь ласка, перевірте вказані поля." msgid "Please check the submitted message." msgstr "Будь ласка, перевірте надіслане повідомлення." -#: lib/who_need_help_web/live/request_live/new.ex:402 +#: lib/who_need_help_web/live/request_live/new.ex:403 #, elixir-autogen, elixir-format msgid "Podil, near the central pharmacy" msgstr "Поділь, поблизу центральної аптеки." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:224 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:235 #, elixir-autogen, elixir-format msgid "Post a clear request" msgstr "Опублікуйте зрозумілу заявку" @@ -1472,7 +1461,7 @@ msgid "Profile updated." msgstr "Профіль оновлено." #: lib/who_need_help_web/live/moderation_live.ex:252 -#: lib/who_need_help_web/live/request_live/show.ex:1380 +#: lib/who_need_help_web/live/request_live/show.ex:1381 #, elixir-autogen, elixir-format msgid "Prohibited item" msgstr "Заборонений предмет" @@ -1549,13 +1538,13 @@ msgstr "Опублікувати активність" msgid "Publish proposal" msgstr "Оприлюднити пропозицію" -#: lib/who_need_help_web/live/request_live/new.ex:637 +#: lib/who_need_help_web/live/request_live/new.ex:639 #, elixir-autogen, elixir-format msgid "Publish request" msgstr "Опублікувати заявку" #: lib/who_need_help_web/live/activity_live/new.ex:311 -#: lib/who_need_help_web/live/request_live/new.ex:635 +#: lib/who_need_help_web/live/request_live/new.ex:637 #, elixir-autogen, elixir-format msgid "Publishing…" msgstr "Публікація…" @@ -1598,7 +1587,7 @@ msgid "Read the" msgstr "Прочитайте" #: lib/who_need_help_web/controllers/content_removal_html/new.html.heex:27 -#: lib/who_need_help_web/live/activity_live/show.ex:738 +#: lib/who_need_help_web/live/activity_live/show.ex:739 #, elixir-autogen, elixir-format msgid "Reason" msgstr "Причина" @@ -1633,7 +1622,7 @@ msgstr "Поскаржитися" msgid "Report message" msgstr "Поскаржитися на повідомлення" -#: lib/who_need_help_web/live/request_live/show.ex:1375 +#: lib/who_need_help_web/live/request_live/show.ex:1376 #, elixir-autogen, elixir-format msgid "Report reason" msgstr "Причина скарги" @@ -1659,7 +1648,7 @@ msgstr "Матеріали зі скарги" msgid "Reports" msgstr "Скарги" -#: lib/who_need_help_web/live/request_live/show.ex:1339 +#: lib/who_need_help_web/live/request_live/show.ex:1340 #, elixir-autogen, elixir-format msgid "Reports go to moderators. Blocking hides requests in both directions and prevents new chat messages." msgstr "" @@ -1681,7 +1670,7 @@ msgstr "Заявку приховано." msgid "Request restored." msgstr "Заявку відновлено." -#: lib/who_need_help_web/live/activity_live/show.ex:565 +#: lib/who_need_help_web/live/activity_live/show.ex:566 #, elixir-autogen, elixir-format msgid "Request to join" msgstr "Подати заявку на участь" @@ -1764,8 +1753,8 @@ msgstr "Опис російською (необов’язково)" msgid "Russian name (optional)" msgstr "Назва російською (необов’язково)" -#: lib/who_need_help_web/live/activity_live/show.ex:708 -#: lib/who_need_help_web/live/request_live/show.ex:1337 +#: lib/who_need_help_web/live/activity_live/show.ex:709 +#: lib/who_need_help_web/live/request_live/show.ex:1338 #, elixir-autogen, elixir-format msgid "Safety controls" msgstr "Інструменти безпеки" @@ -1801,9 +1790,9 @@ msgstr "Зберегти пароль" msgid "Save profile" msgstr "Зберегти профіль" -#: lib/who_need_help_web/live/request_live/index.ex:172 -#: lib/who_need_help_web/live/request_live/index.ex:173 -#: lib/who_need_help_web/live/request_live/index.ex:245 +#: lib/who_need_help_web/live/request_live/index.ex:266 +#: lib/who_need_help_web/live/request_live/index.ex:267 +#: lib/who_need_help_web/live/request_live/index.ex:349 #: lib/who_need_help_web/live/request_live/new.ex:361 #: lib/who_need_help_web/live/request_live/show.ex:748 #: lib/who_need_help_web/live/request_live/show.ex:749 @@ -1817,8 +1806,8 @@ msgstr "Заплановано" msgid "Send" msgstr "Надіслати" -#: lib/who_need_help_web/live/activity_live/show.ex:754 -#: lib/who_need_help_web/live/request_live/show.ex:1392 +#: lib/who_need_help_web/live/activity_live/show.ex:755 +#: lib/who_need_help_web/live/request_live/show.ex:1393 #, elixir-autogen, elixir-format msgid "Send report" msgstr "Надіслати скаргу" @@ -1830,7 +1819,7 @@ msgstr "" "Установіть CODEX_SESSION_ID у середовищі розгортання перед записом " "демонстрації." -#: lib/who_need_help_web/live/request_live/show.ex:1324 +#: lib/who_need_help_web/live/request_live/show.ex:1325 #, elixir-autogen, elixir-format msgid "Share location" msgstr "Поділитися геопозицією" @@ -1919,14 +1908,14 @@ msgstr "Сеанс підтвердження соцмережі заверши msgid "Social verification session is invalid." msgstr "Сеанс соціальної перевірки є некоректним." -#: lib/who_need_help_web/live/activity_live/show.ex:743 +#: lib/who_need_help_web/live/activity_live/show.ex:744 #: lib/who_need_help_web/live/moderation_live.ex:253 -#: lib/who_need_help_web/live/request_live/show.ex:1381 +#: lib/who_need_help_web/live/request_live/show.ex:1382 #, elixir-autogen, elixir-format msgid "Spam" msgstr "Спам" -#: lib/who_need_help_web/live/request_live/show.ex:1181 +#: lib/who_need_help_web/live/request_live/show.ex:1182 #, elixir-autogen, elixir-format msgid "Start helping" msgstr "Почати допомагати" @@ -1941,7 +1930,7 @@ msgstr "Початок" msgid "Status" msgstr "Статус" -#: lib/who_need_help_web/live/request_live/show.ex:1332 +#: lib/who_need_help_web/live/request_live/show.ex:1333 #, elixir-autogen, elixir-format msgid "Stop and delete position" msgstr "Зупинити й видалити геопозицію" @@ -2018,7 +2007,7 @@ msgstr "Останній адміністратор не може понизит msgid "The link is invalid or it has expired." msgstr "Посилання недійсне або прострочене." -#: lib/who_need_help_web/live/activity_live/show.ex:570 +#: lib/who_need_help_web/live/activity_live/show.ex:571 #, elixir-autogen, elixir-format msgid "The organizer has not approved your request yet." msgstr "Організатор ще не схвалив ваш запит." @@ -2036,19 +2025,19 @@ msgstr "" "Платформа ніколи не обробляє, не вимагає, не розподіляє й не гарантує " "оплату." -#: lib/who_need_help_web/live/activity_live/show.ex:550 +#: lib/who_need_help_web/live/activity_live/show.ex:551 #, elixir-autogen, elixir-format msgid "The public map is approximate or hidden. Exact coordinates appear only after approval." msgstr "" "Публічна карта показує приблизну область або прихована. Точні координати " "з’являються лише після схвалення." -#: lib/who_need_help_web/live/activity_live/show.ex:726 +#: lib/who_need_help_web/live/activity_live/show.ex:727 #, elixir-autogen, elixir-format msgid "The report is scoped to the selected group message." msgstr "Скарга стосується вибраного повідомлення групи." -#: lib/who_need_help_web/live/request_live/show.ex:1367 +#: lib/who_need_help_web/live/request_live/show.ex:1368 #, elixir-autogen, elixir-format msgid "The report will be scoped to the selected chat message." msgstr "Скарга стосуватиметься вибраного повідомлення чату." @@ -2074,7 +2063,7 @@ msgstr "Цей стан активності вже змінено." msgid "This interaction is blocked." msgstr "Ця взаємодія заблокована." -#: lib/who_need_help_web/live/request_live/index.ex:210 +#: lib/who_need_help_web/live/request_live/index.ex:314 #: lib/who_need_help_web/live/request_live/show.ex:792 #, elixir-autogen, elixir-format msgid "This is not an emergency service. Contact local emergency services for immediate danger." @@ -2105,7 +2094,7 @@ msgstr "Ця пропозиція вже закрита." msgid "This report has no linked conversation." msgstr "Ця скарга не має пов’язаного листування." -#: lib/who_need_help_web/live/request_live/show.ex:1302 +#: lib/who_need_help_web/live/request_live/show.ex:1303 #, elixir-autogen, elixir-format msgid "This request already has a helper." msgstr "Ця заявка вже має помічника." @@ -2126,9 +2115,9 @@ msgstr "Ця заявка недоступна." msgid "To see sent emails, visit" msgstr "Щоб переглянути надіслані листи, відкрийте" -#: lib/who_need_help_web/live/request_live/index.ex:170 -#: lib/who_need_help_web/live/request_live/index.ex:171 -#: lib/who_need_help_web/live/request_live/index.ex:244 +#: lib/who_need_help_web/live/request_live/index.ex:264 +#: lib/who_need_help_web/live/request_live/index.ex:265 +#: lib/who_need_help_web/live/request_live/index.ex:348 #: lib/who_need_help_web/live/request_live/new.ex:360 #: lib/who_need_help_web/live/request_live/show.ex:746 #: lib/who_need_help_web/live/request_live/show.ex:747 @@ -2193,7 +2182,7 @@ msgstr "Назва українською (необов’язково)" msgid "Unblock" msgstr "Розблокувати" -#: lib/who_need_help_web/live/request_live/show.ex:1355 +#: lib/who_need_help_web/live/request_live/show.ex:1356 #, elixir-autogen, elixir-format msgid "Unblock this user" msgstr "Розблокувати цього користувача" @@ -2208,7 +2197,7 @@ msgstr "Унікальні люди" msgid "Update email instructions" msgstr "Інструкції для зміни електронної пошти" -#: lib/who_need_help_web/live/request_live/index.ex:240 +#: lib/who_need_help_web/live/request_live/index.ex:344 #: lib/who_need_help_web/live/request_live/new.ex:357 #, elixir-autogen, elixir-format msgid "Urgency" @@ -2242,7 +2231,7 @@ msgstr "Увімкнути світлу тему" msgid "Use my current foreground location" msgstr "Використати мою поточну геопозицію" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:233 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:244 #, elixir-autogen, elixir-format msgid "Use private chat and optional live location sharing." msgstr "" @@ -2297,12 +2286,12 @@ msgstr "Підтверджені люди" msgid "Verify GitHub" msgstr "Підтвердити через GitHub" -#: lib/who_need_help_web/live/request_live/show.ex:1282 +#: lib/who_need_help_web/live/request_live/show.ex:1283 #, elixir-autogen, elixir-format msgid "Verify handover" msgstr "Підтвердити передачу" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:238 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:249 #, elixir-autogen, elixir-format msgid "Verify the handover" msgstr "Підтвердьте передачу" @@ -2317,7 +2306,7 @@ msgstr "Переглянути пов’язані докази" msgid "Visible reviews" msgstr "Відкриті відгуки" -#: lib/who_need_help_web/live/request_live/show.ex:1063 +#: lib/who_need_help_web/live/request_live/show.ex:1064 #, elixir-autogen, elixir-format msgid "Waiting for a nearby volunteer." msgstr "Очікуємо помічника поруч." @@ -2334,8 +2323,8 @@ msgstr "З поверненням!" msgid "What Codex contributed" msgstr "Що зробив Codex" -#: lib/who_need_help_web/live/activity_live/show.ex:751 -#: lib/who_need_help_web/live/request_live/show.ex:1389 +#: lib/who_need_help_web/live/activity_live/show.ex:752 +#: lib/who_need_help_web/live/request_live/show.ex:1390 #, elixir-autogen, elixir-format msgid "What happened?" msgstr "Що сталося?" @@ -2378,7 +2367,7 @@ msgstr "" "через підписку ChatGPT розробника. Ключ OpenAI API та резервний варіант API " "з оплатою за використання не застосовуються." -#: lib/who_need_help_web/live/request_live/index.ex:197 +#: lib/who_need_help_web/live/request_live/index.ex:299 #, elixir-autogen, elixir-format msgid "Who needs help?" msgstr "Хто потребує допомоги?" @@ -2388,7 +2377,7 @@ msgstr "Хто потребує допомоги?" msgid "Why is this useful?" msgstr "Чому це корисно?" -#: lib/who_need_help_web/live/request_live/show.ex:1210 +#: lib/who_need_help_web/live/request_live/show.ex:1211 #, elixir-autogen, elixir-format msgid "Withdraw from this request" msgstr "Відмовитися від цієї заявки" @@ -2402,8 +2391,8 @@ msgstr "Напишіть безпечне повідомлення для коо #: lib/who_need_help_web/live/activity_live/show.ex:298 #: lib/who_need_help_web/live/request_live/new.ex:318 #: lib/who_need_help_web/live/request_live/show.ex:682 -#: lib/who_need_help_web/live/request_live/show.ex:1127 -#: lib/who_need_help_web/live/request_live/show.ex:1135 +#: lib/who_need_help_web/live/request_live/show.ex:1128 +#: lib/who_need_help_web/live/request_live/show.ex:1136 #, elixir-autogen, elixir-format msgid "Yes" msgstr "Так" @@ -2418,7 +2407,7 @@ msgstr "Ви вже подали заявку на участь у цій акт msgid "You already voted for this proposal." msgstr "Ви вже проголосували за цю пропозицію." -#: lib/who_need_help_web/live/activity_live/show.ex:548 +#: lib/who_need_help_web/live/activity_live/show.ex:549 #, elixir-autogen, elixir-format msgid "You are approved, so the map can show the exact meeting coordinates." msgstr "Вас схвалено, тому карта може показувати точні координати зустрічі." @@ -2439,11 +2428,6 @@ msgstr "Ви не маєте дозволу на цю дію." msgid "You are running the local mail adapter." msgstr "Використовується локальний поштовий адаптер." -#: lib/who_need_help_web/live/request_live/index.ex:256 -#, elixir-autogen, elixir-format -msgid "You can be the first person to ask the community." -msgstr "Ви можете першими звернутися по допомогу до спільноти." - #: lib/who_need_help_web/live/request_live/show.ex:723 #, elixir-autogen, elixir-format msgid "You cannot accept your own request." @@ -2489,7 +2473,7 @@ msgstr "" msgid "You withdrew from this request." msgstr "Ви відмовилися допомагати з цією заявкою." -#: lib/who_need_help_web/live/activity_live/index.ex:292 +#: lib/who_need_help_web/live/activity_live/index.ex:293 #, elixir-autogen, elixir-format msgid "Your activities" msgstr "Ваші активності" @@ -2510,7 +2494,7 @@ msgid "Your request is now visible to nearby helpers." msgstr "Тепер вашу заявку бачать помічники поруч." #: lib/who_need_help_web/controllers/support_html/index.html.heex:6 -#: lib/who_need_help_web/live/request_live/index.ex:342 +#: lib/who_need_help_web/live/request_live/index.ex:555 #, elixir-autogen, elixir-format msgid "Your requests" msgstr "Ваші запити" @@ -2521,7 +2505,7 @@ msgid "Your review is revealed only after both participants submit." msgstr "" "Ваш відгук відкриється лише після того, як його надішлють обидва учасники." -#: lib/who_need_help_web/live/request_live/index.ex:319 +#: lib/who_need_help_web/live/request_live/index.ex:534 #, elixir-autogen, elixir-format msgid "Your trust summary" msgstr "Ваші показники довіри" @@ -2546,20 +2530,20 @@ msgstr "перед підтвердженням." #: lib/who_need_help_web/live/activity_live/index.ex:261 #: lib/who_need_help_web/live/category_proposal_live.ex:188 #: lib/who_need_help_web/live/moderation_live.ex:318 -#: lib/who_need_help_web/live/request_live/index.ex:286 +#: lib/who_need_help_web/live/request_live/index.ex:473 #, elixir-autogen, elixir-format msgid "by %{name}" msgstr "автор: %{name}" #: lib/who_need_help_web/live/profile_live.ex:189 #: lib/who_need_help_web/live/public_profile_live.ex:128 -#: lib/who_need_help_web/live/request_live/index.ex:323 -#: lib/who_need_help_web/live/request_live/show.ex:1086 +#: lib/who_need_help_web/live/request_live/index.ex:538 +#: lib/who_need_help_web/live/request_live/show.ex:1087 #, elixir-autogen, elixir-format msgid "completed" msgstr "завершено" -#: lib/who_need_help_web/live/request_live/index.ex:291 +#: lib/who_need_help_web/live/request_live/index.ex:478 #, elixir-autogen, elixir-format msgid "expires %{time}" msgstr "спливає %{time}" @@ -2569,22 +2553,22 @@ msgstr "спливає %{time}" msgid "for an account now." msgstr "обліковий запис зараз." -#: lib/who_need_help_web/live/request_live/show.ex:1113 +#: lib/who_need_help_web/live/request_live/show.ex:1114 #, elixir-autogen, elixir-format msgid "helper movement supported" msgstr "рух помічника підтверджено" -#: lib/who_need_help_web/live/request_live/show.ex:1114 +#: lib/who_need_help_web/live/request_live/show.ex:1115 #, elixir-autogen, elixir-format msgid "no movement evidence" msgstr "немає підтвердження руху" -#: lib/who_need_help_web/live/request_live/show.ex:1105 +#: lib/who_need_help_web/live/request_live/show.ex:1106 #, elixir-autogen, elixir-format msgid "no proximity evidence" msgstr "немає підтвердження близькості" -#: lib/who_need_help_web/live/activity_live/show.ex:678 +#: lib/who_need_help_web/live/activity_live/show.ex:679 #, elixir-autogen, elixir-format msgid "organizer" msgstr "організатор" @@ -2594,20 +2578,20 @@ msgstr "організатор" msgid "participants only" msgstr "лише учасники" -#: lib/who_need_help_web/live/request_live/index.ex:328 -#: lib/who_need_help_web/live/request_live/show.ex:1090 +#: lib/who_need_help_web/live/request_live/index.ex:542 +#: lib/who_need_help_web/live/request_live/show.ex:1091 #, elixir-autogen, elixir-format msgid "people" msgstr "люди" -#: lib/who_need_help_web/live/request_live/show.ex:1104 +#: lib/who_need_help_web/live/request_live/show.ex:1105 #, elixir-autogen, elixir-format msgid "proximity supported" msgstr "близькість підтверджено" #: lib/who_need_help_web/live/profile_live.ex:204 #: lib/who_need_help_web/live/public_profile_live.ex:140 -#: lib/who_need_help_web/live/request_live/show.ex:1094 +#: lib/who_need_help_web/live/request_live/show.ex:1095 #, elixir-autogen, elixir-format msgid "rating" msgstr "оцінка" @@ -2634,12 +2618,12 @@ msgid "unique people" msgstr "унікальні люди" #: lib/who_need_help_web/live/activity_live/show.ex:420 -#: lib/who_need_help_web/live/activity_live/show.ex:636 -#: lib/who_need_help_web/live/activity_live/show.ex:697 +#: lib/who_need_help_web/live/activity_live/show.ex:637 +#: lib/who_need_help_web/live/activity_live/show.ex:698 #: lib/who_need_help_web/live/profile_live.ex:285 #: lib/who_need_help_web/live/public_profile_live.ex:98 #: lib/who_need_help_web/live/request_live/show.ex:867 -#: lib/who_need_help_web/live/request_live/show.ex:1173 +#: lib/who_need_help_web/live/request_live/show.ex:1174 #, elixir-autogen, elixir-format msgid "unverified" msgstr "не підтверджено" @@ -2650,13 +2634,13 @@ msgid "urgent" msgstr "терміново" #: lib/who_need_help_web/live/activity_live/show.ex:419 -#: lib/who_need_help_web/live/activity_live/show.ex:635 -#: lib/who_need_help_web/live/activity_live/show.ex:696 +#: lib/who_need_help_web/live/activity_live/show.ex:636 +#: lib/who_need_help_web/live/activity_live/show.ex:697 #: lib/who_need_help_web/live/profile_live.ex:284 #: lib/who_need_help_web/live/public_profile_live.ex:98 -#: lib/who_need_help_web/live/request_live/index.ex:333 +#: lib/who_need_help_web/live/request_live/index.ex:546 #: lib/who_need_help_web/live/request_live/show.ex:866 -#: lib/who_need_help_web/live/request_live/show.ex:1172 +#: lib/who_need_help_web/live/request_live/show.ex:1173 #, elixir-autogen, elixir-format msgid "verified" msgstr "підтверджено" @@ -2693,8 +2677,8 @@ msgstr "← Заявки" msgid "Approved" msgstr "Схвалено" -#: lib/who_need_help_web/live/request_live/index.ex:186 -#: lib/who_need_help_web/live/request_live/index.ex:187 +#: lib/who_need_help_web/live/request_live/index.ex:280 +#: lib/who_need_help_web/live/request_live/index.ex:281 #, elixir-autogen, elixir-format msgid "Expired" msgstr "Спливло" @@ -2748,7 +2732,7 @@ msgid "Load earlier messages" msgstr "Завантажити попередні повідомлення" #: lib/who_need_help_web/live/activity_live/index.ex:273 -#: lib/who_need_help_web/live/activity_live/index.ex:310 +#: lib/who_need_help_web/live/activity_live/index.ex:311 #: lib/who_need_help_web/live/category_proposal_live.ex:220 #: lib/who_need_help_web/live/leaderboard_live.ex:91 #: lib/who_need_help_web/live/moderation_live.ex:385 @@ -2758,8 +2742,7 @@ msgstr "Завантажити попередні повідомлення" #: lib/who_need_help_web/live/profile_live.ex:232 #: lib/who_need_help_web/live/profile_live.ex:362 #: lib/who_need_help_web/live/public_profile_live.ex:173 -#: lib/who_need_help_web/live/request_live/index.ex:303 -#: lib/who_need_help_web/live/request_live/index.ex:360 +#: lib/who_need_help_web/live/request_live/index.ex:573 #: lib/who_need_help_web/live/support_operations_live.ex:215 #: lib/who_need_help_web/live/support_operations_live.ex:276 #, elixir-autogen, elixir-format @@ -2768,7 +2751,7 @@ msgstr "Завантажити ще" #: lib/who_need_help_web/live/activity_live/index.ex:284 #: lib/who_need_help_web/live/activity_live/show.ex:540 -#: lib/who_need_help_web/live/request_live/index.ex:314 +#: lib/who_need_help_web/live/request_live/index.ex:515 #: lib/who_need_help_web/live/request_live/show.ex:1046 #, elixir-autogen, elixir-format msgid "The map is unavailable in this browser. Request details remain usable." @@ -3509,8 +3492,8 @@ msgstr "Зазначена підстава:" msgid "Subject" msgstr "Тема" -#: lib/who_need_help_web/live/activity_live/show.ex:762 -#: lib/who_need_help_web/live/request_live/show.ex:1400 +#: lib/who_need_help_web/live/activity_live/show.ex:763 +#: lib/who_need_help_web/live/request_live/show.ex:1401 #, elixir-autogen, elixir-format msgid "Submit a legal content-removal notice" msgstr "Подати юридичне повідомлення про видалення контенту" @@ -3756,7 +3739,7 @@ msgstr "Умови" msgid "and" msgstr "та" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:214 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:225 #, elixir-autogen, elixir-format msgid "A clear handover" msgstr "Зрозуміла передача допомоги" @@ -3771,7 +3754,7 @@ msgstr "Проколота шина або інша невелика дорож msgid "A puncture, broken chain, tyre problem, or similar practical help." msgstr "Прокол, зламаний ланцюг, проблема з шиною чи подібна практична допомога." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:191 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:202 #, elixir-autogen, elixir-format msgid "Accept and open private coordination" msgstr "Прийняти заявку й перейти до приватної координації" @@ -3788,7 +3771,7 @@ msgstr "Орієнтовний район · демонстраційні дан msgid "Ask a nearby volunteer to collect medicine that is already purchased or help with a safe roadside problem. There is no mandatory fee." msgstr "Попросіть волонтера поблизу забрати вже придбані ліки або допомогти з безпечною дорожньою проблемою. Обов’язкової оплати немає." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:328 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:339 #, elixir-autogen, elixir-format msgid "Before you create a request" msgstr "Перед створенням заявки" @@ -3803,7 +3786,7 @@ msgstr "Допомога з велосипедним ланцюгом · при msgid "Bicycle or motorcycle" msgstr "Велосипед або мотоцикл" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:240 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:251 #, elixir-autogen, elixir-format msgid "Both confirm, the helper enters a one-time code, and reviews stay blind until both submit." msgstr "Обидва учасники підтверджують передачу, помічник вводить одноразовий код, а відгуки залишаються прихованими, доки їх не надішлють обоє." @@ -3813,12 +3796,12 @@ msgstr "Обидва учасники підтверджують передач msgid "Bring fuel" msgstr "Привезти пальне" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:252 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:263 #, elixir-autogen, elixir-format msgid "Built for safer coordination" msgstr "Створено для безпечнішої координації" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:344 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:355 #, elixir-autogen, elixir-format msgid "Can a volunteer buy medicine for me?" msgstr "Чи може волонтер купити мені ліки?" @@ -3833,37 +3816,37 @@ msgstr "Оберіть модеровану категорію. Кожна за msgid "Collect medicine" msgstr "Забрати ліки" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:367 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:378 #, elixir-autogen, elixir-format msgid "Contact the emergency service for your location. Who Need Help is for voluntary practical coordination, not emergencies." msgstr "Зверніться до екстреної служби за місцем перебування. Who Need Help призначений для добровільної практичної координації, а не для надзвичайних ситуацій." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:380 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:391 #, elixir-autogen, elixir-format msgid "Create one account, choose your role for each situation, and keep control of what you share." msgstr "Створіть один обліковий запис, обирайте свою роль у кожній ситуації та контролюйте, чим ділитеся." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:202 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:213 #, elixir-autogen, elixir-format msgid "Current coordinates are optional and deleted when sharing stops." msgstr "Поточні координати передаються за бажанням і видаляються після зупинення." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:153 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:156 #, elixir-autogen, elixir-format msgid "Demo map with synthetic approximate help requests" msgstr "Демонстраційна карта із синтетичними орієнтовними заявками про допомогу" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:182 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:193 #, elixir-autogen, elixir-format msgid "Discover an approximate area" msgstr "Побачити орієнтовний район" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:334 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:345 #, elixir-autogen, elixir-format msgid "Do I have to pay a helper?" msgstr "Чи потрібно платити помічнику?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:160 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:171 #, elixir-autogen, elixir-format msgid "Example data — not live requests" msgstr "Демонстраційні дані — не реальні заявки" @@ -3873,12 +3856,12 @@ msgstr "Демонстраційні дані — не реальні заявк msgid "Example request" msgstr "Приклад заявки" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:316 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:327 #, elixir-autogen, elixir-format msgid "Explore activities" msgstr "Переглянути активності" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:307 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:318 #, elixir-autogen, elixir-format msgid "Find company for coffee, cinema, a walk, or a hike" msgstr "Знайдіть компанію для кави, кіно, прогулянки чи походу" @@ -3893,17 +3876,17 @@ msgstr "Допомога з проколотою шиною · приклад" msgid "Free, nearby, voluntary help" msgstr "Безкоштовна добровільна допомога поруч" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:217 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:228 #, elixir-autogen, elixir-format msgid "From request to verified completion" msgstr "Від заявки до підтвердженого завершення" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:289 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:300 #, elixir-autogen, elixir-format msgid "Handover codes and unique completed matches matter more than raw totals." msgstr "Одноразові коди передачі й унікальні завершені взаємодії важливіші за прості підсумкові числа." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:264 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:275 #, elixir-autogen, elixir-format msgid "Help is voluntary. An external thank-you link is optional after completion." msgstr "Допомога добровільна. Зовнішнє посилання для подяки необов’язкове й доступне після завершення." @@ -3914,17 +3897,17 @@ msgid "Help with a wheel" msgstr "Допомогти з колесом" #: lib/who_need_help_web/controllers/page_html/home.html.heex:51 -#: lib/who_need_help_web/controllers/page_html/home.html.heex:389 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:400 #, elixir-autogen, elixir-format msgid "I need help" msgstr "Мені потрібна допомога" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:158 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:163 #, elixir-autogen, elixir-format msgid "Interactive demo" msgstr "Інтерактивний приклад" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:280 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:291 #, elixir-autogen, elixir-format msgid "Leave a match, block a person, or send a scoped report when something feels wrong." msgstr "Відмовтеся від взаємодії, заблокуйте людину або надішліть скаргу на конкретний об’єкт, якщо щось здається небезпечним." @@ -3939,17 +3922,17 @@ msgstr "Отримання ліків · приклад" msgid "Need help nearby? Ask the community." msgstr "Потрібна допомога поруч? Зверніться до спільноти." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:262 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:273 #, elixir-autogen, elixir-format msgid "No mandatory payment" msgstr "Без обов’язкової оплати" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:337 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:348 #, elixir-autogen, elixir-format msgid "No. Help has no mandatory fee. A helper may optionally publish an external thank-you link after a completed handover." msgstr "Ні. Допомога не потребує обов’язкової оплати. Після підтвердженої передачі помічник може за бажанням указати зовнішнє посилання для подяки." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:304 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:315 #, elixir-autogen, elixir-format msgid "Not only urgent help" msgstr "Не лише термінова допомога" @@ -3959,52 +3942,52 @@ msgstr "Не лише термінова допомога" msgid "Only after people and the vehicle are away from active traffic danger." msgstr "Лише коли люди й транспорт перебувають поза небезпечною зоною активного руху." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:193 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:204 #, elixir-autogen, elixir-format msgid "Only the matched requester and helper receive the private chat." msgstr "Приватний чат доступний лише автору заявки й призначеному помічнику." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:167 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:178 #, elixir-autogen, elixir-format msgid "Privacy by default" msgstr "Приватність за замовчуванням" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:271 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:282 #, elixir-autogen, elixir-format msgid "Private matched chat" msgstr "Приватний чат після збігу" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:325 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:336 #, elixir-autogen, elixir-format msgid "Quick answers" msgstr "Короткі відповіді" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:295 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:306 #, elixir-autogen, elixir-format msgid "Read the safety rules" msgstr "Прочитати правила безпеки" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:378 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:389 #, elixir-autogen, elixir-format msgid "Ready to ask or help nearby?" msgstr "Готові попросити про допомогу або допомогти поруч?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:278 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:289 #, elixir-autogen, elixir-format msgid "Reports and blocking" msgstr "Скарги й блокування" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:170 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:181 #, elixir-autogen, elixir-format msgid "See nearby needs without exposing a home address" msgstr "Дізнавайтеся про потреби поблизу, не розкриваючи домашню адресу" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:200 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:211 #, elixir-autogen, elixir-format msgid "Share live location only by choice" msgstr "Діліться геопозицією лише за власним вибором" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:310 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:321 #, elixir-autogen, elixir-format msgid "Social activities are separate from urgent requests. Organizers approve participants, and exact meeting details stay inside the approved group." msgstr "Соціальні активності відокремлені від термінових заявок. Організатори схвалюють учасників, а точні відомості про зустріч залишаються всередині схваленої групи." @@ -4014,37 +3997,32 @@ msgstr "Соціальні активності відокремлені від msgid "Start with urgent practical help" msgstr "Почніть із термінової практичної допомоги" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:150 -#, elixir-autogen, elixir-format -msgid "The demo map is unavailable. The example steps remain available beside it." -msgstr "Демонстраційна карта недоступна. Кроки прикладу залишаються доступними поруч." - #: lib/who_need_help_web/controllers/page_html/home.html.heex:113 #, elixir-autogen, elixir-format msgid "The medicine is already legally purchased or reserved for pickup." msgstr "Ліки вже законно придбані або зарезервовані для отримання." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:347 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:358 #, elixir-autogen, elixir-format msgid "The medicine must already be legally purchased or reserved. The service does not prescribe, recommend, sell, or handle controlled substances." msgstr "Ліки мають бути заздалегідь законно придбані або зарезервовані. Сервіс не призначає, не рекомендує, не продає й не обробляє контрольовані речовини." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:184 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:195 #, elixir-autogen, elixir-format msgid "The public marker does not need to reveal an exact address." msgstr "Публічна позначка не повинна розкривати точну адресу." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:273 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:284 #, elixir-autogen, elixir-format msgid "There is no unsolicited inbox between strangers." msgstr "Між незнайомими людьми немає можливості писати без збігу." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:173 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:184 #, elixir-autogen, elixir-format msgid "These three points are synthetic examples. Real public discovery follows each requester's location visibility choice." msgstr "Ці три точки — синтетичні приклади. Відображення реальних заявок залежить від обраної автором заявки видимості геопозиції." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:287 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:298 #, elixir-autogen, elixir-format msgid "Verified reputation signals" msgstr "Підтверджені сигнали репутації" @@ -4054,22 +4032,22 @@ msgstr "Підтверджені сигнали репутації" msgid "What can you ask the community for?" msgstr "Про що можна попросити спільноту?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:364 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:375 #, elixir-autogen, elixir-format msgid "What if there is immediate danger?" msgstr "Що робити за безпосередньої небезпеки?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:354 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:365 #, elixir-autogen, elixir-format msgid "Who can see my exact address?" msgstr "Хто побачить мою точну адресу?" -#: lib/who_need_help_web/controllers/page_html/home.html.heex:357 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:368 #, elixir-autogen, elixir-format msgid "You choose the visibility. Exact active coordinates can be limited to the matched helper and are removed when sharing stops." msgstr "Ви самі обираєте видимість. Точні поточні координати можна показувати лише призначеному помічнику; після зупинення передавання вони видаляються." -#: lib/who_need_help_web/controllers/page_html/home.html.heex:255 +#: lib/who_need_help_web/controllers/page_html/home.html.heex:266 #, elixir-autogen, elixir-format msgid "You stay in control of the match" msgstr "Ви контролюєте взаємодію" @@ -4158,7 +4136,7 @@ msgid "Use my password instead" msgstr "Скористатися паролем" #: lib/who_need_help_web/controllers/google_auth_html/complete.html.heex:30 -#: lib/who_need_help_web/live/request_live/show.ex:1143 +#: lib/who_need_help_web/live/request_live/show.ex:1144 #, elixir-autogen, elixir-format msgid "Verified" msgstr "Підтверджено" @@ -4198,7 +4176,7 @@ msgstr "" msgid "A volunteer accepted this request. Use private chat to coordinate safely." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:536 +#: lib/who_need_help_web/live/request_live/new.ex:538 #, elixir-autogen, elixir-format msgid "After a helper accepts" msgstr "Після прийняття заявки помічником" @@ -4208,12 +4186,12 @@ msgstr "Після прийняття заявки помічником" msgid "Already registered? Check your email" msgstr "Уже зареєстровані?" -#: lib/who_need_help_web/live/request_live/new.ex:401 +#: lib/who_need_help_web/live/request_live/new.ex:402 #, elixir-autogen, elixir-format msgid "Area or public landmark" msgstr "Район або публічний орієнтир" -#: lib/who_need_help_web/live/request_live/new.ex:500 +#: lib/who_need_help_web/live/request_live/new.ex:502 #, elixir-autogen, elixir-format msgid "Area radius" msgstr "Радіус зони" @@ -4244,7 +4222,7 @@ msgid "Choose a category from the same mode." msgstr "Виберіть категорію" #: lib/who_need_help_web/live/request_live/new.ex:383 -#: lib/who_need_help_web/live/request_live/new.ex:553 +#: lib/who_need_help_web/live/request_live/new.ex:555 #, elixir-autogen, elixir-format msgid "Choose a place on the map or use your current location." msgstr "Оберіть місце на карті або використайте поточну геопозицію." @@ -4264,18 +4242,18 @@ msgstr "Оберіть зону або точну точку на карті, в msgid "Choose an expiry time in the future." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1243 +#: lib/who_need_help_web/live/request_live/show.ex:1244 #, elixir-autogen, elixir-format msgid "Copied" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1242 -#: lib/who_need_help_web/live/request_live/show.ex:1248 +#: lib/who_need_help_web/live/request_live/show.ex:1243 +#: lib/who_need_help_web/live/request_live/show.ex:1249 #, elixir-autogen, elixir-format msgid "Copy code" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1244 +#: lib/who_need_help_web/live/request_live/show.ex:1245 #, elixir-autogen, elixir-format msgid "Copy failed" msgstr "" @@ -4285,27 +4263,27 @@ msgstr "" msgid "Date" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:561 +#: lib/who_need_help_web/live/request_live/new.ex:563 #, elixir-autogen, elixir-format msgid "Enter coordinates manually" msgstr "Ввести координати вручну" -#: lib/who_need_help_web/live/request_live/show.ex:1276 +#: lib/who_need_help_web/live/request_live/show.ex:1277 #, elixir-autogen, elixir-format msgid "Enter the six digits shown to the requester." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:436 +#: lib/who_need_help_web/live/request_live/new.ex:437 #, elixir-autogen, elixir-format msgid "Exact point" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:627 +#: lib/who_need_help_web/live/request_live/new.ex:629 #, elixir-autogen, elixir-format msgid "Fix the following details and publish again:" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:563 +#: lib/who_need_help_web/live/request_live/new.ex:565 #, elixir-autogen, elixir-format msgid "For an approximate area, these coordinates are the area center—not your exact position." msgstr "Для приблизної зони ці координати задають центр області, а не вашу точну позицію." @@ -4315,12 +4293,12 @@ msgstr "Для приблизної зони ці координати зада msgid "For privacy, this page cannot reveal whether an account exists. If you are new to Who Need Help, choose Register instead." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1140 +#: lib/who_need_help_web/live/request_live/show.ex:1141 #, elixir-autogen, elixir-format, fuzzy msgid "Handover code" msgstr "Код передачі підтверджено." -#: lib/who_need_help_web/live/request_live/show.ex:1152 +#: lib/who_need_help_web/live/request_live/show.ex:1153 #, elixir-autogen, elixir-format msgid "Help completed and verified by both participants." msgstr "" @@ -4335,17 +4313,17 @@ msgstr "" msgid "Help is now in progress." msgstr "Допомога виконується." -#: lib/who_need_help_web/live/request_live/show.ex:1132 +#: lib/who_need_help_web/live/request_live/show.ex:1133 #, elixir-autogen, elixir-format msgid "Helper confirmed" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1075 +#: lib/who_need_help_web/live/request_live/show.ex:1076 #, elixir-autogen, elixir-format, fuzzy msgid "Helper:" msgstr "Помічник" -#: lib/who_need_help_web/live/request_live/new.ex:481 +#: lib/who_need_help_web/live/request_live/new.ex:483 #, elixir-autogen, elixir-format msgid "Helpers will see only the area or landmark written above. You can share a live location later after matching." msgstr "Помічники бачитимуть лише вказаний вище район або орієнтир. Після збігу можна окремо поділитися геопозицією." @@ -4375,12 +4353,12 @@ msgstr "" msgid "Location is unavailable in this browser." msgstr "Геопозиція недоступна в цьому браузері." -#: lib/who_need_help_web/live/request_live/new.ex:394 +#: lib/who_need_help_web/live/request_live/new.ex:395 #, elixir-autogen, elixir-format msgid "Location permission was denied." msgstr "Доступ до геопозиції відхилено." -#: lib/who_need_help_web/live/request_live/new.ex:521 +#: lib/who_need_help_web/live/request_live/new.ex:523 #, elixir-autogen, elixir-format msgid "Move the map area so it covers a useful public meeting place." msgstr "Перемістіть зону так, щоб вона охоплювала зручне публічне місце зустрічі." @@ -4390,7 +4368,7 @@ msgstr "Перемістіть зону так, щоб вона охоплюва msgid "New notice" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:479 +#: lib/who_need_help_web/live/request_live/new.ex:481 #, elixir-autogen, elixir-format msgid "No coordinates will be stored" msgstr "Координати не зберігатимуться" @@ -4400,7 +4378,7 @@ msgstr "Координати не зберігатимуться" msgid "No map coordinates will be stored." msgstr "Координати на карті не зберігатимуться." -#: lib/who_need_help_web/live/request_live/new.ex:450 +#: lib/who_need_help_web/live/request_live/new.ex:451 #, elixir-autogen, elixir-format msgid "No map location" msgstr "Не показувати місце на карті" @@ -4415,7 +4393,7 @@ msgstr "Не додано соціальних посилань." msgid "Only notices submitted while signed in appear here. Notices submitted without an account remain accessible through their private email link." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:451 +#: lib/who_need_help_web/live/request_live/new.ex:452 #, elixir-autogen, elixir-format msgid "Only the public area description" msgstr "Лише публічний опис району" @@ -4435,9 +4413,9 @@ msgstr "" msgid "Optional thanks" msgstr "Необов’язкове посилання для подяки" -#: lib/who_need_help_web/live/request_live/show.ex:1128 -#: lib/who_need_help_web/live/request_live/show.ex:1136 -#: lib/who_need_help_web/live/request_live/show.ex:1144 +#: lib/who_need_help_web/live/request_live/show.ex:1129 +#: lib/who_need_help_web/live/request_live/show.ex:1137 +#: lib/who_need_help_web/live/request_live/show.ex:1145 #, elixir-autogen, elixir-format, fuzzy msgid "Pending" msgstr "Надсилаємо..." @@ -4457,7 +4435,7 @@ msgstr "" msgid "Read" msgstr "Прочитайте" -#: lib/who_need_help_web/live/request_live/new.ex:423 +#: lib/who_need_help_web/live/request_live/new.ex:424 #, elixir-autogen, elixir-format msgid "Recommended for privacy" msgstr "Рекомендовано для приватності" @@ -4477,17 +4455,17 @@ msgstr "" msgid "Request expires" msgstr "Запит закінчується (UTC)" -#: lib/who_need_help_web/live/activity_live/show.ex:564 +#: lib/who_need_help_web/live/activity_live/show.ex:565 #, elixir-autogen, elixir-format, fuzzy msgid "Request to join again" msgstr "Подати заявку на участь" -#: lib/who_need_help_web/live/request_live/new.ex:626 +#: lib/who_need_help_web/live/request_live/new.ex:628 #, elixir-autogen, elixir-format msgid "Request was not published" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1124 +#: lib/who_need_help_web/live/request_live/show.ex:1125 #, elixir-autogen, elixir-format, fuzzy msgid "Requester confirmed" msgstr "Заявку відновлено." @@ -4534,7 +4512,7 @@ msgstr "Початок" msgid "Status updates go to the email address of your signed-in account." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:463 +#: lib/who_need_help_web/live/request_live/new.ex:464 #, elixir-autogen, elixir-format msgid "The map is unavailable. You can use the manual coordinate fallback." msgstr "Карта недоступна. Можна використати резервне ручне введення координат." @@ -4549,7 +4527,7 @@ msgstr "" msgid "This activity is closed. The group chat remains available as read-only history." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:405 +#: lib/who_need_help_web/live/request_live/new.ex:406 #, elixir-autogen, elixir-format msgid "This description is visible to everyone. Do not enter a private address." msgstr "Цей опис бачать усі. Не вказуйте приватну адресу." @@ -4569,7 +4547,7 @@ msgstr "" msgid "This help request was cancelled. Chat history is read-only." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1158 +#: lib/who_need_help_web/live/request_live/show.ex:1159 #, elixir-autogen, elixir-format msgid "This match was cancelled. No further handover action is required." msgstr "" @@ -4579,7 +4557,7 @@ msgstr "" msgid "This person has not added a public bio yet." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:528 +#: lib/who_need_help_web/live/request_live/new.ex:530 #, elixir-autogen, elixir-format msgid "This point is public" msgstr "Цю точку видно всім" @@ -4614,7 +4592,7 @@ msgstr "" msgid "Tomorrow" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:529 +#: lib/who_need_help_web/live/request_live/new.ex:531 #, elixir-autogen, elixir-format msgid "Use a safe public meeting point instead of a private address." msgstr "Вкажіть безпечне публічне місце зустрічі замість приватної адреси." @@ -4624,7 +4602,7 @@ msgstr "Вкажіть безпечне публічне місце зустрі msgid "Use another email" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:496 +#: lib/who_need_help_web/live/request_live/new.ex:498 #, elixir-autogen, elixir-format, fuzzy msgid "Use my location" msgstr "Використати мою геопозицію" @@ -4639,7 +4617,7 @@ msgstr "" msgid "Use the newest confirmation link if it arrives." msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1280 +#: lib/who_need_help_web/live/request_live/show.ex:1281 #, elixir-autogen, elixir-format msgid "Verifying…" msgstr "" @@ -4662,7 +4640,7 @@ msgstr "" msgid "View my requests" msgstr "Нове звернення" -#: lib/who_need_help_web/live/request_live/new.ex:437 +#: lib/who_need_help_web/live/request_live/new.ex:438 #, elixir-autogen, elixir-format msgid "Visible before matching" msgstr "Видно до прийняття заявки" @@ -4677,27 +4655,27 @@ msgstr "" msgid "Voted" msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:410 +#: lib/who_need_help_web/live/request_live/new.ex:411 #, elixir-autogen, elixir-format msgid "What should people see?" msgstr "Що мають бачити інші?" -#: lib/who_need_help_web/live/request_live/new.ex:398 +#: lib/who_need_help_web/live/request_live/new.ex:399 #, elixir-autogen, elixir-format msgid "Where is help needed?" msgstr "Де потрібна допомога?" -#: lib/who_need_help_web/live/activity_live/show.ex:579 +#: lib/who_need_help_web/live/activity_live/show.ex:580 #, elixir-autogen, elixir-format msgid "You are no longer a participant and cannot access the group chat or exact meeting point. You can request to join again while registration is open." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:590 +#: lib/who_need_help_web/live/activity_live/show.ex:591 #, elixir-autogen, elixir-format msgid "You are not a participant. You can send a new request while registration is open." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:538 +#: lib/who_need_help_web/live/request_live/new.ex:540 #, elixir-autogen, elixir-format msgid "You can separately share live location with the matched person and stop sharing at any time." msgstr "Можна окремо поділитися геопозицією з підібраною людиною та зупинити передачу будь-коли." @@ -4707,22 +4685,22 @@ msgstr "Можна окремо поділитися геопозицією з msgid "You have not submitted any content-removal notices while signed in." msgstr "" -#: lib/who_need_help_web/live/activity_live/show.ex:577 +#: lib/who_need_help_web/live/activity_live/show.ex:578 #, elixir-autogen, elixir-format msgid "You left this activity" msgstr "" -#: lib/who_need_help_web/live/request_live/show.ex:1200 +#: lib/who_need_help_web/live/request_live/show.ex:1201 #, elixir-autogen, elixir-format msgid "Your completion confirmation is saved." msgstr "" -#: lib/who_need_help_web/live/request_live/new.ex:520 +#: lib/who_need_help_web/live/request_live/new.ex:522 #, elixir-autogen, elixir-format msgid "Your exact position is not shown" msgstr "Вашу точну позицію не показано" -#: lib/who_need_help_web/live/activity_live/show.ex:588 +#: lib/who_need_help_web/live/activity_live/show.ex:589 #, elixir-autogen, elixir-format, fuzzy msgid "Your join request was declined" msgstr "Ваші запити" @@ -4747,12 +4725,12 @@ msgstr "Помічники спільноти" msgid "Area selected. Drag the green pin or click the map to move it." msgstr "Область вибрано. Перетягніть зелений маркер або натисніть на карту, щоб перемістити її." -#: lib/who_need_help_web/live/request_live/new.ex:470 +#: lib/who_need_help_web/live/request_live/new.ex:472 #, elixir-autogen, elixir-format msgid "Click the map or drag the green pin to move the area" msgstr "Натисніть на карту або перетягніть зелений маркер, щоб перемістити область" -#: lib/who_need_help_web/live/request_live/new.ex:473 +#: lib/who_need_help_web/live/request_live/new.ex:475 #, elixir-autogen, elixir-format msgid "Click the map or drag the red pin to move the point" msgstr "Натисніть на карту або перетягніть червоний маркер, щоб перемістити точку" @@ -4771,3 +4749,117 @@ msgstr "Перетягніть, щоб перемістити точну точ #, elixir-autogen, elixir-format msgid "Exact point selected. Drag the red pin or click the map to move it." msgstr "Точну точку вибрано. Перетягніть червоний маркер або натисніть на карту, щоб перемістити її." + +#: lib/who_need_help_web/live/request_live/index.ex:371 +#, elixir-autogen, elixir-format +msgid "%{count} request in this map area" +msgid_plural "%{count} requests in this map area" +msgstr[0] "%{count} заявка в цій області карти" +msgstr[1] "%{count} заявки в цій області карти" +msgstr[2] "%{count} заявок у цій області карти" + +#: lib/who_need_help_web/live/request_live/index.ex:354 +#, elixir-autogen, elixir-format +msgid "Area or city" +msgstr "Район або місто" + +#: lib/who_need_help_web/live/request_live/index.ex:424 +#, elixir-autogen, elixir-format +msgid "Choose an area on the map" +msgstr "Виберіть область на карті" + +#: lib/who_need_help_web/live/request_live/index.ex:301 +#, elixir-autogen, elixir-format +msgid "Explore privacy-friendly areas and public exact meeting points chosen by requesters." +msgstr "Переглядайте приватні області та точні публічні місця зустрічі, вибрані авторами заявок." + +#: lib/who_need_help_web/live/request_live/index.ex:392 +#, elixir-autogen, elixir-format +msgid "List" +msgstr "Список" + +#: lib/who_need_help_web/live/request_live/index.ex:491 +#, elixir-autogen, elixir-format +msgid "Load more in this area" +msgstr "Завантажити ще в цій області" + +#: lib/who_need_help_web/live/request_live/index.ex:412 +#, elixir-autogen, elixir-format +msgid "Map" +msgstr "Карта" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:168 +#, elixir-autogen, elixir-format +msgid "Map preview" +msgstr "Попередній перегляд карти" + +#: lib/who_need_help_web/live/request_live/index.ex:436 +#, elixir-autogen, elixir-format +msgid "Move or zoom the map to search somewhere else." +msgstr "Перемістіть або масштабуйте карту, щоб шукати в іншому місці." + +#: lib/who_need_help_web/live/request_live/index.ex:379 +#, elixir-autogen, elixir-format +msgid "Move the map, then search the newly visible area." +msgstr "Перемістіть карту, а потім виконайте пошук у новій видимій області." + +#: lib/who_need_help_web/live/request_live/index.ex:434 +#, elixir-autogen, elixir-format +msgid "No open requests in this area" +msgstr "У цій області немає відкритих заявок" + +#: lib/who_need_help_web/live/request_live/index.ex:426 +#, elixir-autogen, elixir-format +msgid "Only requests from the selected map area will be loaded." +msgstr "Буде завантажено лише заявки з вибраної області карти." + +#: lib/who_need_help_web/live/request_live/index.ex:518 +#, elixir-autogen, elixir-format +msgid "Open request" +msgstr "Відкрити заявку" + +#: lib/who_need_help_web/live/request_live/index.ex:355 +#, elixir-autogen, elixir-format +msgid "Optional text search" +msgstr "Необов’язковий текстовий пошук" + +#: lib/who_need_help_web/live/request_live/index.ex:497 +#, elixir-autogen, elixir-format +msgid "Requests without map coordinates appear only when their public area description matches the text search." +msgstr "Заявки без координат на карті з’являються лише тоді, коли опис публічної області збігається з текстовим пошуком." + +#: lib/who_need_help_web/live/request_live/index.ex:383 +#, elixir-autogen, elixir-format +msgid "Results layout" +msgstr "Розташування результатів" + +#: lib/who_need_help_web/live/request_live/index.ex:529 +#, elixir-autogen, elixir-format +msgid "Search this area" +msgstr "Шукати в цій області" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:164 +#, elixir-autogen, elixir-format +msgid "Static preview" +msgstr "Статичний перегляд" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:150 +#, elixir-autogen, elixir-format +msgid "The interactive demo could not start in this browser. You can retry or use the example steps beside it." +msgstr "Інтерактивна карта не запустилася в цьому браузері. Спробуйте ще раз або скористайтеся прикладами поруч." + +#: lib/who_need_help_web/live/request_live/index.ex:402 +#, elixir-autogen, elixir-format +msgid "Together" +msgstr "Разом" + +#: lib/who_need_help_web/controllers/page_html/home.html.heex:154 +#: lib/who_need_help_web/live/activity_live/index.ex:286 +#: lib/who_need_help_web/live/activity_live/show.ex:542 +#: lib/who_need_help_web/live/request_live/index.ex:517 +#: lib/who_need_help_web/live/request_live/new.ex:394 +#: lib/who_need_help_web/live/request_live/new.ex:466 +#: lib/who_need_help_web/live/request_live/show.ex:1048 +#, elixir-autogen, elixir-format +msgid "Try map again" +msgstr "Спробувати карту знову" diff --git a/scripts/android-browser-staging-e2e.sh b/scripts/android-browser-staging-e2e.sh index ee24a34..471d37a 100755 --- a/scripts/android-browser-staging-e2e.sh +++ b/scripts/android-browser-staging-e2e.sh @@ -477,7 +477,7 @@ cleanup() { fi docker rm -f "$container" >/dev/null 2>&1 || true - docker volume rm -f "$avd_volume" >/dev/null 2>&1 || true + docker volume rm "$avd_volume" >/dev/null 2>&1 || true if [[ -n "$remote_target" ]]; then ssh "$remote_host" bash -s -- \ "$remote_root" "$remote_output_dir" "$remote_tools_image" \ diff --git a/scripts/android-instrumentation-test.sh b/scripts/android-instrumentation-test.sh index 3b93546..ce50901 100755 --- a/scripts/android-instrumentation-test.sh +++ b/scripts/android-instrumentation-test.sh @@ -90,6 +90,7 @@ mkdir -p "$output" cleanup() { status=$? + trap - EXIT HUP INT TERM if [ -n "$geo_pid" ]; then kill "$geo_pid" >/dev/null 2>&1 || true @@ -115,7 +116,7 @@ cleanup() { fi docker rm -f "$container" >/dev/null 2>&1 || true - docker volume rm -f "$avd_volume" >/dev/null 2>&1 || true + docker volume rm "$avd_volume" >/dev/null 2>&1 || true docker image rm "$image" >/dev/null 2>&1 || true exit "$status" } diff --git a/scripts/android-staging-smoke.sh b/scripts/android-staging-smoke.sh index bcdc0cb..7a09bd2 100755 --- a/scripts/android-staging-smoke.sh +++ b/scripts/android-staging-smoke.sh @@ -78,7 +78,7 @@ cleanup() { fi docker rm -f "$container" >/dev/null 2>&1 || true - docker volume rm -f "$avd_volume" >/dev/null 2>&1 || true + docker volume rm "$avd_volume" >/dev/null 2>&1 || true docker image rm "$image" >/dev/null 2>&1 || true { diff --git a/scripts/e2e-run.sh b/scripts/e2e-run.sh index 572dde8..64724e8 100755 --- a/scripts/e2e-run.sh +++ b/scripts/e2e-run.sh @@ -23,12 +23,13 @@ mkdir -p "$output_dir" export TRAEFIK_PROJECT_CONSTRAINT="$project" export TRAEFIK_APP_NAME="who-need-help-e2e-$run_id" export TRAEFIK_DOCKER_NETWORK="${project}_ingress" -# Compose interpolates required base-image variables before applying the E2E -# override. Keep those names local to the isolated runner; the application -# services themselves are still replaced with `who-need-help:e2e` below. -export APP_IMAGE="who-need-help:e2e" -export SOCKET_PROXY_IMAGE="who-need-help:socket-proxy-e2e" -export POSTGIS_IMAGE="who-need-help:postgis-e2e" +# Each run owns its image tags. The cleanup trap removes only these exact tags +# after their project containers are gone, so parallel or interrupted runs do +# not accumulate shared test tags. +export APP_IMAGE="who-need-help:e2e-$run_id" +export SOCKET_PROXY_IMAGE="who-need-help:socket-proxy-e2e-$run_id" +export POSTGIS_IMAGE="who-need-help:postgis-e2e-$run_id" +export E2E_TEST_IMAGE="who-need-help-e2e-tests:$run_id" export E2E_OUTPUT_DIR="$output_dir" export E2E_UID E2E_UID=$(id -u) @@ -38,7 +39,7 @@ export CODEX_SESSION_ID="${CODEX_SESSION_ID:-${CODEX_THREAD_ID:-local-e2e}}" # Keep raster-map traffic inside the isolated application network. MapLibre # performs tile fetches from a worker, so browser-context request interception # is not a reliable network boundary for these requests. -export MAP_TILE_URL="https://proxy/__e2e__/map-tile.png?z={z}&x={x}&y={y}" +export MAP_TILE_URL="/__e2e__/map-tile.png?z={z}&x={x}&y={y}" compose() { docker compose \ @@ -49,8 +50,36 @@ compose() { "$@" } +image_tag_is_referenced() { + expected_image=$1 + + for container_id in $(docker ps -aq --filter "ancestor=$expected_image"); do + observed_image=$(docker inspect --format '{{.Config.Image}}' "$container_id") + if [ "$observed_image" = "$expected_image" ]; then + return 0 + fi + done + + return 1 +} + +remove_run_image() { + image=$1 + + if docker image inspect "$image" >/dev/null 2>&1; then + if image_tag_is_referenced "$image"; then + echo "Refusing to remove referenced E2E image: $image" >&2 + cleanup_status=1 + else + docker image rm "$image" >/dev/null || cleanup_status=$? + fi + fi +} + cleanup() { status=$? + cleanup_status=0 + trap - EXIT HUP INT TERM if [ "$status" -ne 0 ]; then compose ps --all >"$output_dir/compose-ps.txt" 2>&1 || true @@ -61,7 +90,35 @@ cleanup() { echo "Keeping isolated E2E project $project for inspection." echo "Artifacts: $output_dir" else - compose down --volumes --remove-orphans >/dev/null + compose down --remove-orphans >/dev/null 2>&1 || cleanup_status=$? + + postgres_volume="${project}_postgres_data" + + if docker volume inspect "$postgres_volume" >/dev/null 2>&1; then + observed_project=$(docker volume inspect --format \ + '{{index .Labels "com.docker.compose.project"}}' "$postgres_volume") + observed_volume=$(docker volume inspect --format \ + '{{index .Labels "com.docker.compose.volume"}}' "$postgres_volume") + remaining_refs=$(docker ps -aq --filter "volume=$postgres_volume") + + if [ "$observed_project" != "$project" ] || \ + [ "$observed_volume" != "postgres_data" ] || \ + [ -n "$remaining_refs" ]; then + echo "Refusing to remove unexpected or referenced E2E volume: $postgres_volume" >&2 + cleanup_status=1 + else + docker volume rm "$postgres_volume" >/dev/null || cleanup_status=$? + fi + fi + + remove_run_image "$E2E_TEST_IMAGE" + remove_run_image "$APP_IMAGE" + remove_run_image "$POSTGIS_IMAGE" + remove_run_image "$SOCKET_PROXY_IMAGE" + fi + + if [ "$status" -eq 0 ] && [ "$cleanup_status" -ne 0 ]; then + status=$cleanup_status fi exit "$status" diff --git a/scripts/e2e-stop.sh b/scripts/e2e-stop.sh index 5003ffe..b1d7e54 100755 --- a/scripts/e2e-stop.sh +++ b/scripts/e2e-stop.sh @@ -17,13 +17,15 @@ case "$project" in esac ROOT=$(CDPATH='' cd -- "$(dirname -- "$0")/.." && pwd) +run_id=${project#who_need_help_e2e_} # Compose still resolves required interpolation values for `down`. These values -# mirror the isolated runner and do not select containers; the project label -# passed above is the scope used by Compose for removal. -export APP_IMAGE="who-need-help:e2e" -export SOCKET_PROXY_IMAGE="who-need-help:socket-proxy-e2e" -export POSTGIS_IMAGE="who-need-help:postgis-e2e" +# mirror the exact per-run tags. The project label passed above remains the +# Compose resource scope. +export APP_IMAGE="who-need-help:e2e-$run_id" +export SOCKET_PROXY_IMAGE="who-need-help:socket-proxy-e2e-$run_id" +export POSTGIS_IMAGE="who-need-help:postgis-e2e-$run_id" +export E2E_TEST_IMAGE="who-need-help-e2e-tests:$run_id" export E2E_OUTPUT_DIR="$ROOT/output/e2e/stop-placeholder" export E2E_UID E2E_UID=$(id -u) @@ -32,11 +34,51 @@ E2E_GID=$(id -g) export TRAEFIK_PROJECT_CONSTRAINT="$project" export TRAEFIK_APP_NAME="$project" export TRAEFIK_DOCKER_NETWORK="${project}_ingress" -export MAP_TILE_URL="https://proxy/__e2e__/map-tile.png?z={z}&x={x}&y={y}" +export MAP_TILE_URL="/__e2e__/map-tile.png?z={z}&x={x}&y={y}" docker compose \ --project-name "$project" \ --env-file "$ROOT/.env.e2e" \ --file "$ROOT/compose.yaml" \ --file "$ROOT/compose.e2e.yaml" \ - down --volumes --remove-orphans + down --remove-orphans + +postgres_volume="${project}_postgres_data" + +if docker volume inspect "$postgres_volume" >/dev/null 2>&1; then + observed_project=$(docker volume inspect --format \ + '{{index .Labels "com.docker.compose.project"}}' "$postgres_volume") + observed_volume=$(docker volume inspect --format \ + '{{index .Labels "com.docker.compose.volume"}}' "$postgres_volume") + remaining_refs=$(docker ps -aq --filter "volume=$postgres_volume") + + if [ "$observed_project" != "$project" ] || \ + [ "$observed_volume" != "postgres_data" ] || \ + [ -n "$remaining_refs" ]; then + echo "Refusing to remove unexpected or referenced E2E volume: $postgres_volume" >&2 + exit 1 + fi + + docker volume rm "$postgres_volume" +fi + +for image in "$E2E_TEST_IMAGE" "$APP_IMAGE" "$POSTGIS_IMAGE" "$SOCKET_PROXY_IMAGE"; do + if docker image inspect "$image" >/dev/null 2>&1; then + referenced=false + + for container_id in $(docker ps -aq --filter "ancestor=$image"); do + observed_image=$(docker inspect --format '{{.Config.Image}}' "$container_id") + if [ "$observed_image" = "$image" ]; then + referenced=true + break + fi + done + + if [ "$referenced" = true ]; then + echo "Refusing to remove referenced E2E image: $image" >&2 + exit 1 + fi + + docker image rm "$image" + fi +done diff --git a/scripts/ensure-local-e2e-env.sh b/scripts/ensure-local-e2e-env.sh index 5865f8e..d127dfc 100755 --- a/scripts/ensure-local-e2e-env.sh +++ b/scripts/ensure-local-e2e-env.sh @@ -24,6 +24,13 @@ if [ -f "$target" ]; then updated=true fi + if grep -Eq '^MAP_TILE_URL=https?://proxy/__e2e__/map-tile\.png' "$target"; then + sed -i \ + 's|^MAP_TILE_URL=https\?://proxy/__e2e__/map-tile\.png|MAP_TILE_URL=/__e2e__/map-tile.png|' \ + "$target" + updated=true + fi + chmod 600 "$target" if [ "$updated" = true ]; then @@ -59,7 +66,7 @@ TRAEFIK_ROUTER_RULE='PathPrefix(\`/\`)' PHX_HOST=proxy PHX_SCHEME=https PHX_URL_PORT=443 -MAP_TILE_URL=https://proxy/__e2e__/map-tile.png?z={z}&x={x}&y={y} +MAP_TILE_URL=/__e2e__/map-tile.png?z={z}&x={x}&y={y} POSTGRES_DB=who_need_help_e2e POSTGRES_USER=postgres POSTGRES_PASSWORD=$postgres_password diff --git a/scripts/load-stack-stop.sh b/scripts/load-stack-stop.sh index 1860b93..111670b 100755 --- a/scripts/load-stack-stop.sh +++ b/scripts/load-stack-stop.sh @@ -27,6 +27,29 @@ docker compose \ -p "$LOAD_PROJECT" \ -f compose.yaml \ -f compose.load.yaml \ - stop + down --remove-orphans -echo "Stopped the isolated load-profile containers; its database volume remains." +# Optional observability and backup overlays create additional networks which +# are not present in the base load Compose file. Remove only unattached +# networks carrying this exact isolated project label. +for network_id in $(docker network ls -q \ + --filter "label=com.docker.compose.project=$LOAD_PROJECT"); do + observed_project=$(docker network inspect --format \ + '{{index .Labels "com.docker.compose.project"}}' "$network_id") + endpoints=$(docker network inspect --format '{{len .Containers}}' "$network_id") + + if [ "$observed_project" != "$LOAD_PROJECT" ] || [ "$endpoints" != 0 ]; then + echo "Refusing unexpected or connected load-profile network: $network_id" >&2 + exit 1 + fi + + docker network rm "$network_id" >/dev/null +done + +if image_id=$(docker image inspect --format '{{.Id}}' who-need-help:load-tools 2>/dev/null); then + if [ -z "$(docker ps -aq --filter "ancestor=$image_id")" ]; then + docker image rm who-need-help:load-tools >/dev/null + fi +fi + +echo "Removed the isolated load-profile containers and networks; its named volumes remain." diff --git a/scripts/load-stack-up.sh b/scripts/load-stack-up.sh index c9f6072..f7af926 100755 --- a/scripts/load-stack-up.sh +++ b/scripts/load-stack-up.sh @@ -34,14 +34,60 @@ case "$LOAD_WEB_REPLICAS:$LOAD_WORKER_REPLICAS" in esac cd "$ROOT" +compose() { + docker compose \ + --env-file "$ENV_FILE" \ + -p "$LOAD_PROJECT" \ + -f compose.yaml \ + -f compose.load.yaml \ + "$@" +} + +cleanup_failed_start() { + status=$? + trap - EXIT HUP INT TERM + + if [ "$status" -ne 0 ]; then + # A cancelled Docker API request can finish creating a network just after + # the first `compose down`. Repeat the exact project-scoped teardown until + # the project has no containers or networks, or the bounded retry expires. + attempt=0 + while [ "$attempt" -lt 5 ]; do + compose down --remove-orphans >/dev/null 2>&1 || true + remaining_containers=$(docker ps -aq \ + --filter "label=com.docker.compose.project=$LOAD_PROJECT") + remaining_networks=$(docker network ls -q \ + --filter "label=com.docker.compose.project=$LOAD_PROJECT") + + if [ -z "$remaining_containers" ] && [ -z "$remaining_networks" ]; then + break + fi + + attempt=$((attempt + 1)) + sleep 1 + done + + if image_id=$(docker image inspect --format '{{.Id}}' who-need-help:load-tools 2>/dev/null); then + if [ -z "$(docker ps -aq --filter "ancestor=$image_id")" ]; then + docker image rm who-need-help:load-tools >/dev/null 2>&1 || true + fi + fi + + if [ -n "$(docker ps -aq --filter "label=com.docker.compose.project=$LOAD_PROJECT")" ] || \ + [ -n "$(docker network ls -q --filter "label=com.docker.compose.project=$LOAD_PROJECT")" ]; then + echo "Load-profile startup cleanup left project resources behind." >&2 + status=1 + fi + fi + + exit "$status" +} + +trap cleanup_failed_start EXIT HUP INT TERM + docker build --target load_tools --tag who-need-help:load-tools . -docker compose \ - --env-file "$ENV_FILE" \ - -p "$LOAD_PROJECT" \ - -f compose.yaml \ - -f compose.load.yaml \ - up -d --build --wait \ +compose up -d --build --wait \ --scale "web=$LOAD_WEB_REPLICAS" \ --scale "worker=$LOAD_WORKER_REPLICAS" @@ -65,3 +111,5 @@ curl --fail --silent --show-error \ "http://localhost:$HTTP_PORT/healthz/ready" printf '\nLoad profile is ready with %s web and %s worker replicas.\n' \ "$LOAD_WEB_REPLICAS" "$LOAD_WORKER_REPLICAS" + +trap - EXIT HUP INT TERM diff --git a/scripts/quality.sh b/scripts/quality.sh index d472aff..1105ec7 100755 --- a/scripts/quality.sh +++ b/scripts/quality.sh @@ -41,6 +41,7 @@ export QUALITY_POSTGIS_IMAGE compose="docker compose -p $project -f $ROOT/compose.quality.yaml" cleanup() { + trap - EXIT HUP INT TERM $compose down --volumes --remove-orphans >/dev/null 2>&1 || true docker rm --force "$socket_proxy_container" >/dev/null 2>&1 || true docker image rm "$quality_image" "$assets_image" "$e2e_image" "$release_image" \ diff --git a/scripts/test.sh b/scripts/test.sh index 91c4096..d34f987 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -22,15 +22,59 @@ fi : "${POSTGRES_USER:?Set POSTGRES_USER in .env}" : "${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD in .env}" -docker compose -p who_need_help up -d --wait db -docker build --target test --tag who-need-help:test . +run_id="$(date -u +%Y%m%d%H%M%S)-$$" +image="who-need-help:test-$run_id" +container="who-need-help-test-$run_id" -exec docker run --rm \ +image_tag_is_referenced() { + expected_image=$1 + + for container_id in $(docker ps -aq --filter "ancestor=$expected_image"); do + observed_image=$(docker inspect --format '{{.Config.Image}}' "$container_id") + if [ "$observed_image" = "$expected_image" ]; then + return 0 + fi + done + + return 1 +} + +cleanup() { + status=$? + cleanup_status=0 + trap - EXIT HUP INT TERM + + if docker inspect "$container" >/dev/null 2>&1; then + docker rm -f "$container" >/dev/null 2>&1 || cleanup_status=$? + fi + + if docker image inspect "$image" >/dev/null 2>&1; then + if image_tag_is_referenced "$image"; then + echo "Refusing to remove referenced test image: $image" >&2 + cleanup_status=1 + else + docker image rm "$image" >/dev/null || cleanup_status=$? + fi + fi + + if [ "$status" -eq 0 ] && [ "$cleanup_status" -ne 0 ]; then + status=$cleanup_status + fi + + exit "$status" +} +trap cleanup EXIT HUP INT TERM + +docker compose -p who_need_help up -d --wait db +docker build --target test --tag "$image" . + +docker run --rm \ + --name "$container" \ --network who_need_help_internal \ --env MIX_ENV=test \ --env DB_HOST=db \ --env "DB_USER=$POSTGRES_USER" \ --env "DB_PASSWORD=$POSTGRES_PASSWORD" \ --env TEST_POOL_SIZE="${TEST_POOL_SIZE:-10}" \ - who-need-help:test \ + "$image" \ mix test diff --git a/test/who_need_help_web/controllers/page_controller_test.exs b/test/who_need_help_web/controllers/page_controller_test.exs index 80193d5..20d34b8 100644 --- a/test/who_need_help_web/controllers/page_controller_test.exs +++ b/test/who_need_help_web/controllers/page_controller_test.exs @@ -54,6 +54,20 @@ defmodule WhoNeedHelpWeb.PageControllerTest do ) ) == 1 + assert Enum.count( + LazyHTML.query( + document, + "#home-demo-map[data-map-retry-label='Try map again']" + ) + ) == 1 + + assert Enum.count( + LazyHTML.query( + document, + "[data-map-status-badge][data-interactive-label='Interactive demo'][data-static-label='Static preview'][aria-live='polite']" + ) + ) == 1 + assert Enum.count( LazyHTML.query(document, "head link[rel='apple-touch-icon'][sizes='180x180']") ) == 1