add more i18n testing and fix error page and dashboard

This commit is contained in:
Graham McIntire 2025-07-08 12:16:00 -05:00
parent 7593330d36
commit 9053f0840a
No known key found for this signature in database
8 changed files with 1127 additions and 110 deletions

View file

@ -26,10 +26,9 @@ config :aprsme, AprsmeWeb.Endpoint,
pubsub_server: Aprsme.PubSub,
live_view: [signing_salt: "ees098qG"]
# Configure Gettext
# Configure Gettext with supported locales from AprsmeWeb.Gettext module
config :aprsme, AprsmeWeb.Gettext,
locales: ~w(en es de),
locales: ~w(en es de fr),
default_locale: "en"
# Configure Oban for background jobs
@ -79,6 +78,8 @@ config :esbuild,
env: %{"NODE_PATH" => Path.expand("../deps", __DIR__)}
]
config :gettext, :plural_forms, GettextPseudolocalize.Plural
# Configures Elixir's Logger
config :logger, :console,
format: "$time $metadata[$level] $message\n",

View file

@ -9,8 +9,15 @@ defmodule AprsmeWeb.LocaleHook do
@supported_locales ~w(en es de fr)
def on_mount(:set_locale, params, session, socket) do
locale = get_locale_from_session(session) || "en"
Gettext.put_locale(AprsmeWeb.Gettext, locale)
# Only set locale in production to allow seeing "xx" placeholders in dev
locale =
if Mix.env() == :prod do
get_locale_from_session(session) || "en"
end
if locale do
Gettext.put_locale(AprsmeWeb.Gettext, locale)
end
# Set map_page assign based on route
map_page = is_map_page?(params)

View file

@ -72,7 +72,6 @@ defmodule AprsmeWeb.Router do
scope "/dev" do
pipe_through :browser
# live_dashboard "/dashboard", metrics: AprsmeWeb.Telemetry
forward "/mailbox", Plug.Swoosh.MailboxPreview
end
end
@ -94,10 +93,14 @@ defmodule AprsmeWeb.Router do
end
scope "/", AprsmeWeb do
pipe_through [:browser, :require_authenticated_user]
pipe_through :browser
live_dashboard "/dashboard", metrics: AprsmeWeb.Telemetry
error_tracker_dashboard("/errors")
end
scope "/", AprsmeWeb do
pipe_through [:browser, :require_authenticated_user]
live_session :require_authenticated_user,
on_mount: [{AprsmeWeb.UserAuth, :ensure_authenticated}, {AprsmeWeb.LocaleHook, :set_locale}] do

14
mix.exs
View file

@ -4,7 +4,7 @@ defmodule Aprsme.MixProject do
def project do
[
app: :aprsme,
version: get_version(),
version: "0.2.0",
elixir: "~> 1.17",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
@ -96,7 +96,8 @@ defmodule Aprsme.MixProject do
{:styler, "~> 1.4.2", only: [:dev, :test], runtime: false},
{:httpoison, "~> 1.8"},
{:hammer, "~> 6.0"},
{:cachex, "~> 3.4"}
{:cachex, "~> 3.4"},
{:gettext_pseudolocalize, "~> 0.1"}
]
end
@ -127,13 +128,4 @@ defmodule Aprsme.MixProject do
{:aprs, github: "aprsme/aprs", branch: "main"}
end
end
# Get version from PARSER_GIT_HASH environment variable or fall back to default
defp get_version do
case System.get_env("PARSER_GIT_HASH") do
nil -> "0.1.0"
"unknown" -> "0.1.0"
hash -> "0.0.0-#{hash}"
end
end
end

View file

