Fix Android notification registration lifecycle

This commit is contained in:
SimpleTest 2026-08-25 15:27:21 +03:00
parent e5351c000b
commit f15f5578e0
13 changed files with 606 additions and 323 deletions

View File

@ -350,6 +350,29 @@ public final class AndroidClientInstrumentedTest {
}
}
@Test
public void test03aNativePushStateRestoresRegisteredDevice() {
PushTokenStore.clearRegistration(context);
PushTokenStore.setRequested(context, true);
PushTokenStore.markRegistered(context, "fixture-device-id");
try (ActivityScenario<MainActivity> scenario = launch("/push-state")) {
onWebView()
.withElement(findElement(Locator.ID, "push-state"))
.perform(webClick());
onWebView()
.withElement(findElement(Locator.ID, "marker"))
.check(
webMatches(
getText(),
containsString("push-state:true:fixture-device-id")
)
);
} finally {
PushTokenStore.clearRegistration(context);
}
}
@Test
public void test03bSameOriginDeepLinkUpdatesRunningActivity() {
ActivityScenario<MainActivity> scenario =

View File

@ -264,6 +264,10 @@ final class FixtureHttpServer implements Closeable {
+ "document.getElementById('marker').textContent='tracking-cancelled'});"
+ "window.addEventListener('wnh:native-tracking-error',()=>{"
+ "document.getElementById('marker').textContent='tracking-error'});"
+ "window.addEventListener('wnh:native-push-state',(event)=>{"
+ "document.getElementById('marker').textContent='push-state:'"
+ "+event.detail.requested+':'"
+ "+event.detail.server_device_id});"
+ "</script>"
+ "<button id=\"location\" onclick=\"navigator.geolocation.getCurrentPosition("
+ "()=>{document.getElementById('marker').textContent='location-granted';"
@ -278,6 +282,9 @@ final class FixtureHttpServer implements Closeable {
+ "assignment_id:'00000000-0000-4000-8000-000000000001',"
+ "csrf_token:'fixture-csrf'}))\">"
+ "Start live tracking</button>"
+ "<button id=\"push-state\" onclick=\"window.WhoNeedHelpAndroid.postMessage("
+ "JSON.stringify({action:'push_token_request'}))\">"
+ "Read push state</button>"
+ "</body></html>";
}

View File

@ -603,6 +603,7 @@ public final class MainActivity extends ComponentActivity {
} else if ("disable_push".equals(action)) {
disablePush();
} else if ("push_token_request".equals(action)) {
dispatchNativePushState();
dispatchPendingPushToken();
} else if ("google_sign_in".equals(action)) {
startNativeGoogleSignIn(
@ -719,6 +720,27 @@ public final class MainActivity extends ComponentActivity {
}
}
private void dispatchNativePushState() {
if (webView == null) {
return;
}
try {
JSONObject detail = new JSONObject()
.put("configured", BuildConfig.FIREBASE_CONFIGURED)
.put("requested", PushTokenStore.requested(this))
.put("server_device_id", PushTokenStore.serverDeviceId(this));
webView.evaluateJavascript(
"window.dispatchEvent(new CustomEvent('wnh:native-push-state',{detail:"
+ detail
+ "}))",
null
);
} catch (JSONException exception) {
dispatchNativePushError("state_unavailable");
}
}
private void dispatchNativePushError(String reason) {
if (webView == null) {
return;

View File

@ -45,7 +45,6 @@ final class PushTokenStore {
.edit()
.putString(TOKEN, value)
.putBoolean(DIRTY, true)
.remove(SERVER_DEVICE_ID)
.apply();
}

View File

@ -12,6 +12,7 @@ import {
shouldApplyInitialViewport,
viewportMatchesBounds
} from "./map_viewport_sync.mjs"
import {resolveNativePushState} from "./native_push_state.mjs"
const trackingMinTimeMs = 5000
@ -1350,6 +1351,15 @@ export const Hooks = {
this.buttonEnabled = null
this.message = key => this.el.dataset[key] || ""
this.applyNativePresentation = () => {
if (!this.native || !this.buttonLabel) return
this.buttonLabel.dataset.enableLabel = this.buttonLabel.dataset.nativeEnableLabel
this.buttonLabel.dataset.enabledLabel = this.buttonLabel.dataset.nativeEnabledLabel
}
this.applyNativePresentation()
if (this.native && this.button) this.button.disabled = false
this.setStatus = message => {
@ -1419,6 +1429,19 @@ export const Hooks = {
window.WhoNeedHelpAndroid.postMessage(JSON.stringify(payload))
}
this.activeServerDeviceIds = () =>
[...this.el.querySelectorAll("[data-disable-device]")]
.map(element => element.dataset.disableDevice)
.filter(Boolean)
this.clearStaleNativeRegistration = () => {
window.localStorage.removeItem("wnh.push.server-device-id")
this.postNative({action: "disable_push"})
this.setButtonState(false)
this.setStatus(this.message("statusAndroidPrompt"))
if (this.button) this.button.disabled = false
}
this.registerDevice = async payload => {
const csrfToken = document.querySelector("meta[name='csrf-token']")?.content || ""
const response = await window.fetch("/mobile/push-devices", {
@ -1447,6 +1470,18 @@ export const Hooks = {
const detail = event.detail || {}
if (!detail.token || !detail.installation_id) return
const state = resolveNativePushState({
configured: true,
requested: true,
serverDeviceId: detail.server_device_id,
activeDeviceIds: this.activeServerDeviceIds()
})
if (state.stale) {
this.clearStaleNativeRegistration()
return
}
try {
await this.registerDevice({
platform: "android",
@ -1480,6 +1515,40 @@ export const Hooks = {
if (this.button) this.button.disabled = false
}
this.nativeState = event => {
const detail = event.detail || {}
const state = resolveNativePushState({
configured: detail.configured,
requested: detail.requested,
serverDeviceId: detail.server_device_id,
activeDeviceIds: this.activeServerDeviceIds()
})
if (!state.configured) {
this.setButtonState(false)
this.setStatus(this.message("statusAndroidUnavailable"))
if (this.button) this.button.disabled = true
return
}
if (state.stale) {
this.clearStaleNativeRegistration()
return
}
if (state.registered) {
window.localStorage.setItem("wnh.push.server-device-id", state.serverDeviceId)
this.setButtonState(true)
this.setStatus(this.message("statusAndroidEnabled"))
} else {
window.localStorage.removeItem("wnh.push.server-device-id")
this.setButtonState(false)
this.setStatus(this.message("statusAndroidPrompt"))
}
if (this.button) this.button.disabled = false
}
this.disableCurrentDevice = async event => {
const button = event.target.closest("[data-disable-device]")
if (!button) return
@ -1559,12 +1628,7 @@ export const Hooks = {
this.activeServerDevice = () => {
const deviceId = window.localStorage.getItem("wnh.push.server-device-id")
return Boolean(
deviceId &&
[...this.el.querySelectorAll("[data-disable-device]")]
.some(element => element.dataset.disableDevice === deviceId)
)
return Boolean(deviceId && this.activeServerDeviceIds().includes(deviceId))
}
this.restoreNativeState = () => {
@ -1615,6 +1679,7 @@ export const Hooks = {
window.addEventListener("wnh:native-push-token", this.nativeToken)
window.addEventListener("wnh:native-push-error", this.nativeError)
window.addEventListener("wnh:native-push-state", this.nativeState)
this.el.addEventListener("click", this.disableCurrentDevice)
this.button?.addEventListener("click", this.enable)
if (this.native) {
@ -1636,6 +1701,8 @@ export const Hooks = {
this.buttonLabel = this.el.querySelector("[data-enable-push-label]")
this.status = this.el.querySelector("[data-push-status]")
this.applyNativePresentation()
if (this.native && this.button) this.button.disabled = false
this.button?.removeEventListener("click", this.enable)
@ -1654,6 +1721,7 @@ export const Hooks = {
destroyed() {
window.removeEventListener("wnh:native-push-token", this.nativeToken)
window.removeEventListener("wnh:native-push-error", this.nativeError)
window.removeEventListener("wnh:native-push-state", this.nativeState)
this.el.removeEventListener("click", this.disableCurrentDevice)
this.button?.removeEventListener("click", this.enable)
}

View File

@ -0,0 +1,20 @@
const normalizedDeviceId = value => String(value || "").trim()
export const resolveNativePushState = ({
configured,
requested,
serverDeviceId,
activeDeviceIds = []
}) => {
const deviceId = normalizedDeviceId(serverDeviceId)
const activeIds = new Set([...activeDeviceIds].map(normalizedDeviceId).filter(Boolean))
const belongsToCurrentAccount = deviceId !== "" && activeIds.has(deviceId)
return {
configured: configured === true,
registered: configured === true && requested === true && belongsToCurrentAccount,
stale: configured === true && requested === true && deviceId !== "" &&
!belongsToCurrentAccount,
serverDeviceId: deviceId
}
}

View File

@ -0,0 +1,72 @@
import assert from "node:assert/strict"
import test from "node:test"
import {resolveNativePushState} from "./native_push_state.mjs"
test("a configured registration is active only for the current account", () => {
assert.deepEqual(
resolveNativePushState({
configured: true,
requested: true,
serverDeviceId: "device-current",
activeDeviceIds: ["device-current", "device-other"]
}),
{
configured: true,
registered: true,
stale: false,
serverDeviceId: "device-current"
}
)
})
test("a device registered to another account is stale", () => {
assert.deepEqual(
resolveNativePushState({
configured: true,
requested: true,
serverDeviceId: "device-previous-account",
activeDeviceIds: ["device-current-account"]
}),
{
configured: true,
registered: false,
stale: true,
serverDeviceId: "device-previous-account"
}
)
})
test("a requested token without a server device remains eligible for registration", () => {
assert.deepEqual(
resolveNativePushState({
configured: true,
requested: true,
serverDeviceId: "",
activeDeviceIds: []
}),
{
configured: true,
registered: false,
stale: false,
serverDeviceId: ""
}
)
})
test("an unconfigured Android client is neither registered nor stale", () => {
assert.deepEqual(
resolveNativePushState({
configured: false,
requested: true,
serverDeviceId: "device-current",
activeDeviceIds: ["device-current"]
}),
{
configured: false,
registered: false,
stale: false,
serverDeviceId: "device-current"
}
)
})

View File

@ -342,6 +342,11 @@ defmodule WhoNeedHelpWeb.NotificationLive do
data-status-android-waiting={
gettext("Waiting for Android notification permission and token…")
}
data-status-android-prompt={
gettext(
"Android will request notification permission and securely register this device."
)
}
data-status-browser-unavailable={
gettext("Push notifications are unavailable in this browser.")
}
@ -374,6 +379,8 @@ defmodule WhoNeedHelpWeb.NotificationLive do
data-enable-push-label
data-enable-label={gettext("Enable push on this device")}
data-enabled-label={gettext("Push enabled on this device")}
data-native-enable-label={gettext("Enable Android notifications")}
data-native-enabled-label={gettext("Android notifications enabled")}
>
{gettext("Enable push on this device")}
</span>

View File

@ -41,7 +41,7 @@ msgstr ""
#: lib/who_need_help_web/components/layouts.ex:235
#: lib/who_need_help_web/live/moderation_live.ex:494
#: lib/who_need_help_web/live/notification_live.ex:699
#: lib/who_need_help_web/live/notification_live.ex:706
#, elixir-autogen, elixir-format
msgid "Categories"
msgstr ""
@ -209,7 +209,7 @@ msgstr ""
#: lib/who_need_help_web/live/admin_user_live.ex:188
#: lib/who_need_help_web/live/admin_users_live.ex:125
#: lib/who_need_help_web/live/admin_users_live.ex:185
#: lib/who_need_help_web/live/notification_live.ex:512
#: lib/who_need_help_web/live/notification_live.ex:519
#, elixir-autogen, elixir-format
msgid "Active"
msgstr ""
@ -911,7 +911,7 @@ msgid "Join requests close"
msgstr ""
#: lib/who_need_help_web/live/activity_live/new.ex:486
#: lib/who_need_help_web/live/notification_live.ex:667
#: lib/who_need_help_web/live/notification_live.ex:674
#: lib/who_need_help_web/live/request_live/new.ex:668
#, elixir-autogen, elixir-format
msgid "Latitude"
@ -964,7 +964,7 @@ msgid "Logged out successfully."
msgstr ""
#: lib/who_need_help_web/live/activity_live/new.ex:500
#: lib/who_need_help_web/live/notification_live.ex:681
#: lib/who_need_help_web/live/notification_live.ex:688
#: lib/who_need_help_web/live/request_live/new.ex:682
#, elixir-autogen, elixir-format
msgid "Longitude"
@ -1144,7 +1144,7 @@ msgstr ""
msgid "Not for emergencies"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:729
#: lib/who_need_help_web/live/notification_live.ex:736
#: lib/who_need_help_web/live/request_live/index.ex:443
#: lib/who_need_help_web/live/request_live/index.ex:444
#: lib/who_need_help_web/live/request_live/index.ex:555
@ -1624,7 +1624,7 @@ msgstr ""
msgid "Save profile"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:731
#: lib/who_need_help_web/live/notification_live.ex:738
#: lib/who_need_help_web/live/request_live/index.ex:447
#: lib/who_need_help_web/live/request_live/index.ex:448
#: lib/who_need_help_web/live/request_live/index.ex:557
@ -1937,7 +1937,7 @@ msgstr ""
msgid "To see sent emails, visit"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:730
#: lib/who_need_help_web/live/notification_live.ex:737
#: lib/who_need_help_web/live/request_live/index.ex:445
#: lib/who_need_help_web/live/request_live/index.ex:446
#: lib/who_need_help_web/live/request_live/index.ex:556
@ -2009,7 +2009,7 @@ msgstr ""
msgid "Unique people"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:724
#: lib/who_need_help_web/live/notification_live.ex:731
#: lib/who_need_help_web/live/request_live/index.ex:552
#: lib/who_need_help_web/live/request_live/new.ex:447
#, elixir-autogen, elixir-format
@ -3925,7 +3925,7 @@ msgid "Date"
msgstr ""
#: lib/who_need_help_web/live/activity_live/new.ex:478
#: lib/who_need_help_web/live/notification_live.ex:664
#: lib/who_need_help_web/live/notification_live.ex:671
#: lib/who_need_help_web/live/request_live/new.ex:660
#, elixir-autogen, elixir-format
msgid "Enter coordinates manually"
@ -4013,14 +4013,14 @@ msgid "In 3 hours"
msgstr ""
#: lib/who_need_help_web/live/activity_live/new.ex:354
#: lib/who_need_help_web/live/notification_live.ex:582
#: lib/who_need_help_web/live/notification_live.ex:589
#: lib/who_need_help_web/live/request_live/new.ex:484
#, elixir-autogen, elixir-format
msgid "Location is unavailable in this browser."
msgstr ""
#: lib/who_need_help_web/live/activity_live/new.ex:356
#: lib/who_need_help_web/live/notification_live.ex:584
#: lib/who_need_help_web/live/notification_live.ex:591
#: lib/who_need_help_web/live/request_live/new.ex:486
#, elixir-autogen, elixir-format
msgid "Location permission was denied."
@ -4274,7 +4274,7 @@ msgid "Use another email"
msgstr ""
#: lib/who_need_help_web/live/activity_live/new.ex:435
#: lib/who_need_help_web/live/notification_live.ex:617
#: lib/who_need_help_web/live/notification_live.ex:624
#: lib/who_need_help_web/live/request_live/new.ex:595
#, elixir-autogen, elixir-format
msgid "Use my location"
@ -4519,8 +4519,8 @@ msgstr ""
#: lib/who_need_help_web/live/activity_live/new.ex:355
#: lib/who_need_help_web/live/activity_live/new.ex:414
#: lib/who_need_help_web/live/activity_live/show.ex:546
#: lib/who_need_help_web/live/notification_live.ex:583
#: lib/who_need_help_web/live/notification_live.ex:602
#: lib/who_need_help_web/live/notification_live.ex:590
#: lib/who_need_help_web/live/notification_live.ex:609
#: lib/who_need_help_web/live/request_live/index.ex:784
#: lib/who_need_help_web/live/request_live/new.ex:485
#: lib/who_need_help_web/live/request_live/new.ex:563
@ -4561,7 +4561,7 @@ msgid_plural "%{count} unread"
msgstr[0] ""
msgstr[1] ""
#: lib/who_need_help_web/live/notification_live.ex:456
#: lib/who_need_help_web/live/notification_live.ex:463
#, elixir-autogen, elixir-format
msgid "Acceptance, arrival, completion, and cancellation"
msgstr ""
@ -4571,22 +4571,22 @@ msgstr ""
msgid "Active or unresolved product state must be handled first."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:578
#: lib/who_need_help_web/live/notification_live.ex:585
#, elixir-autogen, elixir-format
msgid "Alert area selected."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:577
#: lib/who_need_help_web/live/notification_live.ex:584
#, elixir-autogen, elixir-format
msgid "Alert area selected. Drag the pin to move it."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:557
#: lib/who_need_help_web/live/notification_live.ex:564
#, elixir-autogen, elixir-format
msgid "Alert name"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:620
#: lib/who_need_help_web/live/notification_live.ex:627
#, elixir-autogen, elixir-format
msgid "Alert radius"
msgstr ""
@ -4597,7 +4597,7 @@ msgstr ""
msgid "Alert was not found."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:441
#: lib/who_need_help_web/live/notification_live.ex:448
#, elixir-autogen, elixir-format
msgid "Allow push notifications"
msgstr ""
@ -4607,17 +4607,17 @@ msgstr ""
msgid "Arrival saved. The requester has been notified."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:748
#: lib/who_need_help_web/live/notification_live.ex:755
#, elixir-autogen, elixir-format
msgid "Available days"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:781
#: lib/who_need_help_web/live/notification_live.ex:788
#, elixir-autogen, elixir-format
msgid "Available from (optional)"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:786
#: lib/who_need_help_web/live/notification_live.ex:793
#, elixir-autogen, elixir-format
msgid "Available until (optional)"
msgstr ""
@ -4638,18 +4638,18 @@ msgstr ""
msgid "Cancelling…"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:545
#: lib/who_need_help_web/live/notification_live.ex:552
#, elixir-autogen, elixir-format
msgid "Choose an area, categories, urgency, and the times when you are available."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:576
#: lib/who_need_help_web/live/notification_live.ex:657
#: lib/who_need_help_web/live/notification_live.ex:583
#: lib/who_need_help_web/live/notification_live.ex:664
#, elixir-autogen, elixir-format
msgid "Choose the private center of your alert area."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:607
#: lib/who_need_help_web/live/notification_live.ex:614
#, elixir-autogen, elixir-format
msgid "Click the map or drag the green pin to move your private alert area"
msgstr ""
@ -4675,32 +4675,32 @@ msgstr ""
msgid "Count"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:543
#: lib/who_need_help_web/live/notification_live.ex:550
#, elixir-autogen, elixir-format
msgid "Create a nearby alert"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:803
#: lib/who_need_help_web/live/notification_live.ex:810
#, elixir-autogen, elixir-format
msgid "Create nearby alert"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:532
#: lib/who_need_help_web/live/notification_live.ex:539
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:529
#: lib/who_need_help_web/live/notification_live.ex:536
#, elixir-autogen, elixir-format
msgid "Delete this nearby alert?"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:790
#: lib/who_need_help_web/live/notification_live.ex:797
#, elixir-autogen, elixir-format
msgid "Delivery channels"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:360
#: lib/who_need_help_web/live/notification_live.ex:365
#, elixir-autogen, elixir-format
msgid "Delivery channels and quiet hours"
msgstr ""
@ -4716,7 +4716,7 @@ msgstr ""
msgid "Dimension"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:414
#: lib/who_need_help_web/live/notification_live.ex:421
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
@ -4726,14 +4726,14 @@ msgstr ""
msgid "Download my data"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:579
#: lib/who_need_help_web/live/notification_live.ex:580
#: lib/who_need_help_web/live/notification_live.ex:586
#: lib/who_need_help_web/live/notification_live.ex:587
#, elixir-autogen, elixir-format
msgid "Drag to move the alert area"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:375
#: lib/who_need_help_web/live/notification_live.ex:378
#: lib/who_need_help_web/live/notification_live.ex:380
#: lib/who_need_help_web/live/notification_live.ex:385
#, elixir-autogen, elixir-format
msgid "Enable push on this device"
msgstr ""
@ -4743,12 +4743,12 @@ msgstr ""
msgid "Follow request updates and choose which nearby needs should reach this device."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:757
#: lib/who_need_help_web/live/notification_live.ex:764
#, elixir-autogen, elixir-format
msgid "Fri"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:469
#: lib/who_need_help_web/live/notification_live.ex:476
#: lib/who_need_help_web/live/product_analytics_live.ex:220
#, elixir-autogen, elixir-format
msgid "From"
@ -4800,7 +4800,7 @@ msgstr ""
msgid "Helper's live location"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:563
#: lib/who_need_help_web/live/notification_live.ex:570
#, elixir-autogen, elixir-format
msgid "Home area"
msgstr ""
@ -4821,7 +4821,7 @@ msgstr ""
msgid "Inbox"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:701
#: lib/who_need_help_web/live/notification_live.ex:708
#, elixir-autogen, elixir-format
msgid "Leave every category unchecked to receive all matching requests."
msgstr ""
@ -4862,7 +4862,7 @@ msgstr ""
msgid "Metric"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:753
#: lib/who_need_help_web/live/notification_live.ex:760
#, elixir-autogen, elixir-format
msgid "Mon"
msgstr ""
@ -4877,7 +4877,7 @@ msgstr ""
msgid "Nearby alert deleted."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:446
#: lib/who_need_help_web/live/notification_live.ex:453
#: lib/who_need_help_web/live/request_live/index.ex:508
#, elixir-autogen, elixir-format
msgid "Nearby requests"
@ -4888,7 +4888,7 @@ msgstr ""
msgid "New help request nearby"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:451
#: lib/who_need_help_web/live/notification_live.ex:458
#, elixir-autogen, elixir-format
msgid "New private messages"
msgstr ""
@ -4898,7 +4898,7 @@ msgstr ""
msgid "No active product workflow was found."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:487
#: lib/who_need_help_web/live/notification_live.ex:494
#, elixir-autogen, elixir-format
msgid "No nearby alerts configured yet."
msgstr ""
@ -4920,7 +4920,7 @@ msgstr ""
msgid "Notification preferences saved."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:362
#: lib/who_need_help_web/live/notification_live.ex:367
#, elixir-autogen, elixir-format
msgid "Notification text never contains chat messages or exact coordinates."
msgstr ""
@ -4944,17 +4944,17 @@ msgstr ""
msgid "Operations"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:646
#: lib/who_need_help_web/live/notification_live.ex:653
#, elixir-autogen, elixir-format
msgid "Other users never see this saved point."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:523
#: lib/who_need_help_web/live/notification_live.ex:530
#, elixir-autogen, elixir-format
msgid "Pause"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:512
#: lib/who_need_help_web/live/notification_live.ex:519
#, elixir-autogen, elixir-format
msgid "Paused"
msgstr ""
@ -4964,12 +4964,12 @@ msgstr ""
msgid "Plans changed"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:562
#: lib/who_need_help_web/live/notification_live.ex:569
#, elixir-autogen, elixir-format
msgid "Private area label"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:645
#: lib/who_need_help_web/live/notification_live.ex:652
#, elixir-autogen, elixir-format
msgid "Private matching center"
msgstr ""
@ -4985,17 +4985,17 @@ msgstr ""
msgid "Progress"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:503
#: lib/who_need_help_web/live/notification_live.ex:510
#, elixir-autogen, elixir-format
msgid "Push"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:376
#: lib/who_need_help_web/live/notification_live.ex:381
#, elixir-autogen, elixir-format
msgid "Push enabled on this device"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:798
#: lib/who_need_help_web/live/notification_live.ex:805
#, elixir-autogen, elixir-format
msgid "Push notification"
msgstr ""
@ -5035,7 +5035,7 @@ msgstr ""
msgid "Requester's live location"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:523
#: lib/who_need_help_web/live/notification_live.ex:530
#, elixir-autogen, elixir-format
msgid "Resume"
msgstr ""
@ -5045,12 +5045,12 @@ msgstr ""
msgid "Run deletion preflight"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:758
#: lib/who_need_help_web/live/notification_live.ex:765
#, elixir-autogen, elixir-format
msgid "Sat"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:472
#: lib/who_need_help_web/live/notification_live.ex:479
#, elixir-autogen, elixir-format
msgid "Save preferences"
msgstr ""
@ -5065,7 +5065,7 @@ msgstr ""
msgid "Stay available without refreshing"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:759
#: lib/who_need_help_web/live/notification_live.ex:766
#, elixir-autogen, elixir-format
msgid "Sun"
msgstr ""
@ -5075,7 +5075,7 @@ msgstr ""
msgid "The linked account no longer exists."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:600
#: lib/who_need_help_web/live/notification_live.ex:607
#, elixir-autogen, elixir-format
msgid "The map is unavailable. Enter coordinates manually."
msgstr ""
@ -5090,7 +5090,7 @@ msgstr ""
msgid "The request is not linked to an account."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:483
#: lib/who_need_help_web/live/notification_live.ex:490
#, elixir-autogen, elixir-format
msgid "The saved center is private and is used only to find matching requests."
msgstr ""
@ -5106,27 +5106,27 @@ msgstr ""
msgid "This is not an account-deletion case."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:756
#: lib/who_need_help_web/live/notification_live.ex:763
#, elixir-autogen, elixir-format
msgid "Thu"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:754
#: lib/who_need_help_web/live/notification_live.ex:761
#, elixir-autogen, elixir-format
msgid "Tue"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:470
#: lib/who_need_help_web/live/notification_live.ex:477
#, elixir-autogen, elixir-format
msgid "Until"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:558
#: lib/who_need_help_web/live/notification_live.ex:565
#, elixir-autogen, elixir-format
msgid "Urgent medicine near home"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:466
#: lib/who_need_help_web/live/notification_live.ex:473
#, elixir-autogen, elixir-format
msgid "Use quiet hours"
msgstr ""
@ -5136,18 +5136,18 @@ msgstr ""
msgid "Verify the requester contact first."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:385
#: lib/who_need_help_web/live/notification_live.ex:392
#, elixir-autogen, elixir-format
msgid "Web Push keys are not configured in this local environment yet."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:357
#: lib/who_need_help_web/live/notification_live.ex:397
#: lib/who_need_help_web/live/notification_live.ex:362
#: lib/who_need_help_web/live/notification_live.ex:404
#, elixir-autogen, elixir-format
msgid "Web browser"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:755
#: lib/who_need_help_web/live/notification_live.ex:762
#, elixir-autogen, elixir-format
msgid "Wed"
msgstr ""
@ -5164,12 +5164,12 @@ msgstr ""
msgid "You left this match. The request is open for another helper if time remains."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:383
#: lib/who_need_help_web/live/notification_live.ex:390
#, elixir-autogen, elixir-format
msgid "Your browser will ask for notification permission."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:481
#: lib/who_need_help_web/live/notification_live.ex:488
#, elixir-autogen, elixir-format
msgid "Your nearby alerts"
msgstr ""
@ -6355,7 +6355,7 @@ msgstr ""
msgid "Notification permission was not granted."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:351
#: lib/who_need_help_web/live/notification_live.ex:356
#, elixir-autogen, elixir-format
msgid "Push keys changed. Enable notifications to reconnect this device securely."
msgstr ""
@ -6370,17 +6370,17 @@ msgstr ""
msgid "Push notifications are enabled on this Android device."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:348
#: lib/who_need_help_web/live/notification_live.ex:353
#, elixir-autogen, elixir-format
msgid "Push notifications are enabled on this device."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:346
#: lib/who_need_help_web/live/notification_live.ex:351
#, elixir-autogen, elixir-format
msgid "Push notifications are unavailable in this browser."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:349
#: lib/who_need_help_web/live/notification_live.ex:354
#, elixir-autogen, elixir-format
msgid "Push notifications could not be enabled."
msgstr ""
@ -6390,7 +6390,7 @@ msgstr ""
msgid "The Android push token could not be saved. Please try again."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:354
#: lib/who_need_help_web/live/notification_live.ex:359
#, elixir-autogen, elixir-format
msgid "This browser has a push subscription. Enable it to reconnect this device."
msgstr ""
@ -7828,12 +7828,12 @@ msgstr ""
msgid "Keep this status link private. Important status changes may also be sent to the verified contact email."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:792
#: lib/who_need_help_web/live/notification_live.ex:799
#, elixir-autogen, elixir-format
msgid "Nearby alerts always appear in your inbox. Push is optional."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:459
#: lib/who_need_help_web/live/notification_live.ex:466
#, elixir-autogen, elixir-format
msgid "Nearby updates use the in-app inbox and optional push. Email digests are not enabled yet."
msgstr ""
@ -7857,3 +7857,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Child safety or sexual exploitation"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:383
#, elixir-autogen, elixir-format
msgid "Android notifications enabled"
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:346
#, elixir-autogen, elixir-format
msgid "Android will request notification permission and securely register this device."
msgstr ""
#: lib/who_need_help_web/live/notification_live.ex:382
#, elixir-autogen, elixir-format
msgid "Enable Android notifications"
msgstr ""

View File

@ -41,7 +41,7 @@ msgstr "Attempting to reconnect"
#: lib/who_need_help_web/components/layouts.ex:235
#: lib/who_need_help_web/live/moderation_live.ex:494
#: lib/who_need_help_web/live/notification_live.ex:699
#: lib/who_need_help_web/live/notification_live.ex:706
#, elixir-autogen, elixir-format
msgid "Categories"
msgstr "Categories"
@ -209,7 +209,7 @@ msgstr "Action center"
#: lib/who_need_help_web/live/admin_user_live.ex:188
#: lib/who_need_help_web/live/admin_users_live.ex:125
#: lib/who_need_help_web/live/admin_users_live.ex:185
#: lib/who_need_help_web/live/notification_live.ex:512
#: lib/who_need_help_web/live/notification_live.ex:519
#, elixir-autogen, elixir-format
msgid "Active"
msgstr "Active"
@ -911,7 +911,7 @@ msgid "Join requests close"
msgstr "Join requests close"
#: lib/who_need_help_web/live/activity_live/new.ex:486
#: lib/who_need_help_web/live/notification_live.ex:667
#: lib/who_need_help_web/live/notification_live.ex:674
#: lib/who_need_help_web/live/request_live/new.ex:668
#, elixir-autogen, elixir-format
msgid "Latitude"
@ -964,7 +964,7 @@ msgid "Logged out successfully."
msgstr "Logged out successfully."
#: lib/who_need_help_web/live/activity_live/new.ex:500
#: lib/who_need_help_web/live/notification_live.ex:681
#: lib/who_need_help_web/live/notification_live.ex:688
#: lib/who_need_help_web/live/request_live/new.ex:682
#, elixir-autogen, elixir-format
msgid "Longitude"
@ -1144,7 +1144,7 @@ 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/notification_live.ex:729
#: lib/who_need_help_web/live/notification_live.ex:736
#: lib/who_need_help_web/live/request_live/index.ex:443
#: lib/who_need_help_web/live/request_live/index.ex:444
#: lib/who_need_help_web/live/request_live/index.ex:555
@ -1624,7 +1624,7 @@ msgstr "Save Password"
msgid "Save profile"
msgstr "Save profile"
#: lib/who_need_help_web/live/notification_live.ex:731
#: lib/who_need_help_web/live/notification_live.ex:738
#: lib/who_need_help_web/live/request_live/index.ex:447
#: lib/who_need_help_web/live/request_live/index.ex:448
#: lib/who_need_help_web/live/request_live/index.ex:557
@ -1937,7 +1937,7 @@ msgstr "This request is unavailable."
msgid "To see sent emails, visit"
msgstr "To see sent emails, visit"
#: lib/who_need_help_web/live/notification_live.ex:730
#: lib/who_need_help_web/live/notification_live.ex:737
#: lib/who_need_help_web/live/request_live/index.ex:445
#: lib/who_need_help_web/live/request_live/index.ex:446
#: lib/who_need_help_web/live/request_live/index.ex:556
@ -2009,7 +2009,7 @@ msgstr "Unblock this user"
msgid "Unique people"
msgstr "Unique people"
#: lib/who_need_help_web/live/notification_live.ex:724
#: lib/who_need_help_web/live/notification_live.ex:731
#: lib/who_need_help_web/live/request_live/index.ex:552
#: lib/who_need_help_web/live/request_live/new.ex:447
#, elixir-autogen, elixir-format
@ -3925,7 +3925,7 @@ msgid "Date"
msgstr "Date"
#: lib/who_need_help_web/live/activity_live/new.ex:478
#: lib/who_need_help_web/live/notification_live.ex:664
#: lib/who_need_help_web/live/notification_live.ex:671
#: lib/who_need_help_web/live/request_live/new.ex:660
#, elixir-autogen, elixir-format
msgid "Enter coordinates manually"
@ -4013,14 +4013,14 @@ msgid "In 3 hours"
msgstr "In 3 hours"
#: lib/who_need_help_web/live/activity_live/new.ex:354
#: lib/who_need_help_web/live/notification_live.ex:582
#: lib/who_need_help_web/live/notification_live.ex:589
#: lib/who_need_help_web/live/request_live/new.ex:484
#, elixir-autogen, elixir-format
msgid "Location is unavailable in this browser."
msgstr "Location is unavailable in this browser."
#: lib/who_need_help_web/live/activity_live/new.ex:356
#: lib/who_need_help_web/live/notification_live.ex:584
#: lib/who_need_help_web/live/notification_live.ex:591
#: lib/who_need_help_web/live/request_live/new.ex:486
#, elixir-autogen, elixir-format
msgid "Location permission was denied."
@ -4274,7 +4274,7 @@ msgid "Use another email"
msgstr "Use another email"
#: lib/who_need_help_web/live/activity_live/new.ex:435
#: lib/who_need_help_web/live/notification_live.ex:617
#: lib/who_need_help_web/live/notification_live.ex:624
#: lib/who_need_help_web/live/request_live/new.ex:595
#, elixir-autogen, elixir-format
msgid "Use my location"
@ -4519,8 +4519,8 @@ msgstr "Together"
#: lib/who_need_help_web/live/activity_live/new.ex:355
#: lib/who_need_help_web/live/activity_live/new.ex:414
#: lib/who_need_help_web/live/activity_live/show.ex:546
#: lib/who_need_help_web/live/notification_live.ex:583
#: lib/who_need_help_web/live/notification_live.ex:602
#: lib/who_need_help_web/live/notification_live.ex:590
#: lib/who_need_help_web/live/notification_live.ex:609
#: lib/who_need_help_web/live/request_live/index.ex:784
#: lib/who_need_help_web/live/request_live/new.ex:485
#: lib/who_need_help_web/live/request_live/new.ex:563
@ -4561,7 +4561,7 @@ msgid_plural "%{count} unread"
msgstr[0] ""
msgstr[1] ""
#: lib/who_need_help_web/live/notification_live.ex:456
#: lib/who_need_help_web/live/notification_live.ex:463
#, elixir-autogen, elixir-format
msgid "Acceptance, arrival, completion, and cancellation"
msgstr "Acceptance, arrival, completion, and cancellation"
@ -4571,22 +4571,22 @@ msgstr "Acceptance, arrival, completion, and cancellation"
msgid "Active or unresolved product state must be handled first."
msgstr "Active or unresolved product state must be handled first."
#: lib/who_need_help_web/live/notification_live.ex:578
#: lib/who_need_help_web/live/notification_live.ex:585
#, elixir-autogen, elixir-format
msgid "Alert area selected."
msgstr "Alert area selected."
#: lib/who_need_help_web/live/notification_live.ex:577
#: lib/who_need_help_web/live/notification_live.ex:584
#, elixir-autogen, elixir-format
msgid "Alert area selected. Drag the pin to move it."
msgstr "Alert area selected. Drag the pin to move it."
#: lib/who_need_help_web/live/notification_live.ex:557
#: lib/who_need_help_web/live/notification_live.ex:564
#, elixir-autogen, elixir-format
msgid "Alert name"
msgstr "Alert name"
#: lib/who_need_help_web/live/notification_live.ex:620
#: lib/who_need_help_web/live/notification_live.ex:627
#, elixir-autogen, elixir-format
msgid "Alert radius"
msgstr "Alert radius"
@ -4597,7 +4597,7 @@ msgstr "Alert radius"
msgid "Alert was not found."
msgstr "Alert was not found."
#: lib/who_need_help_web/live/notification_live.ex:441
#: lib/who_need_help_web/live/notification_live.ex:448
#, elixir-autogen, elixir-format
msgid "Allow push notifications"
msgstr "Allow push notifications"
@ -4607,17 +4607,17 @@ msgstr "Allow push notifications"
msgid "Arrival saved. The requester has been notified."
msgstr "Arrival saved. The requester has been notified."
#: lib/who_need_help_web/live/notification_live.ex:748
#: lib/who_need_help_web/live/notification_live.ex:755
#, elixir-autogen, elixir-format
msgid "Available days"
msgstr "Available days"
#: lib/who_need_help_web/live/notification_live.ex:781
#: lib/who_need_help_web/live/notification_live.ex:788
#, elixir-autogen, elixir-format
msgid "Available from (optional)"
msgstr "Available from (optional)"
#: lib/who_need_help_web/live/notification_live.ex:786
#: lib/who_need_help_web/live/notification_live.ex:793
#, elixir-autogen, elixir-format
msgid "Available until (optional)"
msgstr "Available until (optional)"
@ -4638,18 +4638,18 @@ msgstr "Cancelling ends this match and stops live-location sharing."
msgid "Cancelling…"
msgstr "Cancelling…"
#: lib/who_need_help_web/live/notification_live.ex:545
#: lib/who_need_help_web/live/notification_live.ex:552
#, elixir-autogen, elixir-format
msgid "Choose an area, categories, urgency, and the times when you are available."
msgstr "Choose an area, categories, urgency, and the times when you are available."
#: lib/who_need_help_web/live/notification_live.ex:576
#: lib/who_need_help_web/live/notification_live.ex:657
#: lib/who_need_help_web/live/notification_live.ex:583
#: lib/who_need_help_web/live/notification_live.ex:664
#, elixir-autogen, elixir-format
msgid "Choose the private center of your alert area."
msgstr "Choose the private center of your alert area."
#: lib/who_need_help_web/live/notification_live.ex:607
#: lib/who_need_help_web/live/notification_live.ex:614
#, elixir-autogen, elixir-format
msgid "Click the map or drag the green pin to move your private alert area"
msgstr "Click the map or drag the green pin to move your private alert area"
@ -4675,32 +4675,32 @@ msgstr "Confirm withdrawal"
msgid "Count"
msgstr "Count"
#: lib/who_need_help_web/live/notification_live.ex:543
#: lib/who_need_help_web/live/notification_live.ex:550
#, elixir-autogen, elixir-format
msgid "Create a nearby alert"
msgstr "Create a nearby alert"
#: lib/who_need_help_web/live/notification_live.ex:803
#: lib/who_need_help_web/live/notification_live.ex:810
#, elixir-autogen, elixir-format
msgid "Create nearby alert"
msgstr "Create nearby alert"
#: lib/who_need_help_web/live/notification_live.ex:532
#: lib/who_need_help_web/live/notification_live.ex:539
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr "Delete"
#: lib/who_need_help_web/live/notification_live.ex:529
#: lib/who_need_help_web/live/notification_live.ex:536
#, elixir-autogen, elixir-format
msgid "Delete this nearby alert?"
msgstr "Delete this nearby alert?"
#: lib/who_need_help_web/live/notification_live.ex:790
#: lib/who_need_help_web/live/notification_live.ex:797
#, elixir-autogen, elixir-format
msgid "Delivery channels"
msgstr "Delivery channels"
#: lib/who_need_help_web/live/notification_live.ex:360
#: lib/who_need_help_web/live/notification_live.ex:365
#, elixir-autogen, elixir-format
msgid "Delivery channels and quiet hours"
msgstr "Delivery channels and quiet hours"
@ -4716,7 +4716,7 @@ msgstr "Device was not found."
msgid "Dimension"
msgstr "Dimension"
#: lib/who_need_help_web/live/notification_live.ex:414
#: lib/who_need_help_web/live/notification_live.ex:421
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr "Disable"
@ -4726,14 +4726,14 @@ msgstr "Disable"
msgid "Download my data"
msgstr "Download my data"
#: lib/who_need_help_web/live/notification_live.ex:579
#: lib/who_need_help_web/live/notification_live.ex:580
#: lib/who_need_help_web/live/notification_live.ex:586
#: lib/who_need_help_web/live/notification_live.ex:587
#, elixir-autogen, elixir-format
msgid "Drag to move the alert area"
msgstr "Drag to move the alert area"
#: lib/who_need_help_web/live/notification_live.ex:375
#: lib/who_need_help_web/live/notification_live.ex:378
#: lib/who_need_help_web/live/notification_live.ex:380
#: lib/who_need_help_web/live/notification_live.ex:385
#, elixir-autogen, elixir-format
msgid "Enable push on this device"
msgstr "Enable push on this device"
@ -4743,12 +4743,12 @@ msgstr "Enable push on this device"
msgid "Follow request updates and choose which nearby needs should reach this device."
msgstr "Follow request updates and choose which nearby needs should reach this device."
#: lib/who_need_help_web/live/notification_live.ex:757
#: lib/who_need_help_web/live/notification_live.ex:764
#, elixir-autogen, elixir-format
msgid "Fri"
msgstr "Fri"
#: lib/who_need_help_web/live/notification_live.ex:469
#: lib/who_need_help_web/live/notification_live.ex:476
#: lib/who_need_help_web/live/product_analytics_live.ex:220
#, elixir-autogen, elixir-format
msgid "From"
@ -4800,7 +4800,7 @@ msgstr "Helper arrived"
msgid "Helper's live location"
msgstr "Helper's live location"
#: lib/who_need_help_web/live/notification_live.ex:563
#: lib/who_need_help_web/live/notification_live.ex:570
#, elixir-autogen, elixir-format
msgid "Home area"
msgstr "Home area"
@ -4821,7 +4821,7 @@ msgstr "I have arrived"
msgid "Inbox"
msgstr "Inbox"
#: lib/who_need_help_web/live/notification_live.ex:701
#: lib/who_need_help_web/live/notification_live.ex:708
#, elixir-autogen, elixir-format
msgid "Leave every category unchecked to receive all matching requests."
msgstr "Leave every category unchecked to receive all matching requests."
@ -4862,7 +4862,7 @@ msgstr "Mark all read"
msgid "Metric"
msgstr "Metric"
#: lib/who_need_help_web/live/notification_live.ex:753
#: lib/who_need_help_web/live/notification_live.ex:760
#, elixir-autogen, elixir-format
msgid "Mon"
msgstr "Mon"
@ -4877,7 +4877,7 @@ msgstr "Nearby alert created."
msgid "Nearby alert deleted."
msgstr "Nearby alert deleted."
#: lib/who_need_help_web/live/notification_live.ex:446
#: lib/who_need_help_web/live/notification_live.ex:453
#: lib/who_need_help_web/live/request_live/index.ex:508
#, elixir-autogen, elixir-format
msgid "Nearby requests"
@ -4888,7 +4888,7 @@ msgstr "Nearby requests"
msgid "New help request nearby"
msgstr "New help request nearby"
#: lib/who_need_help_web/live/notification_live.ex:451
#: lib/who_need_help_web/live/notification_live.ex:458
#, elixir-autogen, elixir-format
msgid "New private messages"
msgstr "New private messages"
@ -4898,7 +4898,7 @@ msgstr "New private messages"
msgid "No active product workflow was found."
msgstr "No active product workflow was found."
#: lib/who_need_help_web/live/notification_live.ex:487
#: lib/who_need_help_web/live/notification_live.ex:494
#, elixir-autogen, elixir-format
msgid "No nearby alerts configured yet."
msgstr "No nearby alerts configured yet."
@ -4920,7 +4920,7 @@ msgstr "Note (optional)"
msgid "Notification preferences saved."
msgstr "Notification preferences saved."
#: lib/who_need_help_web/live/notification_live.ex:362
#: lib/who_need_help_web/live/notification_live.ex:367
#, elixir-autogen, elixir-format
msgid "Notification text never contains chat messages or exact coordinates."
msgstr "Notification text never contains chat messages or exact coordinates."
@ -4944,17 +4944,17 @@ msgstr "Notifications and nearby alerts"
msgid "Operations"
msgstr "Operations"
#: lib/who_need_help_web/live/notification_live.ex:646
#: lib/who_need_help_web/live/notification_live.ex:653
#, elixir-autogen, elixir-format
msgid "Other users never see this saved point."
msgstr "Other users never see this saved point."
#: lib/who_need_help_web/live/notification_live.ex:523
#: lib/who_need_help_web/live/notification_live.ex:530
#, elixir-autogen, elixir-format
msgid "Pause"
msgstr "Pause"
#: lib/who_need_help_web/live/notification_live.ex:512
#: lib/who_need_help_web/live/notification_live.ex:519
#, elixir-autogen, elixir-format
msgid "Paused"
msgstr "Paused"
@ -4964,12 +4964,12 @@ msgstr "Paused"
msgid "Plans changed"
msgstr "Plans changed"
#: lib/who_need_help_web/live/notification_live.ex:562
#: lib/who_need_help_web/live/notification_live.ex:569
#, elixir-autogen, elixir-format
msgid "Private area label"
msgstr "Private area label"
#: lib/who_need_help_web/live/notification_live.ex:645
#: lib/who_need_help_web/live/notification_live.ex:652
#, elixir-autogen, elixir-format
msgid "Private matching center"
msgstr "Private matching center"
@ -4985,17 +4985,17 @@ msgstr "Product analytics"
msgid "Progress"
msgstr "Progress"
#: lib/who_need_help_web/live/notification_live.ex:503
#: lib/who_need_help_web/live/notification_live.ex:510
#, elixir-autogen, elixir-format
msgid "Push"
msgstr "Push"
#: lib/who_need_help_web/live/notification_live.ex:376
#: lib/who_need_help_web/live/notification_live.ex:381
#, elixir-autogen, elixir-format
msgid "Push enabled on this device"
msgstr "Push enabled on this device"
#: lib/who_need_help_web/live/notification_live.ex:798
#: lib/who_need_help_web/live/notification_live.ex:805
#, elixir-autogen, elixir-format
msgid "Push notification"
msgstr "Push notification"
@ -5035,7 +5035,7 @@ msgstr "Requester is unreachable"
msgid "Requester's live location"
msgstr "Requester's live location"
#: lib/who_need_help_web/live/notification_live.ex:523
#: lib/who_need_help_web/live/notification_live.ex:530
#, elixir-autogen, elixir-format
msgid "Resume"
msgstr "Resume"
@ -5045,12 +5045,12 @@ msgstr "Resume"
msgid "Run deletion preflight"
msgstr "Run deletion preflight"
#: lib/who_need_help_web/live/notification_live.ex:758
#: lib/who_need_help_web/live/notification_live.ex:765
#, elixir-autogen, elixir-format
msgid "Sat"
msgstr "Sat"
#: lib/who_need_help_web/live/notification_live.ex:472
#: lib/who_need_help_web/live/notification_live.ex:479
#, elixir-autogen, elixir-format
msgid "Save preferences"
msgstr "Save preferences"
@ -5065,7 +5065,7 @@ msgstr "Shared live location"
msgid "Stay available without refreshing"
msgstr "Stay available without refreshing"
#: lib/who_need_help_web/live/notification_live.ex:759
#: lib/who_need_help_web/live/notification_live.ex:766
#, elixir-autogen, elixir-format
msgid "Sun"
msgstr "Sun"
@ -5075,7 +5075,7 @@ msgstr "Sun"
msgid "The linked account no longer exists."
msgstr "The linked account no longer exists."
#: lib/who_need_help_web/live/notification_live.ex:600
#: lib/who_need_help_web/live/notification_live.ex:607
#, elixir-autogen, elixir-format
msgid "The map is unavailable. Enter coordinates manually."
msgstr "The map is unavailable. Enter coordinates manually."
@ -5090,7 +5090,7 @@ msgstr "The previous helper left. This request is open for a new helper again."
msgid "The request is not linked to an account."
msgstr "The request is not linked to an account."
#: lib/who_need_help_web/live/notification_live.ex:483
#: lib/who_need_help_web/live/notification_live.ex:490
#, elixir-autogen, elixir-format
msgid "The saved center is private and is used only to find matching requests."
msgstr "The saved center is private and is used only to find matching requests."
@ -5106,27 +5106,27 @@ msgstr "These are activity signals, not an identity, background, qualification,
msgid "This is not an account-deletion case."
msgstr "This is not an account-deletion case."
#: lib/who_need_help_web/live/notification_live.ex:756
#: lib/who_need_help_web/live/notification_live.ex:763
#, elixir-autogen, elixir-format
msgid "Thu"
msgstr "Thu"
#: lib/who_need_help_web/live/notification_live.ex:754
#: lib/who_need_help_web/live/notification_live.ex:761
#, elixir-autogen, elixir-format
msgid "Tue"
msgstr "Tue"
#: lib/who_need_help_web/live/notification_live.ex:470
#: lib/who_need_help_web/live/notification_live.ex:477
#, elixir-autogen, elixir-format
msgid "Until"
msgstr "Until"
#: lib/who_need_help_web/live/notification_live.ex:558
#: lib/who_need_help_web/live/notification_live.ex:565
#, elixir-autogen, elixir-format
msgid "Urgent medicine near home"
msgstr "Urgent medicine near home"
#: lib/who_need_help_web/live/notification_live.ex:466
#: lib/who_need_help_web/live/notification_live.ex:473
#, elixir-autogen, elixir-format
msgid "Use quiet hours"
msgstr "Use quiet hours"
@ -5136,18 +5136,18 @@ msgstr "Use quiet hours"
msgid "Verify the requester contact first."
msgstr "Verify the requester contact first."
#: lib/who_need_help_web/live/notification_live.ex:385
#: lib/who_need_help_web/live/notification_live.ex:392
#, elixir-autogen, elixir-format
msgid "Web Push keys are not configured in this local environment yet."
msgstr "Web Push keys are not configured in this local environment yet."
#: lib/who_need_help_web/live/notification_live.ex:357
#: lib/who_need_help_web/live/notification_live.ex:397
#: lib/who_need_help_web/live/notification_live.ex:362
#: lib/who_need_help_web/live/notification_live.ex:404
#, elixir-autogen, elixir-format
msgid "Web browser"
msgstr "Web browser"
#: lib/who_need_help_web/live/notification_live.ex:755
#: lib/who_need_help_web/live/notification_live.ex:762
#, elixir-autogen, elixir-format
msgid "Wed"
msgstr "Wed"
@ -5164,12 +5164,12 @@ msgstr "You accepted this request. Use private chat to coordinate safely."
msgid "You left this match. The request is open for another helper if time remains."
msgstr "You left this match. The request is open for another helper if time remains."
#: lib/who_need_help_web/live/notification_live.ex:383
#: lib/who_need_help_web/live/notification_live.ex:390
#, elixir-autogen, elixir-format
msgid "Your browser will ask for notification permission."
msgstr "Your browser will ask for notification permission."
#: lib/who_need_help_web/live/notification_live.ex:481
#: lib/who_need_help_web/live/notification_live.ex:488
#, elixir-autogen, elixir-format
msgid "Your nearby alerts"
msgstr "Your nearby alerts"
@ -6355,7 +6355,7 @@ msgstr "Map marker"
msgid "Notification permission was not granted."
msgstr "Notification permission was not granted."
#: lib/who_need_help_web/live/notification_live.ex:351
#: lib/who_need_help_web/live/notification_live.ex:356
#, elixir-autogen, elixir-format
msgid "Push keys changed. Enable notifications to reconnect this device securely."
msgstr "Push keys changed. Enable notifications to reconnect this device securely."
@ -6370,17 +6370,17 @@ msgstr "Push notifications are disabled on this device."
msgid "Push notifications are enabled on this Android device."
msgstr "Push notifications are enabled on this Android device."
#: lib/who_need_help_web/live/notification_live.ex:348
#: lib/who_need_help_web/live/notification_live.ex:353
#, elixir-autogen, elixir-format
msgid "Push notifications are enabled on this device."
msgstr "Push notifications are enabled on this device."
#: lib/who_need_help_web/live/notification_live.ex:346
#: lib/who_need_help_web/live/notification_live.ex:351
#, elixir-autogen, elixir-format
msgid "Push notifications are unavailable in this browser."
msgstr "Push notifications are unavailable in this browser."
#: lib/who_need_help_web/live/notification_live.ex:349
#: lib/who_need_help_web/live/notification_live.ex:354
#, elixir-autogen, elixir-format
msgid "Push notifications could not be enabled."
msgstr "Push notifications could not be enabled."
@ -6390,7 +6390,7 @@ msgstr "Push notifications could not be enabled."
msgid "The Android push token could not be saved. Please try again."
msgstr "The Android push token could not be saved. Please try again."
#: lib/who_need_help_web/live/notification_live.ex:354
#: lib/who_need_help_web/live/notification_live.ex:359
#, elixir-autogen, elixir-format
msgid "This browser has a push subscription. Enable it to reconnect this device."
msgstr "This browser has a push subscription. Enable it to reconnect this device."
@ -7828,12 +7828,12 @@ msgstr "Child-safety reports are routed through the protected support and conten
msgid "Keep this status link private. Important status changes may also be sent to the verified contact email."
msgstr "Keep this status link private. Important status changes may also be sent to the verified contact email."
#: lib/who_need_help_web/live/notification_live.ex:792
#: lib/who_need_help_web/live/notification_live.ex:799
#, elixir-autogen, elixir-format
msgid "Nearby alerts always appear in your inbox. Push is optional."
msgstr "Nearby alerts always appear in your inbox. Push is optional."
#: lib/who_need_help_web/live/notification_live.ex:459
#: lib/who_need_help_web/live/notification_live.ex:466
#, elixir-autogen, elixir-format
msgid "Nearby updates use the in-app inbox and optional push. Email digests are not enabled yet."
msgstr "Nearby updates use the in-app inbox and optional push. Email digests are not enabled yet."
@ -7857,3 +7857,18 @@ msgstr "Log in to help"
#, elixir-autogen, elixir-format
msgid "Child safety or sexual exploitation"
msgstr "Child safety or sexual exploitation"
#: lib/who_need_help_web/live/notification_live.ex:383
#, elixir-autogen, elixir-format
msgid "Android notifications enabled"
msgstr "Android notifications enabled"
#: lib/who_need_help_web/live/notification_live.ex:346
#, elixir-autogen, elixir-format
msgid "Android will request notification permission and securely register this device."
msgstr "Android will request notification permission and securely register this device."
#: lib/who_need_help_web/live/notification_live.ex:382
#, elixir-autogen, elixir-format
msgid "Enable Android notifications"
msgstr "Enable Android notifications"

View File

@ -41,7 +41,7 @@ msgstr "Пытаемся восстановить соединение"
#: lib/who_need_help_web/components/layouts.ex:235
#: lib/who_need_help_web/live/moderation_live.ex:494
#: lib/who_need_help_web/live/notification_live.ex:699
#: lib/who_need_help_web/live/notification_live.ex:706
#, elixir-autogen, elixir-format
msgid "Categories"
msgstr "Категории"
@ -213,7 +213,7 @@ msgstr "Центр действий"
#: lib/who_need_help_web/live/admin_user_live.ex:188
#: lib/who_need_help_web/live/admin_users_live.ex:125
#: lib/who_need_help_web/live/admin_users_live.ex:185
#: lib/who_need_help_web/live/notification_live.ex:512
#: lib/who_need_help_web/live/notification_live.ex:519
#, elixir-autogen, elixir-format
msgid "Active"
msgstr "Активный"
@ -960,7 +960,7 @@ msgid "Join requests close"
msgstr "Приём заявок завершается"
#: lib/who_need_help_web/live/activity_live/new.ex:486
#: lib/who_need_help_web/live/notification_live.ex:667
#: lib/who_need_help_web/live/notification_live.ex:674
#: lib/who_need_help_web/live/request_live/new.ex:668
#, elixir-autogen, elixir-format
msgid "Latitude"
@ -1015,7 +1015,7 @@ msgid "Logged out successfully."
msgstr "Вы успешно вышли."
#: lib/who_need_help_web/live/activity_live/new.ex:500
#: lib/who_need_help_web/live/notification_live.ex:681
#: lib/who_need_help_web/live/notification_live.ex:688
#: lib/who_need_help_web/live/request_live/new.ex:682
#, elixir-autogen, elixir-format
msgid "Longitude"
@ -1208,7 +1208,7 @@ msgstr ""
msgid "Not for emergencies"
msgstr "Не для чрезвычайных ситуаций"
#: lib/who_need_help_web/live/notification_live.ex:729
#: lib/who_need_help_web/live/notification_live.ex:736
#: lib/who_need_help_web/live/request_live/index.ex:443
#: lib/who_need_help_web/live/request_live/index.ex:444
#: lib/who_need_help_web/live/request_live/index.ex:555
@ -1709,7 +1709,7 @@ msgstr "Сохранить пароль"
msgid "Save profile"
msgstr "Сохранить профиль"
#: lib/who_need_help_web/live/notification_live.ex:731
#: lib/who_need_help_web/live/notification_live.ex:738
#: lib/who_need_help_web/live/request_live/index.ex:447
#: lib/who_need_help_web/live/request_live/index.ex:448
#: lib/who_need_help_web/live/request_live/index.ex:557
@ -2036,7 +2036,7 @@ msgstr "Эта заявка недоступна."
msgid "To see sent emails, visit"
msgstr "Чтобы посмотреть отправленные письма, откройте"
#: lib/who_need_help_web/live/notification_live.ex:730
#: lib/who_need_help_web/live/notification_live.ex:737
#: lib/who_need_help_web/live/request_live/index.ex:445
#: lib/who_need_help_web/live/request_live/index.ex:446
#: lib/who_need_help_web/live/request_live/index.ex:556
@ -2108,7 +2108,7 @@ msgstr "Разблокировать этого пользователя"
msgid "Unique people"
msgstr "Уникальные люди"
#: lib/who_need_help_web/live/notification_live.ex:724
#: lib/who_need_help_web/live/notification_live.ex:731
#: lib/who_need_help_web/live/request_live/index.ex:552
#: lib/who_need_help_web/live/request_live/new.ex:447
#, elixir-autogen, elixir-format
@ -4041,7 +4041,7 @@ msgid "Date"
msgstr "Дата"
#: lib/who_need_help_web/live/activity_live/new.ex:478
#: lib/who_need_help_web/live/notification_live.ex:664
#: lib/who_need_help_web/live/notification_live.ex:671
#: lib/who_need_help_web/live/request_live/new.ex:660
#, elixir-autogen, elixir-format
msgid "Enter coordinates manually"
@ -4129,14 +4129,14 @@ msgid "In 3 hours"
msgstr "Через 3 часа"
#: lib/who_need_help_web/live/activity_live/new.ex:354
#: lib/who_need_help_web/live/notification_live.ex:582
#: lib/who_need_help_web/live/notification_live.ex:589
#: lib/who_need_help_web/live/request_live/new.ex:484
#, elixir-autogen, elixir-format
msgid "Location is unavailable in this browser."
msgstr "Геопозиция недоступна в этом браузере."
#: lib/who_need_help_web/live/activity_live/new.ex:356
#: lib/who_need_help_web/live/notification_live.ex:584
#: lib/who_need_help_web/live/notification_live.ex:591
#: lib/who_need_help_web/live/request_live/new.ex:486
#, elixir-autogen, elixir-format
msgid "Location permission was denied."
@ -4390,7 +4390,7 @@ msgid "Use another email"
msgstr "Использовать другую почту"
#: lib/who_need_help_web/live/activity_live/new.ex:435
#: lib/who_need_help_web/live/notification_live.ex:617
#: lib/who_need_help_web/live/notification_live.ex:624
#: lib/who_need_help_web/live/request_live/new.ex:595
#, elixir-autogen, elixir-format
msgid "Use my location"
@ -4635,8 +4635,8 @@ msgstr "Вместе"
#: lib/who_need_help_web/live/activity_live/new.ex:355
#: lib/who_need_help_web/live/activity_live/new.ex:414
#: lib/who_need_help_web/live/activity_live/show.ex:546
#: lib/who_need_help_web/live/notification_live.ex:583
#: lib/who_need_help_web/live/notification_live.ex:602
#: lib/who_need_help_web/live/notification_live.ex:590
#: lib/who_need_help_web/live/notification_live.ex:609
#: lib/who_need_help_web/live/request_live/index.ex:784
#: lib/who_need_help_web/live/request_live/new.ex:485
#: lib/who_need_help_web/live/request_live/new.ex:563
@ -4678,7 +4678,7 @@ msgstr[0] "%{count} непрочитанное уведомление"
msgstr[1] "%{count} непрочитанных уведомления"
msgstr[2] "%{count} непрочитанных уведомлений"
#: lib/who_need_help_web/live/notification_live.ex:456
#: lib/who_need_help_web/live/notification_live.ex:463
#, elixir-autogen, elixir-format
msgid "Acceptance, arrival, completion, and cancellation"
msgstr "Принятие, прибытие, завершение и отмена"
@ -4688,22 +4688,22 @@ msgstr "Принятие, прибытие, завершение и отмена
msgid "Active or unresolved product state must be handled first."
msgstr "Сначала нужно обработать активное или незавершённое состояние."
#: lib/who_need_help_web/live/notification_live.ex:578
#: lib/who_need_help_web/live/notification_live.ex:585
#, elixir-autogen, elixir-format
msgid "Alert area selected."
msgstr "Область уведомления выбрана."
#: lib/who_need_help_web/live/notification_live.ex:577
#: lib/who_need_help_web/live/notification_live.ex:584
#, elixir-autogen, elixir-format
msgid "Alert area selected. Drag the pin to move it."
msgstr "Область уведомления выбрана. Перетащите маркер, чтобы её переместить."
#: lib/who_need_help_web/live/notification_live.ex:557
#: lib/who_need_help_web/live/notification_live.ex:564
#, elixir-autogen, elixir-format
msgid "Alert name"
msgstr "Название уведомления"
#: lib/who_need_help_web/live/notification_live.ex:620
#: lib/who_need_help_web/live/notification_live.ex:627
#, elixir-autogen, elixir-format
msgid "Alert radius"
msgstr "Радиус уведомления"
@ -4714,7 +4714,7 @@ msgstr "Радиус уведомления"
msgid "Alert was not found."
msgstr "Уведомление не найдено."
#: lib/who_need_help_web/live/notification_live.ex:441
#: lib/who_need_help_web/live/notification_live.ex:448
#, elixir-autogen, elixir-format
msgid "Allow push notifications"
msgstr "Разрешить push-уведомления"
@ -4724,17 +4724,17 @@ msgstr "Разрешить push-уведомления"
msgid "Arrival saved. The requester has been notified."
msgstr "Прибытие сохранено. Автор заявки получил уведомление."
#: lib/who_need_help_web/live/notification_live.ex:748
#: lib/who_need_help_web/live/notification_live.ex:755
#, elixir-autogen, elixir-format
msgid "Available days"
msgstr "Доступные дни"
#: lib/who_need_help_web/live/notification_live.ex:781
#: lib/who_need_help_web/live/notification_live.ex:788
#, elixir-autogen, elixir-format
msgid "Available from (optional)"
msgstr "Доступен с (необязательно)"
#: lib/who_need_help_web/live/notification_live.ex:786
#: lib/who_need_help_web/live/notification_live.ex:793
#, elixir-autogen, elixir-format
msgid "Available until (optional)"
msgstr "Доступен до (необязательно)"
@ -4755,18 +4755,18 @@ msgstr "Отмена завершит эту помощь и остановит
msgid "Cancelling…"
msgstr "Отменяем…"
#: lib/who_need_help_web/live/notification_live.ex:545
#: lib/who_need_help_web/live/notification_live.ex:552
#, elixir-autogen, elixir-format
msgid "Choose an area, categories, urgency, and the times when you are available."
msgstr "Выберите область, категории, срочность и время, когда вы доступны."
#: lib/who_need_help_web/live/notification_live.ex:576
#: lib/who_need_help_web/live/notification_live.ex:657
#: lib/who_need_help_web/live/notification_live.ex:583
#: lib/who_need_help_web/live/notification_live.ex:664
#, elixir-autogen, elixir-format
msgid "Choose the private center of your alert area."
msgstr "Выберите скрытый центр области уведомления."
#: lib/who_need_help_web/live/notification_live.ex:607
#: lib/who_need_help_web/live/notification_live.ex:614
#, elixir-autogen, elixir-format
msgid "Click the map or drag the green pin to move your private alert area"
msgstr "Нажмите на карту или перетащите зелёный маркер, чтобы переместить скрытую область уведомления"
@ -4792,32 +4792,32 @@ msgstr "Подтвердить выход"
msgid "Count"
msgstr "Количество"
#: lib/who_need_help_web/live/notification_live.ex:543
#: lib/who_need_help_web/live/notification_live.ex:550
#, elixir-autogen, elixir-format
msgid "Create a nearby alert"
msgstr "Создать уведомление поблизости"
#: lib/who_need_help_web/live/notification_live.ex:803
#: lib/who_need_help_web/live/notification_live.ex:810
#, elixir-autogen, elixir-format
msgid "Create nearby alert"
msgstr "Создать уведомление"
#: lib/who_need_help_web/live/notification_live.ex:532
#: lib/who_need_help_web/live/notification_live.ex:539
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr "Удалить"
#: lib/who_need_help_web/live/notification_live.ex:529
#: lib/who_need_help_web/live/notification_live.ex:536
#, elixir-autogen, elixir-format
msgid "Delete this nearby alert?"
msgstr "Удалить это уведомление поблизости?"
#: lib/who_need_help_web/live/notification_live.ex:790
#: lib/who_need_help_web/live/notification_live.ex:797
#, elixir-autogen, elixir-format
msgid "Delivery channels"
msgstr "Каналы доставки"
#: lib/who_need_help_web/live/notification_live.ex:360
#: lib/who_need_help_web/live/notification_live.ex:365
#, elixir-autogen, elixir-format
msgid "Delivery channels and quiet hours"
msgstr "Каналы доставки и тихие часы"
@ -4833,7 +4833,7 @@ msgstr "Устройство не найдено."
msgid "Dimension"
msgstr "Параметр"
#: lib/who_need_help_web/live/notification_live.ex:414
#: lib/who_need_help_web/live/notification_live.ex:421
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr "Отключить"
@ -4843,14 +4843,14 @@ msgstr "Отключить"
msgid "Download my data"
msgstr "Скачать мои данные"
#: lib/who_need_help_web/live/notification_live.ex:579
#: lib/who_need_help_web/live/notification_live.ex:580
#: lib/who_need_help_web/live/notification_live.ex:586
#: lib/who_need_help_web/live/notification_live.ex:587
#, elixir-autogen, elixir-format
msgid "Drag to move the alert area"
msgstr "Перетащите, чтобы переместить область уведомления"
#: lib/who_need_help_web/live/notification_live.ex:375
#: lib/who_need_help_web/live/notification_live.ex:378
#: lib/who_need_help_web/live/notification_live.ex:380
#: lib/who_need_help_web/live/notification_live.ex:385
#, elixir-autogen, elixir-format
msgid "Enable push on this device"
msgstr "Включить push на этом устройстве"
@ -4860,12 +4860,12 @@ msgstr "Включить push на этом устройстве"
msgid "Follow request updates and choose which nearby needs should reach this device."
msgstr "Следите за обновлениями заявок и выбирайте, какие просьбы поблизости получать на этом устройстве."
#: lib/who_need_help_web/live/notification_live.ex:757
#: lib/who_need_help_web/live/notification_live.ex:764
#, elixir-autogen, elixir-format
msgid "Fri"
msgstr "Пт"
#: lib/who_need_help_web/live/notification_live.ex:469
#: lib/who_need_help_web/live/notification_live.ex:476
#: lib/who_need_help_web/live/product_analytics_live.ex:220
#, elixir-autogen, elixir-format
msgid "From"
@ -4917,7 +4917,7 @@ msgstr "Помощник прибыл"
msgid "Helper's live location"
msgstr "Текущая геопозиция помощника"
#: lib/who_need_help_web/live/notification_live.ex:563
#: lib/who_need_help_web/live/notification_live.ex:570
#, elixir-autogen, elixir-format
msgid "Home area"
msgstr "Район дома"
@ -4938,7 +4938,7 @@ msgstr "Я прибыл"
msgid "Inbox"
msgstr "Входящие"
#: lib/who_need_help_web/live/notification_live.ex:701
#: lib/who_need_help_web/live/notification_live.ex:708
#, elixir-autogen, elixir-format
msgid "Leave every category unchecked to receive all matching requests."
msgstr "Не выбирайте категории, чтобы получать все подходящие заявки."
@ -4979,7 +4979,7 @@ msgstr "Отметить все прочитанными"
msgid "Metric"
msgstr "Показатель"
#: lib/who_need_help_web/live/notification_live.ex:753
#: lib/who_need_help_web/live/notification_live.ex:760
#, elixir-autogen, elixir-format
msgid "Mon"
msgstr "Пн"
@ -4994,7 +4994,7 @@ msgstr "Уведомление поблизости создано."
msgid "Nearby alert deleted."
msgstr "Уведомление поблизости удалено."
#: lib/who_need_help_web/live/notification_live.ex:446
#: lib/who_need_help_web/live/notification_live.ex:453
#: lib/who_need_help_web/live/request_live/index.ex:508
#, elixir-autogen, elixir-format
msgid "Nearby requests"
@ -5005,7 +5005,7 @@ msgstr "Заявки поблизости"
msgid "New help request nearby"
msgstr "Новая заявка на помощь поблизости"
#: lib/who_need_help_web/live/notification_live.ex:451
#: lib/who_need_help_web/live/notification_live.ex:458
#, elixir-autogen, elixir-format
msgid "New private messages"
msgstr "Новые личные сообщения"
@ -5015,7 +5015,7 @@ msgstr "Новые личные сообщения"
msgid "No active product workflow was found."
msgstr "Активный пользовательский процесс не найден."
#: lib/who_need_help_web/live/notification_live.ex:487
#: lib/who_need_help_web/live/notification_live.ex:494
#, elixir-autogen, elixir-format
msgid "No nearby alerts configured yet."
msgstr "Уведомления поблизости ещё не настроены."
@ -5037,7 +5037,7 @@ msgstr "Примечание (необязательно)"
msgid "Notification preferences saved."
msgstr "Настройки уведомлений сохранены."
#: lib/who_need_help_web/live/notification_live.ex:362
#: lib/who_need_help_web/live/notification_live.ex:367
#, elixir-autogen, elixir-format
msgid "Notification text never contains chat messages or exact coordinates."
msgstr "Текст уведомления никогда не содержит сообщения из чата или точные координаты."
@ -5061,17 +5061,17 @@ msgstr "Уведомления и помощь поблизости"
msgid "Operations"
msgstr "Операции"
#: lib/who_need_help_web/live/notification_live.ex:646
#: lib/who_need_help_web/live/notification_live.ex:653
#, elixir-autogen, elixir-format
msgid "Other users never see this saved point."
msgstr "Другие пользователи никогда не видят эту сохранённую точку."
#: lib/who_need_help_web/live/notification_live.ex:523
#: lib/who_need_help_web/live/notification_live.ex:530
#, elixir-autogen, elixir-format
msgid "Pause"
msgstr "Приостановить"
#: lib/who_need_help_web/live/notification_live.ex:512
#: lib/who_need_help_web/live/notification_live.ex:519
#, elixir-autogen, elixir-format
msgid "Paused"
msgstr "Приостановлено"
@ -5081,12 +5081,12 @@ msgstr "Приостановлено"
msgid "Plans changed"
msgstr "Планы изменились"
#: lib/who_need_help_web/live/notification_live.ex:562
#: lib/who_need_help_web/live/notification_live.ex:569
#, elixir-autogen, elixir-format
msgid "Private area label"
msgstr "Личное название области"
#: lib/who_need_help_web/live/notification_live.ex:645
#: lib/who_need_help_web/live/notification_live.ex:652
#, elixir-autogen, elixir-format
msgid "Private matching center"
msgstr "Скрытый центр поиска"
@ -5102,17 +5102,17 @@ msgstr "Аналитика продукта"
msgid "Progress"
msgstr "Ход выполнения"
#: lib/who_need_help_web/live/notification_live.ex:503
#: lib/who_need_help_web/live/notification_live.ex:510
#, elixir-autogen, elixir-format
msgid "Push"
msgstr "Push"
#: lib/who_need_help_web/live/notification_live.ex:376
#: lib/who_need_help_web/live/notification_live.ex:381
#, elixir-autogen, elixir-format
msgid "Push enabled on this device"
msgstr "Push включён на этом устройстве"
#: lib/who_need_help_web/live/notification_live.ex:798
#: lib/who_need_help_web/live/notification_live.ex:805
#, elixir-autogen, elixir-format
msgid "Push notification"
msgstr "Push-уведомление"
@ -5152,7 +5152,7 @@ msgstr "Не удаётся связаться с автором заявки"
msgid "Requester's live location"
msgstr "Текущая геопозиция автора заявки"
#: lib/who_need_help_web/live/notification_live.ex:523
#: lib/who_need_help_web/live/notification_live.ex:530
#, elixir-autogen, elixir-format
msgid "Resume"
msgstr "Возобновить"
@ -5162,12 +5162,12 @@ msgstr "Возобновить"
msgid "Run deletion preflight"
msgstr "Проверить возможность удаления"
#: lib/who_need_help_web/live/notification_live.ex:758
#: lib/who_need_help_web/live/notification_live.ex:765
#, elixir-autogen, elixir-format
msgid "Sat"
msgstr "Сб"
#: lib/who_need_help_web/live/notification_live.ex:472
#: lib/who_need_help_web/live/notification_live.ex:479
#, elixir-autogen, elixir-format
msgid "Save preferences"
msgstr "Сохранить настройки"
@ -5182,7 +5182,7 @@ msgstr "Передаваемая геопозиция"
msgid "Stay available without refreshing"
msgstr "Оставайтесь на связи без обновления страницы"
#: lib/who_need_help_web/live/notification_live.ex:759
#: lib/who_need_help_web/live/notification_live.ex:766
#, elixir-autogen, elixir-format
msgid "Sun"
msgstr "Вс"
@ -5192,7 +5192,7 @@ msgstr "Вс"
msgid "The linked account no longer exists."
msgstr "Связанный аккаунт больше не существует."
#: lib/who_need_help_web/live/notification_live.ex:600
#: lib/who_need_help_web/live/notification_live.ex:607
#, elixir-autogen, elixir-format
msgid "The map is unavailable. Enter coordinates manually."
msgstr "Карта недоступна. Введите координаты вручную."
@ -5207,7 +5207,7 @@ msgstr "Предыдущий помощник вышел. Заявка снов
msgid "The request is not linked to an account."
msgstr "Заявка не связана с аккаунтом."
#: lib/who_need_help_web/live/notification_live.ex:483
#: lib/who_need_help_web/live/notification_live.ex:490
#, elixir-autogen, elixir-format
msgid "The saved center is private and is used only to find matching requests."
msgstr "Сохранённый центр скрыт и используется только для поиска подходящих заявок."
@ -5223,27 +5223,27 @@ msgstr "Это показатели активности, а не проверк
msgid "This is not an account-deletion case."
msgstr "Это обращение не связано с удалением аккаунта."
#: lib/who_need_help_web/live/notification_live.ex:756
#: lib/who_need_help_web/live/notification_live.ex:763
#, elixir-autogen, elixir-format
msgid "Thu"
msgstr "Чт"
#: lib/who_need_help_web/live/notification_live.ex:754
#: lib/who_need_help_web/live/notification_live.ex:761
#, elixir-autogen, elixir-format
msgid "Tue"
msgstr "Вт"
#: lib/who_need_help_web/live/notification_live.ex:470
#: lib/who_need_help_web/live/notification_live.ex:477
#, elixir-autogen, elixir-format
msgid "Until"
msgstr "До"
#: lib/who_need_help_web/live/notification_live.ex:558
#: lib/who_need_help_web/live/notification_live.ex:565
#, elixir-autogen, elixir-format
msgid "Urgent medicine near home"
msgstr "Срочная доставка лекарства рядом с домом"
#: lib/who_need_help_web/live/notification_live.ex:466
#: lib/who_need_help_web/live/notification_live.ex:473
#, elixir-autogen, elixir-format
msgid "Use quiet hours"
msgstr "Использовать тихие часы"
@ -5253,18 +5253,18 @@ msgstr "Использовать тихие часы"
msgid "Verify the requester contact first."
msgstr "Сначала подтвердите контакт автора заявки."
#: lib/who_need_help_web/live/notification_live.ex:385
#: lib/who_need_help_web/live/notification_live.ex:392
#, elixir-autogen, elixir-format
msgid "Web Push keys are not configured in this local environment yet."
msgstr "Ключи Web Push ещё не настроены в этом локальном окружении."
#: lib/who_need_help_web/live/notification_live.ex:357
#: lib/who_need_help_web/live/notification_live.ex:397
#: lib/who_need_help_web/live/notification_live.ex:362
#: lib/who_need_help_web/live/notification_live.ex:404
#, elixir-autogen, elixir-format
msgid "Web browser"
msgstr "Веб-браузер"
#: lib/who_need_help_web/live/notification_live.ex:755
#: lib/who_need_help_web/live/notification_live.ex:762
#, elixir-autogen, elixir-format
msgid "Wed"
msgstr "Ср"
@ -5281,12 +5281,12 @@ msgstr "Вы приняли эту заявку. Безопасно соглас
msgid "You left this match. The request is open for another helper if time remains."
msgstr "Вы вышли из этой помощи. Если время не истекло, заявку сможет принять другой помощник."
#: lib/who_need_help_web/live/notification_live.ex:383
#: lib/who_need_help_web/live/notification_live.ex:390
#, elixir-autogen, elixir-format
msgid "Your browser will ask for notification permission."
msgstr "Браузер запросит разрешение на уведомления."
#: lib/who_need_help_web/live/notification_live.ex:481
#: lib/who_need_help_web/live/notification_live.ex:488
#, elixir-autogen, elixir-format
msgid "Your nearby alerts"
msgstr "Ваши уведомления поблизости"
@ -6472,7 +6472,7 @@ msgstr "Маркер на карте"
msgid "Notification permission was not granted."
msgstr "Разрешение на уведомления не предоставлено."
#: lib/who_need_help_web/live/notification_live.ex:351
#: lib/who_need_help_web/live/notification_live.ex:356
#, elixir-autogen, elixir-format
msgid "Push keys changed. Enable notifications to reconnect this device securely."
msgstr "Ключи push-уведомлений изменились. Включите уведомления, чтобы безопасно переподключить это устройство."
@ -6487,17 +6487,17 @@ msgstr "Push-уведомления отключены для этого уст
msgid "Push notifications are enabled on this Android device."
msgstr "Push-уведомления включены на этом Android-устройстве."
#: lib/who_need_help_web/live/notification_live.ex:348
#: lib/who_need_help_web/live/notification_live.ex:353
#, elixir-autogen, elixir-format
msgid "Push notifications are enabled on this device."
msgstr "Push-уведомления включены на этом устройстве."
#: lib/who_need_help_web/live/notification_live.ex:346
#: lib/who_need_help_web/live/notification_live.ex:351
#, elixir-autogen, elixir-format
msgid "Push notifications are unavailable in this browser."
msgstr "Push-уведомления недоступны в этом браузере."
#: lib/who_need_help_web/live/notification_live.ex:349
#: lib/who_need_help_web/live/notification_live.ex:354
#, elixir-autogen, elixir-format
msgid "Push notifications could not be enabled."
msgstr "Не удалось включить push-уведомления."
@ -6507,7 +6507,7 @@ msgstr "Не удалось включить push-уведомления."
msgid "The Android push token could not be saved. Please try again."
msgstr "Не удалось сохранить push-токен Android. Повторите попытку."
#: lib/who_need_help_web/live/notification_live.ex:354
#: lib/who_need_help_web/live/notification_live.ex:359
#, elixir-autogen, elixir-format
msgid "This browser has a push subscription. Enable it to reconnect this device."
msgstr "В этом браузере есть push-подписка. Включите уведомления, чтобы переподключить это устройство."
@ -7948,12 +7948,12 @@ msgstr "Сообщения, связанные с безопасностью д
msgid "Keep this status link private. Important status changes may also be sent to the verified contact email."
msgstr "Не передавайте эту ссылку статуса другим. Важные изменения статуса также могут быть отправлены на подтверждённый контактный email."
#: lib/who_need_help_web/live/notification_live.ex:792
#: lib/who_need_help_web/live/notification_live.ex:799
#, elixir-autogen, elixir-format
msgid "Nearby alerts always appear in your inbox. Push is optional."
msgstr "Оповещения о помощи поблизости всегда появляются во входящих. Push-уведомления можно включить по желанию."
#: lib/who_need_help_web/live/notification_live.ex:459
#: lib/who_need_help_web/live/notification_live.ex:466
#, elixir-autogen, elixir-format
msgid "Nearby updates use the in-app inbox and optional push. Email digests are not enabled yet."
msgstr "Для обновлений поблизости используются входящие в приложении и необязательные push-уведомления. Email-дайджесты пока не включены."
@ -7977,3 +7977,18 @@ msgstr "Войти, чтобы помочь"
#, elixir-autogen, elixir-format
msgid "Child safety or sexual exploitation"
msgstr "Безопасность детей или сексуальная эксплуатация"
#: lib/who_need_help_web/live/notification_live.ex:383
#, elixir-autogen, elixir-format
msgid "Android notifications enabled"
msgstr "Уведомления Android включены"
#: lib/who_need_help_web/live/notification_live.ex:346
#, elixir-autogen, elixir-format
msgid "Android will request notification permission and securely register this device."
msgstr "Android запросит разрешение на уведомления и безопасно зарегистрирует это устройство."
#: lib/who_need_help_web/live/notification_live.ex:382
#, elixir-autogen, elixir-format
msgid "Enable Android notifications"
msgstr "Включить уведомления Android"

View File

@ -41,7 +41,7 @@ msgstr "Спроба повторного з’єднання"
#: lib/who_need_help_web/components/layouts.ex:235
#: lib/who_need_help_web/live/moderation_live.ex:494
#: lib/who_need_help_web/live/notification_live.ex:699
#: lib/who_need_help_web/live/notification_live.ex:706
#, elixir-autogen, elixir-format
msgid "Categories"
msgstr "Категорії"
@ -213,7 +213,7 @@ msgstr "Центр дій"
#: lib/who_need_help_web/live/admin_user_live.ex:188
#: lib/who_need_help_web/live/admin_users_live.ex:125
#: lib/who_need_help_web/live/admin_users_live.ex:185
#: lib/who_need_help_web/live/notification_live.ex:512
#: lib/who_need_help_web/live/notification_live.ex:519
#, elixir-autogen, elixir-format
msgid "Active"
msgstr "Активний"
@ -958,7 +958,7 @@ msgid "Join requests close"
msgstr "Приймання заявок завершується"
#: lib/who_need_help_web/live/activity_live/new.ex:486
#: lib/who_need_help_web/live/notification_live.ex:667
#: lib/who_need_help_web/live/notification_live.ex:674
#: lib/who_need_help_web/live/request_live/new.ex:668
#, elixir-autogen, elixir-format
msgid "Latitude"
@ -1013,7 +1013,7 @@ msgid "Logged out successfully."
msgstr "Ви успішно вийшли."
#: lib/who_need_help_web/live/activity_live/new.ex:500
#: lib/who_need_help_web/live/notification_live.ex:681
#: lib/who_need_help_web/live/notification_live.ex:688
#: lib/who_need_help_web/live/request_live/new.ex:682
#, elixir-autogen, elixir-format
msgid "Longitude"
@ -1204,7 +1204,7 @@ msgstr ""
msgid "Not for emergencies"
msgstr "Не для екстрених ситуацій"
#: lib/who_need_help_web/live/notification_live.ex:729
#: lib/who_need_help_web/live/notification_live.ex:736
#: lib/who_need_help_web/live/request_live/index.ex:443
#: lib/who_need_help_web/live/request_live/index.ex:444
#: lib/who_need_help_web/live/request_live/index.ex:555
@ -1706,7 +1706,7 @@ msgstr "Зберегти пароль"
msgid "Save profile"
msgstr "Зберегти профіль"
#: lib/who_need_help_web/live/notification_live.ex:731
#: lib/who_need_help_web/live/notification_live.ex:738
#: lib/who_need_help_web/live/request_live/index.ex:447
#: lib/who_need_help_web/live/request_live/index.ex:448
#: lib/who_need_help_web/live/request_live/index.ex:557
@ -2033,7 +2033,7 @@ msgstr "Ця заявка недоступна."
msgid "To see sent emails, visit"
msgstr "Щоб переглянути надіслані листи, відкрийте"
#: lib/who_need_help_web/live/notification_live.ex:730
#: lib/who_need_help_web/live/notification_live.ex:737
#: lib/who_need_help_web/live/request_live/index.ex:445
#: lib/who_need_help_web/live/request_live/index.ex:446
#: lib/who_need_help_web/live/request_live/index.ex:556
@ -2105,7 +2105,7 @@ msgstr "Розблокувати цього користувача"
msgid "Unique people"
msgstr "Унікальні люди"
#: lib/who_need_help_web/live/notification_live.ex:724
#: lib/who_need_help_web/live/notification_live.ex:731
#: lib/who_need_help_web/live/request_live/index.ex:552
#: lib/who_need_help_web/live/request_live/new.ex:447
#, elixir-autogen, elixir-format
@ -4035,7 +4035,7 @@ msgid "Date"
msgstr "Дата"
#: lib/who_need_help_web/live/activity_live/new.ex:478
#: lib/who_need_help_web/live/notification_live.ex:664
#: lib/who_need_help_web/live/notification_live.ex:671
#: lib/who_need_help_web/live/request_live/new.ex:660
#, elixir-autogen, elixir-format
msgid "Enter coordinates manually"
@ -4123,14 +4123,14 @@ msgid "In 3 hours"
msgstr "За 3 години"
#: lib/who_need_help_web/live/activity_live/new.ex:354
#: lib/who_need_help_web/live/notification_live.ex:582
#: lib/who_need_help_web/live/notification_live.ex:589
#: lib/who_need_help_web/live/request_live/new.ex:484
#, elixir-autogen, elixir-format
msgid "Location is unavailable in this browser."
msgstr "Геопозиція недоступна в цьому браузері."
#: lib/who_need_help_web/live/activity_live/new.ex:356
#: lib/who_need_help_web/live/notification_live.ex:584
#: lib/who_need_help_web/live/notification_live.ex:591
#: lib/who_need_help_web/live/request_live/new.ex:486
#, elixir-autogen, elixir-format
msgid "Location permission was denied."
@ -4384,7 +4384,7 @@ msgid "Use another email"
msgstr "Використати іншу пошту"
#: lib/who_need_help_web/live/activity_live/new.ex:435
#: lib/who_need_help_web/live/notification_live.ex:617
#: lib/who_need_help_web/live/notification_live.ex:624
#: lib/who_need_help_web/live/request_live/new.ex:595
#, elixir-autogen, elixir-format
msgid "Use my location"
@ -4629,8 +4629,8 @@ msgstr "Разом"
#: lib/who_need_help_web/live/activity_live/new.ex:355
#: lib/who_need_help_web/live/activity_live/new.ex:414
#: lib/who_need_help_web/live/activity_live/show.ex:546
#: lib/who_need_help_web/live/notification_live.ex:583
#: lib/who_need_help_web/live/notification_live.ex:602
#: lib/who_need_help_web/live/notification_live.ex:590
#: lib/who_need_help_web/live/notification_live.ex:609
#: lib/who_need_help_web/live/request_live/index.ex:784
#: lib/who_need_help_web/live/request_live/new.ex:485
#: lib/who_need_help_web/live/request_live/new.ex:563
@ -4672,7 +4672,7 @@ msgstr[0] "%{count} непрочитане сповіщення"
msgstr[1] "%{count} непрочитані сповіщення"
msgstr[2] "%{count} непрочитаних сповіщень"
#: lib/who_need_help_web/live/notification_live.ex:456
#: lib/who_need_help_web/live/notification_live.ex:463
#, elixir-autogen, elixir-format
msgid "Acceptance, arrival, completion, and cancellation"
msgstr "Прийняття, прибуття, завершення та скасування"
@ -4682,22 +4682,22 @@ msgstr "Прийняття, прибуття, завершення та скас
msgid "Active or unresolved product state must be handled first."
msgstr "Спочатку потрібно опрацювати активний або незавершений стан."
#: lib/who_need_help_web/live/notification_live.ex:578
#: lib/who_need_help_web/live/notification_live.ex:585
#, elixir-autogen, elixir-format
msgid "Alert area selected."
msgstr "Область сповіщення вибрано."
#: lib/who_need_help_web/live/notification_live.ex:577
#: lib/who_need_help_web/live/notification_live.ex:584
#, elixir-autogen, elixir-format
msgid "Alert area selected. Drag the pin to move it."
msgstr "Область сповіщення вибрано. Перетягніть маркер, щоб її перемістити."
#: lib/who_need_help_web/live/notification_live.ex:557
#: lib/who_need_help_web/live/notification_live.ex:564
#, elixir-autogen, elixir-format
msgid "Alert name"
msgstr "Назва сповіщення"
#: lib/who_need_help_web/live/notification_live.ex:620
#: lib/who_need_help_web/live/notification_live.ex:627
#, elixir-autogen, elixir-format
msgid "Alert radius"
msgstr "Радіус сповіщення"
@ -4708,7 +4708,7 @@ msgstr "Радіус сповіщення"
msgid "Alert was not found."
msgstr "Сповіщення не знайдено."
#: lib/who_need_help_web/live/notification_live.ex:441
#: lib/who_need_help_web/live/notification_live.ex:448
#, elixir-autogen, elixir-format
msgid "Allow push notifications"
msgstr "Дозволити push-сповіщення"
@ -4718,17 +4718,17 @@ msgstr "Дозволити push-сповіщення"
msgid "Arrival saved. The requester has been notified."
msgstr "Прибуття збережено. Автор заявки отримав сповіщення."
#: lib/who_need_help_web/live/notification_live.ex:748
#: lib/who_need_help_web/live/notification_live.ex:755
#, elixir-autogen, elixir-format
msgid "Available days"
msgstr "Доступні дні"
#: lib/who_need_help_web/live/notification_live.ex:781
#: lib/who_need_help_web/live/notification_live.ex:788
#, elixir-autogen, elixir-format
msgid "Available from (optional)"
msgstr "Доступний з (необов’язково)"
#: lib/who_need_help_web/live/notification_live.ex:786
#: lib/who_need_help_web/live/notification_live.ex:793
#, elixir-autogen, elixir-format
msgid "Available until (optional)"
msgstr "Доступний до (необов’язково)"
@ -4749,18 +4749,18 @@ msgstr "Скасування завершить цю допомогу й зуп
msgid "Cancelling…"
msgstr "Скасовуємо…"
#: lib/who_need_help_web/live/notification_live.ex:545
#: lib/who_need_help_web/live/notification_live.ex:552
#, elixir-autogen, elixir-format
msgid "Choose an area, categories, urgency, and the times when you are available."
msgstr "Виберіть область, категорії, терміновість і час, коли ви доступні."
#: lib/who_need_help_web/live/notification_live.ex:576
#: lib/who_need_help_web/live/notification_live.ex:657
#: lib/who_need_help_web/live/notification_live.ex:583
#: lib/who_need_help_web/live/notification_live.ex:664
#, elixir-autogen, elixir-format
msgid "Choose the private center of your alert area."
msgstr "Виберіть прихований центр області сповіщення."
#: lib/who_need_help_web/live/notification_live.ex:607
#: lib/who_need_help_web/live/notification_live.ex:614
#, elixir-autogen, elixir-format
msgid "Click the map or drag the green pin to move your private alert area"
msgstr "Натисніть на карту або перетягніть зелений маркер, щоб перемістити приховану область сповіщення"
@ -4786,32 +4786,32 @@ msgstr "Підтвердити вихід"
msgid "Count"
msgstr "Кількість"
#: lib/who_need_help_web/live/notification_live.ex:543
#: lib/who_need_help_web/live/notification_live.ex:550
#, elixir-autogen, elixir-format
msgid "Create a nearby alert"
msgstr "Створити сповіщення поблизу"
#: lib/who_need_help_web/live/notification_live.ex:803
#: lib/who_need_help_web/live/notification_live.ex:810
#, elixir-autogen, elixir-format
msgid "Create nearby alert"
msgstr "Створити сповіщення"
#: lib/who_need_help_web/live/notification_live.ex:532
#: lib/who_need_help_web/live/notification_live.ex:539
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr "Видалити"
#: lib/who_need_help_web/live/notification_live.ex:529
#: lib/who_need_help_web/live/notification_live.ex:536
#, elixir-autogen, elixir-format
msgid "Delete this nearby alert?"
msgstr "Видалити це сповіщення поблизу?"
#: lib/who_need_help_web/live/notification_live.ex:790
#: lib/who_need_help_web/live/notification_live.ex:797
#, elixir-autogen, elixir-format
msgid "Delivery channels"
msgstr "Канали доставки"
#: lib/who_need_help_web/live/notification_live.ex:360
#: lib/who_need_help_web/live/notification_live.ex:365
#, elixir-autogen, elixir-format
msgid "Delivery channels and quiet hours"
msgstr "Канали доставки й тихі години"
@ -4827,7 +4827,7 @@ msgstr "Пристрій не знайдено."
msgid "Dimension"
msgstr "Параметр"
#: lib/who_need_help_web/live/notification_live.ex:414
#: lib/who_need_help_web/live/notification_live.ex:421
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr "Вимкнути"
@ -4837,14 +4837,14 @@ msgstr "Вимкнути"
msgid "Download my data"
msgstr "Завантажити мої дані"
#: lib/who_need_help_web/live/notification_live.ex:579
#: lib/who_need_help_web/live/notification_live.ex:580
#: lib/who_need_help_web/live/notification_live.ex:586
#: lib/who_need_help_web/live/notification_live.ex:587
#, elixir-autogen, elixir-format
msgid "Drag to move the alert area"
msgstr "Перетягніть, щоб перемістити область сповіщення"
#: lib/who_need_help_web/live/notification_live.ex:375
#: lib/who_need_help_web/live/notification_live.ex:378
#: lib/who_need_help_web/live/notification_live.ex:380
#: lib/who_need_help_web/live/notification_live.ex:385
#, elixir-autogen, elixir-format
msgid "Enable push on this device"
msgstr "Увімкнути push на цьому пристрої"
@ -4854,12 +4854,12 @@ msgstr "Увімкнути push на цьому пристрої"
msgid "Follow request updates and choose which nearby needs should reach this device."
msgstr "Стежте за оновленнями заявок і вибирайте, які прохання поблизу отримувати на цьому пристрої."
#: lib/who_need_help_web/live/notification_live.ex:757
#: lib/who_need_help_web/live/notification_live.ex:764
#, elixir-autogen, elixir-format
msgid "Fri"
msgstr "Пт"
#: lib/who_need_help_web/live/notification_live.ex:469
#: lib/who_need_help_web/live/notification_live.ex:476
#: lib/who_need_help_web/live/product_analytics_live.ex:220
#, elixir-autogen, elixir-format
msgid "From"
@ -4911,7 +4911,7 @@ msgstr "Помічник прибув"
msgid "Helper's live location"
msgstr "Поточна геопозиція помічника"
#: lib/who_need_help_web/live/notification_live.ex:563
#: lib/who_need_help_web/live/notification_live.ex:570
#, elixir-autogen, elixir-format
msgid "Home area"
msgstr "Район дому"
@ -4932,7 +4932,7 @@ msgstr "Я прибув"
msgid "Inbox"
msgstr "Вхідні"
#: lib/who_need_help_web/live/notification_live.ex:701
#: lib/who_need_help_web/live/notification_live.ex:708
#, elixir-autogen, elixir-format
msgid "Leave every category unchecked to receive all matching requests."
msgstr "Не вибирайте категорій, щоб отримувати всі відповідні заявки."
@ -4973,7 +4973,7 @@ msgstr "Позначити все прочитаним"
msgid "Metric"
msgstr "Показник"
#: lib/who_need_help_web/live/notification_live.ex:753
#: lib/who_need_help_web/live/notification_live.ex:760
#, elixir-autogen, elixir-format
msgid "Mon"
msgstr "Пн"
@ -4988,7 +4988,7 @@ msgstr "Сповіщення поблизу створено."
msgid "Nearby alert deleted."
msgstr "Сповіщення поблизу видалено."
#: lib/who_need_help_web/live/notification_live.ex:446
#: lib/who_need_help_web/live/notification_live.ex:453
#: lib/who_need_help_web/live/request_live/index.ex:508
#, elixir-autogen, elixir-format
msgid "Nearby requests"
@ -4999,7 +4999,7 @@ msgstr "Заявки поблизу"
msgid "New help request nearby"
msgstr "Нова заявка на допомогу поблизу"
#: lib/who_need_help_web/live/notification_live.ex:451
#: lib/who_need_help_web/live/notification_live.ex:458
#, elixir-autogen, elixir-format
msgid "New private messages"
msgstr "Нові приватні повідомлення"
@ -5009,7 +5009,7 @@ msgstr "Нові приватні повідомлення"
msgid "No active product workflow was found."
msgstr "Активний користувацький процес не знайдено."
#: lib/who_need_help_web/live/notification_live.ex:487
#: lib/who_need_help_web/live/notification_live.ex:494
#, elixir-autogen, elixir-format
msgid "No nearby alerts configured yet."
msgstr "Сповіщення поблизу ще не налаштовано."
@ -5031,7 +5031,7 @@ msgstr "Примітка (необов’язково)"
msgid "Notification preferences saved."
msgstr "Налаштування сповіщень збережено."
#: lib/who_need_help_web/live/notification_live.ex:362
#: lib/who_need_help_web/live/notification_live.ex:367
#, elixir-autogen, elixir-format
msgid "Notification text never contains chat messages or exact coordinates."
msgstr "Текст сповіщення ніколи не містить повідомлень із чату або точних координат."
@ -5055,17 +5055,17 @@ msgstr "Сповіщення та допомога поблизу"
msgid "Operations"
msgstr "Операції"
#: lib/who_need_help_web/live/notification_live.ex:646
#: lib/who_need_help_web/live/notification_live.ex:653
#, elixir-autogen, elixir-format
msgid "Other users never see this saved point."
msgstr "Інші користувачі ніколи не бачать цю збережену точку."
#: lib/who_need_help_web/live/notification_live.ex:523
#: lib/who_need_help_web/live/notification_live.ex:530
#, elixir-autogen, elixir-format
msgid "Pause"
msgstr "Призупинити"
#: lib/who_need_help_web/live/notification_live.ex:512
#: lib/who_need_help_web/live/notification_live.ex:519
#, elixir-autogen, elixir-format
msgid "Paused"
msgstr "Призупинено"
@ -5075,12 +5075,12 @@ msgstr "Призупинено"
msgid "Plans changed"
msgstr "Плани змінилися"
#: lib/who_need_help_web/live/notification_live.ex:562
#: lib/who_need_help_web/live/notification_live.ex:569
#, elixir-autogen, elixir-format
msgid "Private area label"
msgstr "Особиста назва області"
#: lib/who_need_help_web/live/notification_live.ex:645
#: lib/who_need_help_web/live/notification_live.ex:652
#, elixir-autogen, elixir-format
msgid "Private matching center"
msgstr "Прихований центр пошуку"
@ -5096,17 +5096,17 @@ msgstr "Аналітика продукту"
msgid "Progress"
msgstr "Хід виконання"
#: lib/who_need_help_web/live/notification_live.ex:503
#: lib/who_need_help_web/live/notification_live.ex:510
#, elixir-autogen, elixir-format
msgid "Push"
msgstr "Push"
#: lib/who_need_help_web/live/notification_live.ex:376
#: lib/who_need_help_web/live/notification_live.ex:381
#, elixir-autogen, elixir-format
msgid "Push enabled on this device"
msgstr "Push увімкнено на цьому пристрої"
#: lib/who_need_help_web/live/notification_live.ex:798
#: lib/who_need_help_web/live/notification_live.ex:805
#, elixir-autogen, elixir-format
msgid "Push notification"
msgstr "Push-сповіщення"
@ -5146,7 +5146,7 @@ msgstr "Не вдається зв’язатися з автором заявк
msgid "Requester's live location"
msgstr "Поточна геопозиція автора заявки"
#: lib/who_need_help_web/live/notification_live.ex:523
#: lib/who_need_help_web/live/notification_live.ex:530
#, elixir-autogen, elixir-format
msgid "Resume"
msgstr "Відновити"
@ -5156,12 +5156,12 @@ msgstr "Відновити"
msgid "Run deletion preflight"
msgstr "Перевірити можливість видалення"
#: lib/who_need_help_web/live/notification_live.ex:758
#: lib/who_need_help_web/live/notification_live.ex:765
#, elixir-autogen, elixir-format
msgid "Sat"
msgstr "Сб"
#: lib/who_need_help_web/live/notification_live.ex:472
#: lib/who_need_help_web/live/notification_live.ex:479
#, elixir-autogen, elixir-format
msgid "Save preferences"
msgstr "Зберегти налаштування"
@ -5176,7 +5176,7 @@ msgstr "Геопозиція, що передається"
msgid "Stay available without refreshing"
msgstr "Залишайтеся на зв’язку без оновлення сторінки"
#: lib/who_need_help_web/live/notification_live.ex:759
#: lib/who_need_help_web/live/notification_live.ex:766
#, elixir-autogen, elixir-format
msgid "Sun"
msgstr "Нд"
@ -5186,7 +5186,7 @@ msgstr "Нд"
msgid "The linked account no longer exists."
msgstr "Пов’язаний обліковий запис більше не існує."
#: lib/who_need_help_web/live/notification_live.ex:600
#: lib/who_need_help_web/live/notification_live.ex:607
#, elixir-autogen, elixir-format
msgid "The map is unavailable. Enter coordinates manually."
msgstr "Карта недоступна. Введіть координати вручну."
@ -5201,7 +5201,7 @@ msgstr "Попередній помічник вийшов. Заявку зно
msgid "The request is not linked to an account."
msgstr "Заявка не пов’язана з обліковим записом."
#: lib/who_need_help_web/live/notification_live.ex:483
#: lib/who_need_help_web/live/notification_live.ex:490
#, elixir-autogen, elixir-format
msgid "The saved center is private and is used only to find matching requests."
msgstr "Збережений центр прихований і використовується лише для пошуку відповідних заявок."
@ -5217,27 +5217,27 @@ msgstr "Це показники активності, а не перевірка
msgid "This is not an account-deletion case."
msgstr "Це звернення не пов’язане з видаленням облікового запису."
#: lib/who_need_help_web/live/notification_live.ex:756
#: lib/who_need_help_web/live/notification_live.ex:763
#, elixir-autogen, elixir-format
msgid "Thu"
msgstr "Чт"
#: lib/who_need_help_web/live/notification_live.ex:754
#: lib/who_need_help_web/live/notification_live.ex:761
#, elixir-autogen, elixir-format
msgid "Tue"
msgstr "Вт"
#: lib/who_need_help_web/live/notification_live.ex:470
#: lib/who_need_help_web/live/notification_live.ex:477
#, elixir-autogen, elixir-format
msgid "Until"
msgstr "До"
#: lib/who_need_help_web/live/notification_live.ex:558
#: lib/who_need_help_web/live/notification_live.ex:565
#, elixir-autogen, elixir-format
msgid "Urgent medicine near home"
msgstr "Термінова доставка ліків поруч із домом"
#: lib/who_need_help_web/live/notification_live.ex:466
#: lib/who_need_help_web/live/notification_live.ex:473
#, elixir-autogen, elixir-format
msgid "Use quiet hours"
msgstr "Використовувати тихі години"
@ -5247,18 +5247,18 @@ msgstr "Використовувати тихі години"
msgid "Verify the requester contact first."
msgstr "Спочатку підтвердьте контакт автора заявки."
#: lib/who_need_help_web/live/notification_live.ex:385
#: lib/who_need_help_web/live/notification_live.ex:392
#, elixir-autogen, elixir-format
msgid "Web Push keys are not configured in this local environment yet."
msgstr "Ключі Web Push ще не налаштовано в цьому локальному середовищі."
#: lib/who_need_help_web/live/notification_live.ex:357
#: lib/who_need_help_web/live/notification_live.ex:397
#: lib/who_need_help_web/live/notification_live.ex:362
#: lib/who_need_help_web/live/notification_live.ex:404
#, elixir-autogen, elixir-format
msgid "Web browser"
msgstr "Веббраузер"
#: lib/who_need_help_web/live/notification_live.ex:755
#: lib/who_need_help_web/live/notification_live.ex:762
#, elixir-autogen, elixir-format
msgid "Wed"
msgstr "Ср"
@ -5275,12 +5275,12 @@ msgstr "Ви прийняли цю заявку. Безпечно узгодьт
msgid "You left this match. The request is open for another helper if time remains."
msgstr "Ви вийшли з цієї допомоги. Якщо час не минув, заявку зможе прийняти інший помічник."
#: lib/who_need_help_web/live/notification_live.ex:383
#: lib/who_need_help_web/live/notification_live.ex:390
#, elixir-autogen, elixir-format
msgid "Your browser will ask for notification permission."
msgstr "Браузер попросить дозвіл на сповіщення."
#: lib/who_need_help_web/live/notification_live.ex:481
#: lib/who_need_help_web/live/notification_live.ex:488
#, elixir-autogen, elixir-format
msgid "Your nearby alerts"
msgstr "Ваші сповіщення поблизу"
@ -6466,7 +6466,7 @@ msgstr "Маркер на карті"
msgid "Notification permission was not granted."
msgstr "Дозвіл на сповіщення не надано."
#: lib/who_need_help_web/live/notification_live.ex:351
#: lib/who_need_help_web/live/notification_live.ex:356
#, elixir-autogen, elixir-format
msgid "Push keys changed. Enable notifications to reconnect this device securely."
msgstr "Ключі push-сповіщень змінилися. Увімкніть сповіщення, щоб безпечно перепідключити цей пристрій."
@ -6481,17 +6481,17 @@ msgstr "Push-сповіщення вимкнено для цього прист
msgid "Push notifications are enabled on this Android device."
msgstr "Push-сповіщення ввімкнено на цьому Android-пристрої."
#: lib/who_need_help_web/live/notification_live.ex:348
#: lib/who_need_help_web/live/notification_live.ex:353
#, elixir-autogen, elixir-format
msgid "Push notifications are enabled on this device."
msgstr "Push-сповіщення ввімкнено на цьому пристрої."
#: lib/who_need_help_web/live/notification_live.ex:346
#: lib/who_need_help_web/live/notification_live.ex:351
#, elixir-autogen, elixir-format
msgid "Push notifications are unavailable in this browser."
msgstr "Push-сповіщення недоступні в цьому браузері."
#: lib/who_need_help_web/live/notification_live.ex:349
#: lib/who_need_help_web/live/notification_live.ex:354
#, elixir-autogen, elixir-format
msgid "Push notifications could not be enabled."
msgstr "Не вдалося ввімкнути push-сповіщення."
@ -6501,7 +6501,7 @@ msgstr "Не вдалося ввімкнути push-сповіщення."
msgid "The Android push token could not be saved. Please try again."
msgstr "Не вдалося зберегти push-токен Android. Повторіть спробу."
#: lib/who_need_help_web/live/notification_live.ex:354
#: lib/who_need_help_web/live/notification_live.ex:359
#, elixir-autogen, elixir-format
msgid "This browser has a push subscription. Enable it to reconnect this device."
msgstr "У цьому браузері є push-підписка. Увімкніть сповіщення, щоб перепідключити цей пристрій."
@ -7942,12 +7942,12 @@ msgstr "Повідомлення, пов’язані з безпекою діт
msgid "Keep this status link private. Important status changes may also be sent to the verified contact email."
msgstr "Не передавайте це посилання статусу іншим. Важливі зміни статусу також можуть надсилатися на підтверджений контактний email."
#: lib/who_need_help_web/live/notification_live.ex:792
#: lib/who_need_help_web/live/notification_live.ex:799
#, elixir-autogen, elixir-format
msgid "Nearby alerts always appear in your inbox. Push is optional."
msgstr "Сповіщення про допомогу поблизу завжди з’являються у вхідних. Push-сповіщення можна ввімкнути за бажанням."
#: lib/who_need_help_web/live/notification_live.ex:459
#: lib/who_need_help_web/live/notification_live.ex:466
#, elixir-autogen, elixir-format
msgid "Nearby updates use the in-app inbox and optional push. Email digests are not enabled yet."
msgstr "Для оновлень поблизу використовуються вхідні в застосунку та необов’язкові push-сповіщення. Email-дайджести поки не ввімкнені."
@ -7971,3 +7971,18 @@ msgstr "Увійти, щоб допомогти"
#, elixir-autogen, elixir-format
msgid "Child safety or sexual exploitation"
msgstr "Безпека дітей або сексуальна експлуатація"
#: lib/who_need_help_web/live/notification_live.ex:383
#, elixir-autogen, elixir-format
msgid "Android notifications enabled"
msgstr "Сповіщення Android увімкнено"
#: lib/who_need_help_web/live/notification_live.ex:346
#, elixir-autogen, elixir-format
msgid "Android will request notification permission and securely register this device."
msgstr "Android запросить дозвіл на сповіщення та безпечно зареєструє цей пристрій."
#: lib/who_need_help_web/live/notification_live.ex:382
#, elixir-autogen, elixir-format
msgid "Enable Android notifications"
msgstr "Увімкнути сповіщення Android"

View File

@ -103,10 +103,15 @@ defmodule WhoNeedHelpWeb.MutualAidLiveTest do
html = render(view)
assert html =~ ~s(data-enable-label="Enable push on this device")
assert html =~ ~s(data-enabled-label="Push enabled on this device")
assert html =~ ~s(data-native-enable-label="Enable Android notifications")
assert html =~ ~s(data-native-enabled-label="Android notifications enabled")
assert html =~
~s(data-status-android-enabled="Push notifications are enabled on this Android device.")
assert html =~
~s(data-status-android-prompt="Android will request notification permission and securely register this device.")
assert html =~
~s(data-status-browser-unavailable="Push notifications are unavailable in this browser.")