diff --git a/config/config.exs b/config/config.exs index 4502a9b..f32f488 100644 --- a/config/config.exs +++ b/config/config.exs @@ -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", diff --git a/lib/aprsme_web/live/locale_hook.ex b/lib/aprsme_web/live/locale_hook.ex index ff4e144..946fb23 100644 --- a/lib/aprsme_web/live/locale_hook.ex +++ b/lib/aprsme_web/live/locale_hook.ex @@ -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) diff --git a/lib/aprsme_web/router.ex b/lib/aprsme_web/router.ex index 3dc4e24..49b377d 100644 --- a/lib/aprsme_web/router.ex +++ b/lib/aprsme_web/router.ex @@ -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 diff --git a/mix.exs b/mix.exs index 0381cae..b6bc07a 100644 --- a/mix.exs +++ b/mix.exs @@ -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 diff --git a/mix.lock b/mix.lock index b091ea9..0cd3314 100644 --- a/mix.lock +++ b/mix.lock @@ -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"}, diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index d27f12a..6e2565b 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -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 "" diff --git a/priv/gettext/xx/LC_MESSAGES/default.po b/priv/gettext/xx/LC_MESSAGES/default.po new file mode 100644 index 0000000..743b373 --- /dev/null +++ b/priv/gettext/xx/LC_MESSAGES/default.po @@ -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 "⟦Ṽêȓšíøñ:~~~~~~~⟧" diff --git a/priv/gettext/xx/LC_MESSAGES/errors.po b/priv/gettext/xx/LC_MESSAGES/errors.po new file mode 100644 index 0000000..5c132c8 --- /dev/null +++ b/priv/gettext/xx/LC_MESSAGES/errors.po @@ -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}~~~~~~~~~~~⟧"