@ -29,6 +29,7 @@
"geo_postgis": {:hex, :geo_postgis, "3.7.1", "614f25b42334a615bd54bb09c22030b1aac7bac8f829bd823ab1faccf093a324", [:mix], [{:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:geo, "~> 3.6 or ~> 4.0", [hex: :geo, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0 or ~> 4.0 or ~> 5.0 or ~> 6.0", [hex: :poison, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: false]}], "hexpm", "c20d823c600d35b7fe9ddd5be03052bb7136c57d6f1775dbd46871545e405280"},
"geocalc": {:hex, :geocalc, "0.8.5", "b9886679e44c323e5b72dcd90a64f834d775d2600af0b656ea9f07ccdacaa5a6", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "3870c25c78513ec0456b69324c2be1af2202961002e81fb659559e3db162c802"},
"gettext": {:hex, :gettext, "0.26.2", "5978aa7b21fada6deabf1f6341ddba50bc69c999e812211903b169799208f2a8", [:mix], [{:expo, "~> 0.5.1 or ~> 1.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "aa978504bcf76511efdc22d580ba08e2279caab1066b76bb9aa81c4a1e0a32a5"},
"gettext_pseudolocalize": {:hex, :gettext_pseudolocalize, "0.1.1", "0bdc33fa12cb2297fe020a44f5548c10ac789e325638ba4ac206119f2aa78caa", [:mix], [{:expo, "~> 1.1", [hex: :expo, repo: "hexpm", optional: false]}, {:gettext, "~> 0.26", [hex: :gettext, repo: "hexpm", optional: false]}], "hexpm", "5a2d6e1732ae61d742a2ecddbf03776de3fe4a5394dce98611355b11a9f5cf49"},
"glob_ex": {:hex, :glob_ex, "0.1.11", "cb50d3f1ef53f6ca04d6252c7fde09fd7a1cf63387714fe96f340a1349e62c93", [:mix], [], "hexpm", "342729363056e3145e61766b416769984c329e4378f1d558b63e341020525de4"},
"gridsquare": {:hex, :gridsquare, "0.2.0", "c556a5b5101db89743264b0d728601023035863487bbe36e9e50e93839adb4d7", [:mix], [], "hexpm", "dbf0dbb484681a1e97819b0667bfeaa8c8a48cf06a54bf96a8f26ee4158ad31a"},
"hackney": {:hex, :hackney, "1.24.1", "f5205a125bba6ed4587f9db3cc7c729d11316fa8f215d3e57ed1c067a9703fa9", [:rebar3], [{:certifi, "~> 2.15.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~> 6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~> 1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.4", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.4.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "f4a7392a0b53d8bbc3eb855bdcc919cd677358e65b2afd3840b5b3690c4c8a39"},

View file

@ -11,7 +11,7 @@
msgid ""
msgstr ""
#: lib/aprsme_web/components/core_components.ex:570
#: lib/aprsme_web/components/core_components.ex:574
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
@ -27,7 +27,7 @@ msgstr ""
msgid "%{count} days"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:324
#: lib/aprsme_web/live/status_live/index.ex:364
#, elixir-autogen, elixir-format
msgid "%{count} days ago"
msgstr ""
@ -37,7 +37,7 @@ msgstr ""
msgid "%{count} hours"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:323
#: lib/aprsme_web/live/status_live/index.ex:363
#, elixir-autogen, elixir-format
msgid "%{count} hours ago"
msgstr ""
@ -47,7 +47,7 @@ msgstr ""
msgid "%{count} minutes"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:322
#: lib/aprsme_web/live/status_live/index.ex:362
#, elixir-autogen, elixir-format
msgid "%{count} minutes ago"
msgstr ""
@ -57,7 +57,7 @@ msgstr ""
msgid "%{count} months"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:321
#: lib/aprsme_web/live/status_live/index.ex:361
#, elixir-autogen, elixir-format
msgid "%{count} seconds ago"
msgstr ""
@ -67,17 +67,17 @@ msgstr ""
msgid "%{count} years"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:477
#: lib/aprsme_web/live/info_live/show.ex:529
#, elixir-autogen, elixir-format
msgid "%{element} (Digipeater)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:481
#: lib/aprsme_web/live/info_live/show.ex:533
#, elixir-autogen, elixir-format
msgid "%{element} (Station)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:485
#: lib/aprsme_web/live/info_live/show.ex:537
#, elixir-autogen, elixir-format
msgid "%{element} (Unknown)"
msgstr ""
@ -107,17 +107,17 @@ msgstr ""
msgid "1 year"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:80
#: lib/aprsme_web/live/status_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "APRS-IS Connection"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:68
#: lib/aprsme_web/live/status_live/index.ex:104
#, elixir-autogen, elixir-format
msgid "APRS-IS Connection Issue"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:44
#: lib/aprsme_web/live/status_live/index.ex:46
#, elixir-autogen, elixir-format
msgid "APRS.me System Status"
msgstr ""
@ -153,27 +153,27 @@ msgstr ""
msgid "Bad request"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:89
#: lib/aprsme_web/live/status_live/index.ex:125
#, elixir-autogen, elixir-format
msgid "Connected"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:113
#: lib/aprsme_web/live/status_live/index.ex:149
#, elixir-autogen, elixir-format
msgid "Connected Since:"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:201
#: lib/aprsme_web/live/status_live/index.ex:237
#, elixir-autogen, elixir-format
msgid "Connection Health:"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:94
#: lib/aprsme_web/live/status_live/index.ex:130
#, elixir-autogen, elixir-format
msgid "Disconnected"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:308
#: lib/aprsme_web/live/status_live/index.ex:348
#, elixir-autogen, elixir-format
msgid "Disconnected - Connection issues detected"
msgstr ""
@ -188,12 +188,12 @@ msgstr ""
msgid "Error Type"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:312
#: lib/aprsme_web/live/status_live/index.ex:352
#, elixir-autogen, elixir-format
msgid "Excellent - Long-term stable connection"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:135
#: lib/aprsme_web/live/status_live/index.ex:171
#, elixir-autogen, elixir-format
msgid "Filter:"
msgstr ""
@ -203,7 +203,7 @@ msgstr ""
msgid "Forbidden"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:310
#: lib/aprsme_web/live/status_live/index.ex:350
#, elixir-autogen, elixir-format
msgid "Good - Connection stable for less than 1 hour"
msgstr ""
@ -213,17 +213,17 @@ msgstr ""
msgid "Internal server error"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:176
#: lib/aprsme_web/live/status_live/index.ex:212
#, elixir-autogen, elixir-format
msgid "Last Packet:"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:46
#: lib/aprsme_web/live/status_live/index.ex:48
#, elixir-autogen, elixir-format
msgid "Last updated:"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:107
#: lib/aprsme_web/live/status_live/index.ex:143
#, elixir-autogen, elixir-format
msgid "Login ID:"
msgstr ""
@ -238,48 +238,48 @@ msgstr ""
msgid "No error message"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:182
#: lib/aprsme_web/live/status_live/index.ex:218
#, elixir-autogen, elixir-format
msgid "None"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:119
#: lib/aprsme_web/live/status_live/index.ex:276
#: lib/aprsme_web/live/status_live/index.ex:155
#: lib/aprsme_web/live/status_live/index.ex:316
#, elixir-autogen, elixir-format
msgid "Not connected"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:145
#: lib/aprsme_web/live/status_live/index.ex:181
#, elixir-autogen, elixir-format
msgid "Packet Statistics"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:167
#: lib/aprsme_web/live/status_live/index.ex:203
#, elixir-autogen, elixir-format
msgid "Packets/Min:"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:158
#: lib/aprsme_web/live/status_live/index.ex:194
#, elixir-autogen, elixir-format
msgid "Packets/Sec:"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:305
#: lib/aprsme_web/live/info_live/show.ex:357
#, elixir-autogen, elixir-format
msgid "RELAY (Relay digipeater)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:308
#: lib/aprsme_web/live/info_live/show.ex:360
#, elixir-autogen, elixir-format
msgid "RELAY digipeater (%{element})"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:306
#: lib/aprsme_web/live/info_live/show.ex:358
#, elixir-autogen, elixir-format
msgid "RELAY-1 (Relay digipeater, 1 hop)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:307
#: lib/aprsme_web/live/info_live/show.ex:359
#, elixir-autogen, elixir-format
msgid "RELAY-2 (Relay digipeater, 2 hops)"
msgstr ""
@ -291,7 +291,7 @@ msgstr ""
msgid "Raw Packet"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:309
#: lib/aprsme_web/live/status_live/index.ex:349
#, elixir-autogen, elixir-format
msgid "Recently connected - Monitoring stability"
msgstr ""
@ -308,82 +308,82 @@ msgstr ""
msgid "Resource not found"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:100
#: lib/aprsme_web/live/status_live/index.ex:136
#, elixir-autogen, elixir-format
msgid "Server:"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:85
#: lib/aprsme_web/live/status_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Status:"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:189
#: lib/aprsme_web/live/status_live/index.ex:225
#, elixir-autogen, elixir-format
msgid "Stored Packets:"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:470
#: lib/aprsme_web/live/info_live/show.ex:522
#, elixir-autogen, elixir-format
msgid "TCPIP (Internet gateway)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:472
#: lib/aprsme_web/live/info_live/show.ex:524
#, elixir-autogen, elixir-format
msgid "TCPIP gateway (%{element})"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:471
#: lib/aprsme_web/live/info_live/show.ex:523
#, elixir-autogen, elixir-format
msgid "TCPIP* (Internet gateway, no forward)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:299
#: lib/aprsme_web/live/info_live/show.ex:351
#, elixir-autogen, elixir-format
msgid "TRACE digipeater (%{element})"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:292
#: lib/aprsme_web/live/info_live/show.ex:344
#, elixir-autogen, elixir-format
msgid "TRACE1-1 (Trace digipeater, 1 hop)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:293
#: lib/aprsme_web/live/info_live/show.ex:345
#, elixir-autogen, elixir-format
msgid "TRACE2-1 (Trace digipeater, 2 hops)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:294
#: lib/aprsme_web/live/info_live/show.ex:346
#, elixir-autogen, elixir-format
msgid "TRACE3-1 (Trace digipeater, 3 hops)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:295
#: lib/aprsme_web/live/info_live/show.ex:347
#, elixir-autogen, elixir-format
msgid "TRACE4-1 (Trace digipeater, 4 hops)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:296
#: lib/aprsme_web/live/info_live/show.ex:348
#, elixir-autogen, elixir-format
msgid "TRACE5-1 (Trace digipeater, 5 hops)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:297
#: lib/aprsme_web/live/info_live/show.ex:349
#, elixir-autogen, elixir-format
msgid "TRACE6-1 (Trace digipeater, 6 hops)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:298
#: lib/aprsme_web/live/info_live/show.ex:350
#, elixir-autogen, elixir-format
msgid "TRACE7-1 (Trace digipeater, 7 hops)"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:70
#: lib/aprsme_web/live/status_live/index.ex:106
#, elixir-autogen, elixir-format
msgid "The system is currently disconnected from the APRS-IS network. This may be due to network issues or server maintenance."
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:149
#: lib/aprsme_web/live/status_live/index.ex:185
#, elixir-autogen, elixir-format
msgid "Total Packets:"
msgstr ""
@ -398,16 +398,20 @@ msgstr ""
msgid "Unauthorized access"
msgstr ""
#: lib/aprsme/device_identification.ex:56
#: lib/aprsme/device_identification.ex:57
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:50
#: lib/aprsme_web/live/info_live/show.ex:202
#: lib/aprsme_web/live/info_live/show.ex:208
#: lib/aprsme_web/live/info_live/show.html.heex:143
#: lib/aprsme_web/live/info_live/show.html.heex:209
#: lib/aprsme_web/live/info_live/show.html.heex:358
#: lib/aprsme_web/live/info_live/show.html.heex:462
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:92
#, elixir-autogen, elixir-format
msgid "Unknown"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:313
#: lib/aprsme_web/live/status_live/index.ex:353
#, elixir-autogen, elixir-format
msgid "Unknown status"
msgstr ""
@ -422,7 +426,7 @@ msgstr ""
msgid "Updating..."
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:125
#: lib/aprsme_web/live/status_live/index.ex:161
#, elixir-autogen, elixir-format
msgid "Uptime:"
msgstr ""
@ -432,57 +436,57 @@ msgstr ""
msgid "Validation failed"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:311
#: lib/aprsme_web/live/status_live/index.ex:351
#, elixir-autogen, elixir-format
msgid "Very good - Connection stable for less than 1 day"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:286
#: lib/aprsme_web/live/info_live/show.ex:338
#, elixir-autogen, elixir-format
msgid "WIDE digipeater (%{element})"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:277
#: lib/aprsme_web/live/info_live/show.ex:329
#, elixir-autogen, elixir-format
msgid "WIDE1-1 (Wide area digipeater, 1 hop)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:284
#: lib/aprsme_web/live/info_live/show.ex:336
#, elixir-autogen, elixir-format
msgid "WIDE1-2 (Wide area digipeater, 1 hop, 2nd attempt)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:278
#: lib/aprsme_web/live/info_live/show.ex:330
#, elixir-autogen, elixir-format
msgid "WIDE2-1 (Wide area digipeater, 2 hops)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:285
#: lib/aprsme_web/live/info_live/show.ex:337
#, elixir-autogen, elixir-format
msgid "WIDE2-2 (Wide area digipeater, 2 hops, 2nd attempt)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:279
#: lib/aprsme_web/live/info_live/show.ex:331
#, elixir-autogen, elixir-format
msgid "WIDE3-1 (Wide area digipeater, 3 hops)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:280
#: lib/aprsme_web/live/info_live/show.ex:332
#, elixir-autogen, elixir-format
msgid "WIDE4-1 (Wide area digipeater, 4 hops)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:281
#: lib/aprsme_web/live/info_live/show.ex:333
#, elixir-autogen, elixir-format
msgid "WIDE5-1 (Wide area digipeater, 5 hops)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:282
#: lib/aprsme_web/live/info_live/show.ex:334
#, elixir-autogen, elixir-format
msgid "WIDE6-1 (Wide area digipeater, 6 hops)"
msgstr ""
#: lib/aprsme_web/live/info_live/show.ex:283
#: lib/aprsme_web/live/info_live/show.ex:335
#, elixir-autogen, elixir-format
msgid "WIDE7-1 (WIDE area digipeater, 7 hops)"
msgstr ""
@ -594,7 +598,7 @@ msgid "Built with Modern Technologies"
msgstr ""
#: lib/aprsme_web/live/info_live/show.html.heex:270
#: lib/aprsme_web/live/info_live/show.html.heex:388
#: lib/aprsme_web/live/info_live/show.html.heex:398
#, elixir-autogen, elixir-format
msgid "Callsign"
msgstr ""
@ -625,7 +629,7 @@ msgstr ""
msgid "Device Information"
msgstr ""
#: lib/aprsme_web/live/info_live/show.html.heex:391
#: lib/aprsme_web/live/info_live/show.html.heex:401
#, elixir-autogen, elixir-format
msgid "Distance & Course"
msgstr ""
@ -651,7 +655,7 @@ msgid "Join Our Community"
msgstr ""
#: lib/aprsme_web/live/info_live/show.html.heex:276
#: lib/aprsme_web/live/info_live/show.html.heex:394
#: lib/aprsme_web/live/info_live/show.html.heex:404
#, elixir-autogen, elixir-format
msgid "Last Heard"
msgstr ""
@ -676,7 +680,7 @@ msgstr ""
msgid "Longitude"
msgstr ""
#: lib/aprsme_web/live/info_live/show.html.heex:469
#: lib/aprsme_web/live/info_live/show.html.heex:488
#, elixir-autogen, elixir-format
msgid "No data available"
msgstr ""
@ -686,7 +690,7 @@ msgstr ""
msgid "No packets"
msgstr ""
#: lib/aprsme_web/live/info_live/show.html.heex:471
#: lib/aprsme_web/live/info_live/show.html.heex:490
#, elixir-autogen, elixir-format
msgid "No recent packet data available for this callsign."
msgstr ""
@ -727,7 +731,7 @@ msgstr ""
msgid "Speed"
msgstr ""
#: lib/aprsme_web/live/info_live/show.html.heex:380
#: lib/aprsme_web/live/info_live/show.html.heex:390
#, elixir-autogen, elixir-format
msgid "Stations Near Current Position"
msgstr ""
@ -779,70 +783,70 @@ msgstr ""
msgid "mb"
msgstr ""
#: lib/aprsme_web/components/core_components.ex:760
#: lib/aprsme_web/components/core_components.ex:768
#: lib/aprsme_web/components/core_components.ex:764
#: lib/aprsme_web/components/core_components.ex:772
#, elixir-autogen, elixir-format
msgid "About"
msgstr ""
#: lib/aprsme_web/components/core_components.ex:755
#: lib/aprsme_web/components/core_components.ex:765
#: lib/aprsme_web/components/core_components.ex:759
#: lib/aprsme_web/components/core_components.ex:769
#, elixir-autogen, elixir-format
msgid "Home"
msgstr ""
#: lib/aprsme_web/live/map_live/index.ex:794
#: lib/aprsme_web/live/map_live/index.ex:797
#: lib/aprsme_web/live/map_live/index.ex:800
#: lib/aprsme_web/live/map_live/index.ex:803
#: lib/aprsme_web/live/map_live/index.ex:806
#: lib/aprsme_web/live/map_live/index.ex:849
#: lib/aprsme_web/live/map_live/index.ex:852
#: lib/aprsme_web/live/map_live/index.ex:855
#: lib/aprsme_web/live/map_live/index.ex:858
#: lib/aprsme_web/live/map_live/index.ex:861
#: lib/aprsme_web/live/map_live/index.ex:807
#: lib/aprsme_web/live/map_live/index.ex:810
#: lib/aprsme_web/live/map_live/index.ex:813
#: lib/aprsme_web/live/map_live/index.ex:816
#: lib/aprsme_web/live/map_live/index.ex:819
#: lib/aprsme_web/live/map_live/index.ex:862
#: lib/aprsme_web/live/map_live/index.ex:865
#: lib/aprsme_web/live/map_live/index.ex:868
#: lib/aprsme_web/live/map_live/index.ex:871
#: lib/aprsme_web/live/map_live/index.ex:874
#, elixir-autogen, elixir-format
msgid "1 Hour"
msgid_plural "%{count} Hours"
msgstr[0] ""
msgstr[1] ""
#: lib/aprsme_web/live/map_live/index.ex:809
#: lib/aprsme_web/live/map_live/index.ex:822
#, elixir-autogen, elixir-format
msgid "1 Week"
msgstr ""
#: lib/aprsme_web/live/map_live/index.ex:758
#: lib/aprsme_web/live/map_live/index.ex:771
#, elixir-autogen, elixir-format
msgid "Enter callsign..."
msgstr ""
#: lib/aprsme_web/live/map_live/index.ex:841
#: lib/aprsme_web/live/map_live/index.ex:854
#, elixir-autogen, elixir-format
msgid "Historical Data"
msgstr ""
#: lib/aprsme_web/live/map_live/index.ex:909
#: lib/aprsme_web/live/map_live/index.ex:922
#, elixir-autogen, elixir-format
msgid "Last Deploy"
msgstr ""
#: lib/aprsme_web/live/map_live/index.ex:893
#: lib/aprsme_web/live/map_live/index.ex:906
#, elixir-autogen, elixir-format
msgid "Navigation"
msgstr ""
#: lib/aprsme_web/live/map_live/index.ex:765
#: lib/aprsme_web/live/map_live/index.ex:778
#, elixir-autogen, elixir-format
msgid "Search"
msgstr ""
#: lib/aprsme_web/live/map_live/index.ex:750
#: lib/aprsme_web/live/map_live/index.ex:763
#, elixir-autogen, elixir-format
msgid "Search Callsign"
msgstr ""
#: lib/aprsme_web/live/map_live/index.ex:786
#: lib/aprsme_web/live/map_live/index.ex:799
#, elixir-autogen, elixir-format
msgid "Trail Duration"
msgstr ""
@ -877,7 +881,17 @@ msgstr ""
msgid "Wind Speed (%{unit})"
msgstr ""
#: lib/aprsme_web/live/about_live.html.heex:6
#: lib/aprsme_web/live/status_live/index.ex:66
#, elixir-autogen, elixir-format
msgid "about_main"
msgid "APRS Library:"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:55
#, elixir-autogen, elixir-format
msgid "Application Information"
msgstr ""
#: lib/aprsme_web/live/status_live/index.ex:60
#, elixir-autogen, elixir-format
msgid "Version:"
msgstr ""

View file

@ -0,0 +1,897 @@
## "msgid"s in this file come from POT (.pot) files.
###
### Do not add, change, or remove "msgid"s manually here as
### they're tied to the ones in the corresponding POT file
### (with the same domain).
###
### Use "mix gettext.extract --merge" or "mix gettext.merge"
### to merge POT files into PO files.
msgid ""
msgstr ""
"Language: xx\n"
"Plural-Forms: nplurals=2\n"
#: lib/aprsme_web/components/core_components.ex:574
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr "⟦Åċťíøñš~~~~~~~~⟧"
#: lib/aprsme_web/components/core_components.ex:117
#: lib/aprsme_web/components/core_components.ex:202
#, elixir-autogen, elixir-format
msgid "close"
msgstr "⟦ċĺøšê~~~~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:23
#, elixir-autogen, elixir-format
msgid "%{count} days"
msgstr "⟦%{count} đàÿš~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:364
#, elixir-autogen, elixir-format
msgid "%{count} days ago"
msgstr "⟦%{count} đàÿš àğø~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:21
#, elixir-autogen, elixir-format
msgid "%{count} hours"
msgstr "⟦%{count} ȟøüȓš~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:363
#, elixir-autogen, elixir-format
msgid "%{count} hours ago"
msgstr "⟦%{count} ȟøüȓš àğø~~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:19
#, elixir-autogen, elixir-format
msgid "%{count} minutes"
msgstr "⟦%{count} ɱíñüťêš~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:362
#, elixir-autogen, elixir-format
msgid "%{count} minutes ago"
msgstr "⟦%{count} ɱíñüťêš àğø~~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:26
#, elixir-autogen, elixir-format
msgid "%{count} months"
msgstr "⟦%{count} ɱøñťȟš~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:361
#, elixir-autogen, elixir-format
msgid "%{count} seconds ago"
msgstr "⟦%{count} šêċøñđš àğø~~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:29
#, elixir-autogen, elixir-format
msgid "%{count} years"
msgstr "⟦%{count} ÿêàȓš~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:529
#, elixir-autogen, elixir-format
msgid "%{element} (Digipeater)"
msgstr "⟦%{element} (Đíğíƥêàťêȓ)~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:533
#, elixir-autogen, elixir-format
msgid "%{element} (Station)"
msgstr "⟦%{element} (Șťàťíøñ)~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:537
#, elixir-autogen, elixir-format
msgid "%{element} (Unknown)"
msgstr "⟦%{element} (Üñǩñøẁñ)~~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:22
#, elixir-autogen, elixir-format
msgid "1 day"
msgstr "⟦𝟙 đàÿ~~~~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:20
#, elixir-autogen, elixir-format
msgid "1 hour"
msgstr "⟦𝟙 ȟøüȓ~~~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:18
#, elixir-autogen, elixir-format
msgid "1 minute"
msgstr "⟦𝟙 ɱíñüťê~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:24
#, elixir-autogen, elixir-format
msgid "1 month"
msgstr "⟦𝟙 ɱøñťȟ~~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:28
#, elixir-autogen, elixir-format
msgid "1 year"
msgstr "⟦𝟙 ÿêàȓ~~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "APRS-IS Connection"
msgstr "⟦ÅƤȒȘ-İȘ Ċøññêċťíøñ~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:104
#, elixir-autogen, elixir-format
msgid "APRS-IS Connection Issue"
msgstr "⟦ÅƤȒȘ-İȘ Ċøññêċťíøñ İššüê~~~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:46
#, elixir-autogen, elixir-format
msgid "APRS.me System Status"
msgstr "⟦ÅƤȒȘ.ɱê Șÿšťêɱ Șťàťüš~~~~~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/fallback_controller.ex:70
#, elixir-autogen, elixir-format
msgid "Access forbidden"
msgstr "⟦Åċċêšš ƒøȓƀíđđêñ~~~~~~~⟧"
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:85
#, elixir-autogen, elixir-format
msgid "All packets are parsing successfully!"
msgstr "⟦Åĺĺ ƥàċǩêťš àȓê ƥàȓšíñğ šüċċêššƒüĺĺÿ!~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/fallback_controller.ex:72
#, elixir-autogen, elixir-format
msgid "An error occurred: %{reason}"
msgstr "⟦Åñ êȓȓøȓ øċċüȓȓêđ: %{reason}~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:40
#, elixir-autogen, elixir-format
msgid "Attempted At"
msgstr "⟦Åťťêɱƥťêđ Åť~~~~~⟧"
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:9
#, elixir-autogen, elixir-format
msgid "Auto-refreshes every 5 seconds"
msgstr "⟦Åüťø-ȓêƒȓêšȟêš êṽêȓÿ 𝟝 šêċøñđš~~~~~~~~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/fallback_controller.ex:71
#: lib/aprsme_web/controllers/api/v1/json/error_json.ex:46
#, elixir-autogen, elixir-format
msgid "Bad request"
msgstr "⟦Ɓàđ ȓêʠüêšť~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:125
#, elixir-autogen, elixir-format
msgid "Connected"
msgstr "⟦Ċøññêċťêđ~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:149
#, elixir-autogen, elixir-format
msgid "Connected Since:"
msgstr "⟦Ċøññêċťêđ Șíñċê:~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:237
#, elixir-autogen, elixir-format
msgid "Connection Health:"
msgstr "⟦Ċøññêċťíøñ Ȟêàĺťȟ:~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:130
#, elixir-autogen, elixir-format
msgid "Disconnected"
msgstr "⟦Đíšċøññêċťêđ~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:348
#, elixir-autogen, elixir-format
msgid "Disconnected - Connection issues detected"
msgstr "⟦Đíšċøññêċťêđ - Ċøññêċťíøñ íššüêš đêťêċťêđ~~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:53
#, elixir-autogen, elixir-format
msgid "Error Message"
msgstr "⟦Ȅȓȓøȓ Ṁêššàğê~~~~~~⟧"
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:48
#, elixir-autogen, elixir-format
msgid "Error Type"
msgstr "⟦Ȅȓȓøȓ Ťÿƥê~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:352
#, elixir-autogen, elixir-format
msgid "Excellent - Long-term stable connection"
msgstr "⟦Ȅẋċêĺĺêñť - Ĺøñğ-ťêȓɱ šťàƀĺê ċøññêċťíøñ~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:171
#, elixir-autogen, elixir-format
msgid "Filter:"
msgstr "⟦Ḟíĺťêȓ:~~~~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/json/error_json.ex:64
#, elixir-autogen, elixir-format
msgid "Forbidden"
msgstr "⟦Ḟøȓƀíđđêñ~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:350
#, elixir-autogen, elixir-format
msgid "Good - Connection stable for less than 1 hour"
msgstr "⟦Ġøøđ - Ċøññêċťíøñ šťàƀĺê ƒøȓ ĺêšš ťȟàñ 𝟙 ȟøüȓ~~~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/json/error_json.ex:28
#, elixir-autogen, elixir-format
msgid "Internal server error"
msgstr "⟦İñťêȓñàĺ šêȓṽêȓ êȓȓøȓ~~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:212
#, elixir-autogen, elixir-format
msgid "Last Packet:"
msgstr "⟦Ĺàšť Ƥàċǩêť:~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:48
#, elixir-autogen, elixir-format
msgid "Last updated:"
msgstr "⟦Ĺàšť üƥđàťêđ:~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:143
#, elixir-autogen, elixir-format
msgid "Login ID:"
msgstr "⟦Ĺøğíñ İĐ:~~~~~~⟧"
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:84
#, elixir-autogen, elixir-format
msgid "No bad packets"
msgstr "⟦Ñø ƀàđ ƥàċǩêťš~~~~~~⟧"
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:55
#, elixir-autogen, elixir-format
msgid "No error message"
msgstr "⟦Ñø êȓȓøȓ ɱêššàğê~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:218
#, elixir-autogen, elixir-format
msgid "None"
msgstr "⟦Ñøñê~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:155
#: lib/aprsme_web/live/status_live/index.ex:316
#, elixir-autogen, elixir-format
msgid "Not connected"
msgstr "⟦Ñøť ċøññêċťêđ~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:181
#, elixir-autogen, elixir-format
msgid "Packet Statistics"
msgstr "⟦Ƥàċǩêť Șťàťíšťíċš~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:203
#, elixir-autogen, elixir-format
msgid "Packets/Min:"
msgstr "⟦Ƥàċǩêťš/Ṁíñ:~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:194
#, elixir-autogen, elixir-format
msgid "Packets/Sec:"
msgstr "⟦Ƥàċǩêťš/Șêċ:~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:357
#, elixir-autogen, elixir-format
msgid "RELAY (Relay digipeater)"
msgstr "⟦ȒȄĹÅẎ (Ȓêĺàÿ đíğíƥêàťêȓ)~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:360
#, elixir-autogen, elixir-format
msgid "RELAY digipeater (%{element})"
msgstr "⟦ȒȄĹÅẎ đíğíƥêàťêȓ (%{element})~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:358
#, elixir-autogen, elixir-format
msgid "RELAY-1 (Relay digipeater, 1 hop)"
msgstr "⟦ȒȄĹÅẎ-𝟙 (Ȓêĺàÿ đíğíƥêàťêȓ, 𝟙 ȟøƥ)~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:359
#, elixir-autogen, elixir-format
msgid "RELAY-2 (Relay digipeater, 2 hops)"
msgstr "⟦ȒȄĹÅẎ-𝟚 (Ȓêĺàÿ đíğíƥêàťêȓ, 𝟚 ȟøƥš)~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:58
#: lib/aprsme_web/live/info_live/show.html.heex:227
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:149
#, elixir-autogen, elixir-format
msgid "Raw Packet"
msgstr "⟦Ȓàẁ Ƥàċǩêť~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:349
#, elixir-autogen, elixir-format
msgid "Recently connected - Monitoring stability"
msgstr "⟦Ȓêċêñťĺÿ ċøññêċťêđ - Ṁøñíťøȓíñğ šťàƀíĺíťÿ~~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/fallback_controller.ex:57
#: lib/aprsme_web/controllers/api/v1/json/error_json.ex:73
#, elixir-autogen, elixir-format
msgid "Request timeout"
msgstr "⟦Ȓêʠüêšť ťíɱêøüť~~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/fallback_controller.ex:68
#: lib/aprsme_web/controllers/api/v1/json/error_json.ex:19
#, elixir-autogen, elixir-format
msgid "Resource not found"
msgstr "⟦Ȓêšøüȓċê ñøť ƒøüñđ~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:136
#, elixir-autogen, elixir-format
msgid "Server:"
msgstr "⟦Șêȓṽêȓ:~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Status:"
msgstr "⟦Șťàťüš:~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:225
#, elixir-autogen, elixir-format
msgid "Stored Packets:"
msgstr "⟦Șťøȓêđ Ƥàċǩêťš:~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:522
#, elixir-autogen, elixir-format
msgid "TCPIP (Internet gateway)"
msgstr "⟦ŤĊƤİƤ (İñťêȓñêť ğàťêẁàÿ)~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:524
#, elixir-autogen, elixir-format
msgid "TCPIP gateway (%{element})"
msgstr "⟦ŤĊƤİƤ ğàťêẁàÿ (%{element})~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:523
#, elixir-autogen, elixir-format
msgid "TCPIP* (Internet gateway, no forward)"
msgstr "⟦ŤĊƤİƤ* (İñťêȓñêť ğàťêẁàÿ, ñø ƒøȓẁàȓđ)~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:351
#, elixir-autogen, elixir-format
msgid "TRACE digipeater (%{element})"
msgstr "⟦ŤȒÅĊȄ đíğíƥêàťêȓ (%{element})~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:344
#, elixir-autogen, elixir-format
msgid "TRACE1-1 (Trace digipeater, 1 hop)"
msgstr "⟦ŤȒÅĊȄ𝟙-𝟙 (Ťȓàċê đíğíƥêàťêȓ, 𝟙 ȟøƥ)~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:345
#, elixir-autogen, elixir-format
msgid "TRACE2-1 (Trace digipeater, 2 hops)"
msgstr "⟦ŤȒÅĊȄ𝟚-𝟙 (Ťȓàċê đíğíƥêàťêȓ, 𝟚 ȟøƥš)~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:346
#, elixir-autogen, elixir-format
msgid "TRACE3-1 (Trace digipeater, 3 hops)"
msgstr "⟦ŤȒÅĊȄ𝟛-𝟙 (Ťȓàċê đíğíƥêàťêȓ, 𝟛 ȟøƥš)~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:347
#, elixir-autogen, elixir-format
msgid "TRACE4-1 (Trace digipeater, 4 hops)"
msgstr "⟦ŤȒÅĊȄ𝟜-𝟙 (Ťȓàċê đíğíƥêàťêȓ, 𝟜 ȟøƥš)~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:348
#, elixir-autogen, elixir-format
msgid "TRACE5-1 (Trace digipeater, 5 hops)"
msgstr "⟦ŤȒÅĊȄ𝟝-𝟙 (Ťȓàċê đíğíƥêàťêȓ, 𝟝 ȟøƥš)~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:349
#, elixir-autogen, elixir-format
msgid "TRACE6-1 (Trace digipeater, 6 hops)"
msgstr "⟦ŤȒÅĊȄ𝟞-𝟙 (Ťȓàċê đíğíƥêàťêȓ, 𝟞 ȟøƥš)~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:350
#, elixir-autogen, elixir-format
msgid "TRACE7-1 (Trace digipeater, 7 hops)"
msgstr "⟦ŤȒÅĊȄ𝟟-𝟙 (Ťȓàċê đíğíƥêàťêȓ, 𝟟 ȟøƥš)~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:106
#, elixir-autogen, elixir-format
msgid "The system is currently disconnected from the APRS-IS network. This may be due to network issues or server maintenance."
msgstr "⟦Ťȟê šÿšťêɱ íš ċüȓȓêñťĺÿ đíšċøññêċťêđ ƒȓøɱ ťȟê ÅƤȒȘ-İȘ ñêťẁøȓǩ. Ťȟíš ɱàÿ ƀê đüê ťø ñêťẁøȓǩ íššüêš øȓ šêȓṽêȓ ɱàíñťêñàñċê.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:185
#, elixir-autogen, elixir-format
msgid "Total Packets:"
msgstr "⟦Ťøťàĺ Ƥàċǩêťš:~~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/json/error_json.ex:55
#, elixir-autogen, elixir-format
msgid "Unauthorized"
msgstr "⟦Üñàüťȟøȓíźêđ~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/fallback_controller.ex:69
#, elixir-autogen, elixir-format
msgid "Unauthorized access"
msgstr "⟦Üñàüťȟøȓíźêđ àċċêšš~~~~~~~~⟧"
#: lib/aprsme/device_identification.ex:57
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:50
#: lib/aprsme_web/live/info_live/show.ex:202
#: lib/aprsme_web/live/info_live/show.ex:208
#: lib/aprsme_web/live/info_live/show.html.heex:143
#: lib/aprsme_web/live/info_live/show.html.heex:209
#: lib/aprsme_web/live/info_live/show.html.heex:358
#: lib/aprsme_web/live/info_live/show.html.heex:462
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:92
#, elixir-autogen, elixir-format
msgid "Unknown"
msgstr "⟦Üñǩñøẁñ~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:353
#, elixir-autogen, elixir-format
msgid "Unknown status"
msgstr "⟦Üñǩñøẁñ šťàťüš~~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/json/error_json.ex:37
#, elixir-autogen, elixir-format
msgid "Unprocessable entity"
msgstr "⟦Üñƥȓøċêššàƀĺê êñťíťÿ~~~~~~~~⟧"
#: lib/aprsme_web/live/bad_packets_live/index.html.heex:35
#, elixir-autogen, elixir-format
msgid "Updating..."
msgstr "⟦Üƥđàťíñğ...~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:161
#, elixir-autogen, elixir-format
msgid "Uptime:"
msgstr "⟦Üƥťíɱê:~~~~~~~~⟧"
#: lib/aprsme_web/controllers/api/v1/json/changeset_json.ex:13
#, elixir-autogen, elixir-format
msgid "Validation failed"
msgstr "⟦Ṽàĺíđàťíøñ ƒàíĺêđ~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:351
#, elixir-autogen, elixir-format
msgid "Very good - Connection stable for less than 1 day"
msgstr "⟦Ṽêȓÿ ğøøđ - Ċøññêċťíøñ šťàƀĺê ƒøȓ ĺêšš ťȟàñ 𝟙 đàÿ~~~~~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:338
#, elixir-autogen, elixir-format
msgid "WIDE digipeater (%{element})"
msgstr "⟦ẂİĐȄ đíğíƥêàťêȓ (%{element})~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:329
#, elixir-autogen, elixir-format
msgid "WIDE1-1 (Wide area digipeater, 1 hop)"
msgstr "⟦ẂİĐȄ𝟙-𝟙 (Ẃíđê àȓêà đíğíƥêàťêȓ, 𝟙 ȟøƥ)~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:336
#, elixir-autogen, elixir-format
msgid "WIDE1-2 (Wide area digipeater, 1 hop, 2nd attempt)"
msgstr "⟦ẂİĐȄ𝟙-𝟚 (Ẃíđê àȓêà đíğíƥêàťêȓ, 𝟙 ȟøƥ, 𝟚ñđ àťťêɱƥť)~~~~~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:330
#, elixir-autogen, elixir-format
msgid "WIDE2-1 (Wide area digipeater, 2 hops)"
msgstr "⟦ẂİĐȄ𝟚-𝟙 (Ẃíđê àȓêà đíğíƥêàťêȓ, 𝟚 ȟøƥš)~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:337
#, elixir-autogen, elixir-format
msgid "WIDE2-2 (Wide area digipeater, 2 hops, 2nd attempt)"
msgstr "⟦ẂİĐȄ𝟚-𝟚 (Ẃíđê àȓêà đíğíƥêàťêȓ, 𝟚 ȟøƥš, 𝟚ñđ àťťêɱƥť)~~~~~~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:331
#, elixir-autogen, elixir-format
msgid "WIDE3-1 (Wide area digipeater, 3 hops)"
msgstr "⟦ẂİĐȄ𝟛-𝟙 (Ẃíđê àȓêà đíğíƥêàťêȓ, 𝟛 ȟøƥš)~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:332
#, elixir-autogen, elixir-format
msgid "WIDE4-1 (Wide area digipeater, 4 hops)"
msgstr "⟦ẂİĐȄ𝟜-𝟙 (Ẃíđê àȓêà đíğíƥêàťêȓ, 𝟜 ȟøƥš)~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:333
#, elixir-autogen, elixir-format
msgid "WIDE5-1 (Wide area digipeater, 5 hops)"
msgstr "⟦ẂİĐȄ𝟝-𝟙 (Ẃíđê àȓêà đíğíƥêàťêȓ, 𝟝 ȟøƥš)~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:334
#, elixir-autogen, elixir-format
msgid "WIDE6-1 (Wide area digipeater, 6 hops)"
msgstr "⟦ẂİĐȄ𝟞-𝟙 (Ẃíđê àȓêà đíğíƥêàťêȓ, 𝟞 ȟøƥš)~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.ex:335
#, elixir-autogen, elixir-format
msgid "WIDE7-1 (WIDE area digipeater, 7 hops)"
msgstr "⟦ẂİĐȄ𝟟-𝟙 (ẂİĐȄ àȓêà đíğíƥêàťêȓ, 𝟟 ȟøƥš)~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:17
#, elixir-autogen, elixir-format
msgid "less than a minute"
msgstr "⟦ĺêšš ťȟàñ à ɱíñüťê~~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:119
#, elixir-autogen, elixir-format
msgid "Gusts"
msgstr "⟦Ġüšťš~~~~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:103
#, elixir-autogen, elixir-format
msgid "Humidity"
msgstr "⟦Ȟüɱíđíťÿ~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:84
#, elixir-autogen, elixir-format
msgid "Last WX report"
msgstr "⟦Ĺàšť ẂẌ ȓêƥøȓť~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:125
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr "⟦Ƥȓêššüȓê~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:131
#, elixir-autogen, elixir-format
msgid "Rain (1h)"
msgstr "⟦Ȓàíñ (𝟙ȟ)~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:137
#, elixir-autogen, elixir-format
msgid "Rain (24h)"
msgstr "⟦Ȓàíñ (𝟚𝟜ȟ)~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:143
#, elixir-autogen, elixir-format
msgid "Rain (since midnight)"
msgstr "⟦Ȓàíñ (šíñċê ɱíđñíğȟť)~~~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:160
#, elixir-autogen, elixir-format
msgid "Raw comment"
msgstr "⟦Ȓàẁ ċøɱɱêñť~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:97
#, elixir-autogen, elixir-format
msgid "Temperature"
msgstr "⟦Ťêɱƥêȓàťüȓê~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:43
#, elixir-autogen, elixir-format
msgid "View info"
msgstr "⟦Ṽíêẁ íñƒø~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:49
#, elixir-autogen, elixir-format
msgid "View on map"
msgstr "⟦Ṽíêẁ øñ ɱàƥ~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:67
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:46
#, elixir-autogen, elixir-format
msgid "View packets"
msgstr "⟦Ṽíêẁ ƥàċǩêťš~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:79
#, elixir-autogen, elixir-format
msgid "Weather Details"
msgstr "⟦Ẃêàťȟêȓ Đêťàíĺš~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:167
#, elixir-autogen, elixir-format
msgid "Weather History Graphs"
msgstr "⟦Ẃêàťȟêȓ Ȟíšťøȓÿ Ġȓàƥȟš~~~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:8
#, elixir-autogen, elixir-format
msgid "Weather Station"
msgstr "⟦Ẃêàťȟêȓ Șťàťíøñ~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.html.heex:109
#, elixir-autogen, elixir-format
msgid "Wind"
msgstr "⟦Ẃíñđ~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:27
#, elixir-autogen, elixir-format
msgid "APRS Station"
msgstr "⟦ÅƤȒȘ Șťàťíøñ~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:149
#, elixir-autogen, elixir-format
msgid "Altitude"
msgstr "⟦Åĺťíťüđê~~~~~~~⟧"
#: lib/aprsme_web/live/packets_live/index.html.heex:10
#, elixir-autogen, elixir-format
msgid "Base Callsign"
msgstr "⟦Ɓàšê Ċàĺĺšíğñ~~~~~~⟧"
#: lib/aprsme_web/live/about_live.html.heex:12
#, elixir-autogen, elixir-format
msgid "Built with Modern Technologies"
msgstr "⟦Ɓüíĺť ẁíťȟ Ṁøđêȓñ Ťêċȟñøĺøğíêš~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:270
#: lib/aprsme_web/live/info_live/show.html.heex:398
#, elixir-autogen, elixir-format
msgid "Callsign"
msgstr "⟦Ċàĺĺšíğñ~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:155
#, elixir-autogen, elixir-format
msgid "Course"
msgstr "⟦Ċøüȓšê~~~~~~~~~⟧"
#: lib/aprsme_web/live/packets_live/index.html.heex:11
#, elixir-autogen, elixir-format
msgid "Data Type"
msgstr "⟦Đàťà Ťÿƥê~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:220
#, elixir-autogen, elixir-format
msgid "Decoded Path"
msgstr "⟦Đêċøđêđ Ƥàťȟ~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:194
#: lib/aprsme_web/live/packets_live/index.html.heex:16
#, elixir-autogen, elixir-format
msgid "Device"
msgstr "⟦Đêṽíċê~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:189
#, elixir-autogen, elixir-format
msgid "Device Information"
msgstr "⟦Đêṽíċê İñƒøȓɱàťíøñ~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:401
#, elixir-autogen, elixir-format
msgid "Distance & Course"
msgstr "⟦Đíšťàñċê & Ċøüȓšê~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:273
#, elixir-autogen, elixir-format
msgid "Distance & Direction"
msgstr "⟦Đíšťàñċê & Đíȓêċťíøñ~~~~~~~~⟧"
#: lib/aprsme_web/live/about_live.html.heex:35
#, elixir-autogen, elixir-format
msgid "Explore the Map"
msgstr "⟦Ȅẋƥĺøȓê ťȟê Ṁàƥ~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:121
#, elixir-autogen, elixir-format
msgid "Grid Square"
msgstr "⟦Ġȓíđ Șʠüàȓê~~~~~⟧"
#: lib/aprsme_web/live/about_live.html.heex:21
#, elixir-autogen, elixir-format
msgid "Join Our Community"
msgstr "⟦Ĵøíñ Òüȓ Ċøɱɱüñíťÿ~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:276
#: lib/aprsme_web/live/info_live/show.html.heex:404
#, elixir-autogen, elixir-format
msgid "Last Heard"
msgstr "⟦Ĺàšť Ȟêàȓđ~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:133
#, elixir-autogen, elixir-format
msgid "Last Position"
msgstr "⟦Ĺàšť Ƥøšíťíøñ~~~~~~⟧"
#: lib/aprsme_web/live/packets_live/index.html.heex:14
#, elixir-autogen, elixir-format
msgid "Latitude"
msgstr "⟦Ĺàťíťüđê~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:114
#, elixir-autogen, elixir-format
msgid "Location"
msgstr "⟦Ĺøċàťíøñ~~~~~~~⟧"
#: lib/aprsme_web/live/packets_live/index.html.heex:15
#, elixir-autogen, elixir-format
msgid "Longitude"
msgstr "⟦Ĺøñğíťüđê~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:488
#, elixir-autogen, elixir-format
msgid "No data available"
msgstr "⟦Ñø đàťà àṽàíĺàƀĺê~~~~~~~⟧"
#: lib/aprsme_web/live/packets_live/index.html.heex:164
#, elixir-autogen, elixir-format
msgid "No packets"
msgstr "⟦Ñø ƥàċǩêťš~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:490
#, elixir-autogen, elixir-format
msgid "No recent packet data available for this callsign."
msgstr "⟦Ñø ȓêċêñť ƥàċǩêť đàťà àṽàíĺàƀĺê ƒøȓ ťȟíš ċàĺĺšíğñ.~~~~~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:262
#, elixir-autogen, elixir-format
msgid "Other SSIDs"
msgstr "⟦Òťȟêȓ ȘȘİĐš~~~~~⟧"
#: lib/aprsme_web/live/packets_live/index.html.heex:165
#, elixir-autogen, elixir-format
msgid "Packets will appear here as they are received."
msgstr "⟦Ƥàċǩêťš ẁíĺĺ àƥƥêàȓ ȟêȓê àš ťȟêÿ àȓê ȓêċêíṽêđ.~~~~~~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:215
#: lib/aprsme_web/live/packets_live/index.html.heex:13
#, elixir-autogen, elixir-format
msgid "Path"
msgstr "⟦Ƥàťȟ~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:109
#, elixir-autogen, elixir-format
msgid "Position Information"
msgstr "⟦Ƥøšíťíøñ İñƒøȓɱàťíøñ~~~~~~~~⟧"
#: lib/aprsme_web/live/packets_live/index.html.heex:9
#, elixir-autogen, elixir-format
msgid "SSID"
msgstr "⟦ȘȘİĐ~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/packets_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "Sender"
msgstr "⟦Șêñđêȓ~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:161
#, elixir-autogen, elixir-format
msgid "Speed"
msgstr "⟦Șƥêêđ~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:390
#, elixir-autogen, elixir-format
msgid "Stations Near Current Position"
msgstr "⟦Șťàťíøñš Ñêàȓ Ċüȓȓêñť Ƥøšíťíøñ~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/packets_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "Symbol"
msgstr "⟦Șÿɱƀøĺ~~~~~~~~~⟧"
#: lib/aprsme_web/live/about_live.html.heex:4
#, elixir-autogen, elixir-format
msgid "Under heavy construction"
msgstr "⟦Üñđêȓ ȟêàṽÿ ċøñšťȓüċťíøñ~~~~~~~~~~⟧"
#: lib/aprsme_web/live/info_live/show.html.heex:71
#, elixir-autogen, elixir-format
msgid "Weather charts"
msgstr "⟦Ẃêàťȟêȓ ċȟàȓťš~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:76
#, elixir-autogen, elixir-format
msgid "%"
msgstr "⟦%~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:67
#: lib/aprsme_web/live/weather_live/callsign_view.ex:68
#, elixir-autogen, elixir-format
msgid "Humidity (%)"
msgstr "⟦Ȟüɱíđíťÿ (%)~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:69
#: lib/aprsme_web/live/weather_live/callsign_view.ex:70
#, elixir-autogen, elixir-format
msgid "Pressure (mb)"
msgstr "⟦Ƥȓêššüȓê (ɱƀ)~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:74
#, elixir-autogen, elixir-format
msgid "Time"
msgstr "⟦Ťíɱê~~~~~~~~~~~⟧"
#: lib/aprsme_web/time_helpers.ex:14
#, elixir-autogen, elixir-format
msgid "ago"
msgstr "⟦àğø~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:77
#, elixir-autogen, elixir-format
msgid "mb"
msgstr "⟦ɱƀ~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/components/core_components.ex:764
#: lib/aprsme_web/components/core_components.ex:772
#, elixir-autogen, elixir-format
msgid "About"
msgstr "⟦Åƀøüť~~~~~~~~~~⟧"
#: lib/aprsme_web/components/core_components.ex:759
#: lib/aprsme_web/components/core_components.ex:769
#, elixir-autogen, elixir-format
msgid "Home"
msgstr "⟦Ȟøɱê~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/map_live/index.ex:807
#: lib/aprsme_web/live/map_live/index.ex:810
#: lib/aprsme_web/live/map_live/index.ex:813
#: lib/aprsme_web/live/map_live/index.ex:816
#: lib/aprsme_web/live/map_live/index.ex:819
#: lib/aprsme_web/live/map_live/index.ex:862
#: lib/aprsme_web/live/map_live/index.ex:865
#: lib/aprsme_web/live/map_live/index.ex:868
#: lib/aprsme_web/live/map_live/index.ex:871
#: lib/aprsme_web/live/map_live/index.ex:874
#, elixir-autogen, elixir-format
msgid "1 Hour"
msgid_plural "%{count} Hours"
msgstr[0] "⟦𝟙 Ȟøüȓ~~~~~~~~~⟧"
msgstr[1] "⟦%{count} Ȟøüȓš~~~~~~⟧"
#: lib/aprsme_web/live/map_live/index.ex:822
#, elixir-autogen, elixir-format
msgid "1 Week"
msgstr "⟦𝟙 Ẃêêǩ~~~~~~~~~⟧"
#: lib/aprsme_web/live/map_live/index.ex:771
#, elixir-autogen, elixir-format
msgid "Enter callsign..."
msgstr "⟦Ȅñťêȓ ċàĺĺšíğñ...~~~~~~~⟧"
#: lib/aprsme_web/live/map_live/index.ex:854
#, elixir-autogen, elixir-format
msgid "Historical Data"
msgstr "⟦Ȟíšťøȓíċàĺ Đàťà~~~~~~⟧"
#: lib/aprsme_web/live/map_live/index.ex:922
#, elixir-autogen, elixir-format
msgid "Last Deploy"
msgstr "⟦Ĺàšť Đêƥĺøÿ~~~~~⟧"
#: lib/aprsme_web/live/map_live/index.ex:906
#, elixir-autogen, elixir-format
msgid "Navigation"
msgstr "⟦Ñàṽíğàťíøñ~~~~~⟧"
#: lib/aprsme_web/live/map_live/index.ex:778
#, elixir-autogen, elixir-format
msgid "Search"
msgstr "⟦Șêàȓċȟ~~~~~~~~~⟧"
#: lib/aprsme_web/live/map_live/index.ex:763
#, elixir-autogen, elixir-format
msgid "Search Callsign"
msgstr "⟦Șêàȓċȟ Ċàĺĺšíğñ~~~~~~⟧"
#: lib/aprsme_web/live/map_live/index.ex:799
#, elixir-autogen, elixir-format
msgid "Trail Duration"
msgstr "⟦Ťȓàíĺ Đüȓàťíøñ~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:66
#, elixir-autogen, elixir-format
msgid "Dew Point (%{unit})"
msgstr "⟦Đêẁ Ƥøíñť (%{unit})~~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:64
#, elixir-autogen, elixir-format
msgid "Temperature & Dew Point (%{unit})"
msgstr "⟦Ťêɱƥêȓàťüȓê & Đêẁ Ƥøíñť (%{unit})~~~~~~~~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:65
#, elixir-autogen, elixir-format
msgid "Temperature (%{unit})"
msgstr "⟦Ťêɱƥêȓàťüȓê (%{unit})~~~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:71
#, elixir-autogen, elixir-format
msgid "Wind (%{unit})"
msgstr "⟦Ẃíñđ (%{unit})~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:73
#, elixir-autogen, elixir-format
msgid "Wind Gust (%{unit})"
msgstr "⟦Ẃíñđ Ġüšť (%{unit})~~~~~~~~⟧"
#: lib/aprsme_web/live/weather_live/callsign_view.ex:72
#, elixir-autogen, elixir-format
msgid "Wind Speed (%{unit})"
msgstr "⟦Ẃíñđ Șƥêêđ (%{unit})~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:66
#, elixir-autogen, elixir-format
msgid "APRS Library:"
msgstr "⟦ÅƤȒȘ Ĺíƀȓàȓÿ:~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:55
#, elixir-autogen, elixir-format
msgid "Application Information"
msgstr "⟦Åƥƥĺíċàťíøñ İñƒøȓɱàťíøñ~~~~~~~~~~⟧"
#: lib/aprsme_web/live/status_live/index.ex:60
#, elixir-autogen, elixir-format
msgid "Version:"
msgstr "⟦Ṽêȓšíøñ:~~~~~~~⟧"

View file

@ -0,0 +1,102 @@
## "msgid"s in this file come from POT (.pot) files.
###
### Do not add, change, or remove "msgid"s manually here as
### they're tied to the ones in the corresponding POT file
### (with the same domain).
###
### Use "mix gettext.extract --merge" or "mix gettext.merge"
### to merge POT files into PO files.
msgid ""
msgstr ""
"Language: xx\n"
"Plural-Forms: nplurals=2\n"
msgid "can't be blank"
msgstr "⟦ċàñ'ť ƀê ƀĺàñǩ~~~~~~⟧"
msgid "has already been taken"
msgstr "⟦ȟàš àĺȓêàđÿ ƀêêñ ťàǩêñ~~~~~~~~~⟧"
msgid "is invalid"
msgstr "⟦íš íñṽàĺíđ~~~~~⟧"
msgid "must be accepted"
msgstr "⟦ɱüšť ƀê àċċêƥťêđ~~~~~~~⟧"
msgid "has invalid format"
msgstr "⟦ȟàš íñṽàĺíđ ƒøȓɱàť~~~~~~~~⟧"
msgid "has an invalid entry"
msgstr "⟦ȟàš àñ íñṽàĺíđ êñťȓÿ~~~~~~~~⟧"
msgid "is reserved"
msgstr "⟦íš ȓêšêȓṽêđ~~~~~⟧"
msgid "does not match confirmation"
msgstr "⟦đøêš ñøť ɱàťċȟ ċøñƒíȓɱàťíøñ~~~~~~~~~~~⟧"
msgid "is still associated with this entry"
msgstr "⟦íš šťíĺĺ àššøċíàťêđ ẁíťȟ ťȟíš êñťȓÿ~~~~~~~~~~~~~~⟧"
msgid "are still associated with this entry"
msgstr "⟦àȓê šťíĺĺ àššøċíàťêđ ẁíťȟ ťȟíš êñťȓÿ~~~~~~~~~~~~~~~⟧"
msgid "should have %{count} item(s)"
msgid_plural "should have %{count} item(s)"
msgstr[0] "⟦šȟøüĺđ ȟàṽê %{count} íťêɱ(š)~~~~~~~~~~~~⟧"
msgstr[1] "⟦šȟøüĺđ ȟàṽê %{count} íťêɱ(š)~~~~~~~~~~~~⟧"
msgid "should be %{count} character(s)"
msgid_plural "should be %{count} character(s)"
msgstr[0] "⟦šȟøüĺđ ƀê %{count} ċȟàȓàċťêȓ(š)~~~~~~~~~~~~~⟧"
msgstr[1] "⟦šȟøüĺđ ƀê %{count} ċȟàȓàċťêȓ(š)~~~~~~~~~~~~~⟧"
msgid "should be %{count} byte(s)"
msgid_plural "should be %{count} byte(s)"
msgstr[0] "⟦šȟøüĺđ ƀê %{count} ƀÿťê(š)~~~~~~~~~~~⟧"
msgstr[1] "⟦šȟøüĺđ ƀê %{count} ƀÿťê(š)~~~~~~~~~~~⟧"
msgid "should have at least %{count} item(s)"
msgid_plural "should have at least %{count} item(s)"
msgstr[0] "⟦šȟøüĺđ ȟàṽê àť ĺêàšť %{count} íťêɱ(š)~~~~~~~~~~~~~~~⟧"
msgstr[1] "⟦šȟøüĺđ ȟàṽê àť ĺêàšť %{count} íťêɱ(š)~~~~~~~~~~~~~~~⟧"
msgid "should be at least %{count} character(s)"
msgid_plural "should be at least %{count} character(s)"
msgstr[0] "⟦šȟøüĺđ ƀê àť ĺêàšť %{count} ċȟàȓàċťêȓ(š)~~~~~~~~~~~~~~~~⟧"
msgstr[1] "⟦šȟøüĺđ ƀê àť ĺêàšť %{count} ċȟàȓàċťêȓ(š)~~~~~~~~~~~~~~~~⟧"
msgid "should be at least %{count} byte(s)"
msgid_plural "should be at least %{count} byte(s)"
msgstr[0] "⟦šȟøüĺđ ƀê àť ĺêàšť %{count} ƀÿťê(š)~~~~~~~~~~~~~~⟧"
msgstr[1] "⟦šȟøüĺđ ƀê àť ĺêàšť %{count} ƀÿťê(š)~~~~~~~~~~~~~~⟧"
msgid "should have at most %{count} item(s)"
msgid_plural "should have at most %{count} item(s)"
msgstr[0] "⟦šȟøüĺđ ȟàṽê àť ɱøšť %{count} íťêɱ(š)~~~~~~~~~~~~~~~⟧"
msgstr[1] "⟦šȟøüĺđ ȟàṽê àť ɱøšť %{count} íťêɱ(š)~~~~~~~~~~~~~~~⟧"
msgid "should be at most %{count} character(s)"
msgid_plural "should be at most %{count} character(s)"
msgstr[0] "⟦šȟøüĺđ ƀê àť ɱøšť %{count} ċȟàȓàċťêȓ(š)~~~~~~~~~~~~~~~~⟧"
msgstr[1] "⟦šȟøüĺđ ƀê àť ɱøšť %{count} ċȟàȓàċťêȓ(š)~~~~~~~~~~~~~~~~⟧"
msgid "should be at most %{count} byte(s)"
msgid_plural "should be at most %{count} byte(s)"
msgstr[0] "⟦šȟøüĺđ ƀê àť ɱøšť %{count} ƀÿťê(š)~~~~~~~~~~~~~~⟧"
msgstr[1] "⟦šȟøüĺđ ƀê àť ɱøšť %{count} ƀÿťê(š)~~~~~~~~~~~~~~⟧"
msgid "must be less than %{number}"
msgstr "⟦ɱüšť ƀê ĺêšš ťȟàñ %{number}~~~~~~~~~~~⟧"
msgid "must be greater than %{number}"
msgstr "⟦ɱüšť ƀê ğȓêàťêȓ ťȟàñ %{number}~~~~~~~~~~~~⟧"
msgid "must be less than or equal to %{number}"
msgstr "⟦ɱüšť ƀê ĺêšš ťȟàñ øȓ êʠüàĺ ťø %{number}~~~~~~~~~~~~~~~~⟧"
msgid "must be greater than or equal to %{number}"
msgstr "⟦ɱüšť ƀê ğȓêàťêȓ ťȟàñ øȓ êʠüàĺ ťø %{number}~~~~~~~~~~~~~~~~~⟧"
msgid "must be equal to %{number}"
msgstr "⟦ɱüšť ƀê êʠüàĺ ťø %{number}~~~~~~~~~~~⟧"