+ <%= if not TeslaMate.Vault.encryption_key_provided?() or + (not TeslaMate.Api.signed_in?() and not TeslaMate.Auth.can_decrypt_tokens?()) do %> + <% docs_link = link "docs.teslamate.org", to: "https://docs.teslamate.org", + target: "_blank", + rel: "noopener noreferrer" %> + +
+

+  <%= gettext "No encryption key provided" %> +

+

<%= raw(gettext "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart.") %>

+

<%= raw(gettext "The automatically generated encryption key used for the current session can be found in the application logs.") %>

+

<%= raw(gettext "For more information, see the updated installation guides on %{link}", link: safe_to_string(docs_link)) %>

+
+ <% end %> +
<%= Enum.map(get_flash(@conn), fn {flash_key, flash_message} -> %>

<%= flash_message %>

diff --git a/mix.exs b/mix.exs index bab3080ae2..fed1e2c143 100644 --- a/mix.exs +++ b/mix.exs @@ -60,7 +60,8 @@ defmodule TeslaMate.MixProject do {:timex, "~> 3.0"}, {:tortoise, "~> 0.10"}, {:tzdata, "~> 1.1"}, - {:websockex, "~> 0.4"} + {:websockex, "~> 0.4"}, + {:cloak_ecto, "~> 1.2"} ] end diff --git a/mix.lock b/mix.lock index e00e3b67be..7539306ff9 100644 --- a/mix.lock +++ b/mix.lock @@ -1,7 +1,9 @@ %{ "castore": {:hex, :castore, "0.1.15", "dbb300827d5a3ec48f396ca0b77ad47058578927e9ebe792abd99fcbc3324326", [:mix], [], "hexpm", "c69379b907673c7e6eb229f09a0a09b60bb27cfb9625bcb82ea4c04ba82a8442"}, - "certifi": {:hex, :certifi, "2.8.0", "d4fb0a6bb20b7c9c3643e22507e42f356ac090a1dcea9ab99e27e0376d695eba", [:rebar3], [], "hexpm", "6ac7efc1c6f8600b08d625292d4bbf584e14847ce1b6b5c44d983d273e1097ea"}, + "certifi": {:hex, :certifi, "2.9.0", "6f2a475689dd47f19fb74334859d460a2dc4e3252a3324bd2111b8f0429e7e21", [:rebar3], [], "hexpm", "266da46bdb06d6c6d35fde799bcb28d36d985d424ad7c08b5bb48f5b5cdd4641"}, "cldr_utils": {:hex, :cldr_utils, "2.17.0", "05453797e5b89f936c54c5602ac881e46b1ba4423a803c27a414466f4b598c94", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:decimal, "~> 1.9 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "6077ddaaa155f27755638225617bdc00c004f39b3c9355b688e52a3fc98d57e8"}, + "cloak": {:hex, :cloak, "1.1.1", "6f8f6674cacd3c504daf2aaeba8f9cde3ae8009ce01ff854dd3e92fbb7954c69", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "d440c4ea3a5a31baeaea4592b534dfdccc4ded0ee098b92955a5658cbe7be625"}, + "cloak_ecto": {:hex, :cloak_ecto, "1.2.0", "e86a3df3bf0dc8980f70406bcb0af2858bac247d55494d40bc58a152590bd402", [:mix], [{:cloak, "~> 1.1.1", [hex: :cloak, repo: "hexpm", optional: false]}, {:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}], "hexpm", "8bcc677185c813fe64b786618bd6689b1707b35cd95acaae0834557b15a0c62f"}, "combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [:mix], [], "hexpm", "1b1dbc1790073076580d0d1d64e42eae2366583e7aecd455d1215b0d16f2451b"}, "connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"}, "cowboy": {:hex, :cowboy, "2.9.0", "865dd8b6607e14cf03282e10e934023a1bd8be6f6bacf921a7e2a96d800cd452", [:make, :rebar3], [{:cowlib, "2.11.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "2c729f934b4e1aa149aff882f57c6372c15399a20d54f65c8d67bef583021bde"}, @@ -18,8 +20,9 @@ "floki": {:hex, :floki, "0.32.0", "f915dc15258bc997d49be1f5ef7d3992f8834d6f5695270acad17b41f5bcc8e2", [:mix], [{:html_entities, "~> 0.5.0", [hex: :html_entities, repo: "hexpm", optional: false]}], "hexpm", "1c5a91cae1fd8931c26a4826b5e2372c284813904c8bacb468b5de39c7ececbd"}, "fuse": {:hex, :fuse, "2.5.0", "71afa90be21da4e64f94abba9d36472faa2d799c67fedc3bd1752a88ea4c4753", [:rebar3], [], "hexpm", "7f52a1c84571731ad3c91d569e03131cc220ebaa7e2a11034405f0bac46a4fef"}, "gen_state_machine": {:hex, :gen_state_machine, "3.0.0", "1e57f86a494e5c6b14137ebef26a7eb342b3b0070c7135f2d6768ed3f6b6cdff", [:mix], [], "hexpm", "0a59652574bebceb7309f6b749d2a41b45fdeda8dbb4da0791e355dd19f0ed15"}, - "gettext": {:hex, :gettext, "0.19.0", "6909d61b38bb33339558f128f8af5913d5d5fe304a770217bf352b1620fb7ec4", [:mix], [], "hexpm", "3f7a274f52ebda9bb6655dfeda3d6b0dc4537ae51ce41dcccc7f73ca7379ad5e"}, - "hackney": {:hex, :hackney, "1.18.0", "c4443d960bb9fba6d01161d01cd81173089686717d9490e5d3606644c48d121f", [:rebar3], [{:certifi, "~>2.8.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.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.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", "9afcda620704d720db8c6a3123e9848d09c87586dc1c10479c42627b905b5c5e"}, + "gettext": {:hex, :gettext, "0.19.1", "564953fd21f29358e68b91634799d9d26989f8d039d7512622efb3c3b1c97892", [:mix], [], "hexpm", "10c656c0912b8299adba9b061c06947511e3f109ab0d18b44a866a4498e77222"}, + "hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~>2.9.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.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.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", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"}, + "hpax": {:hex, :hpax, "0.1.1", "2396c313683ada39e98c20a75a82911592b47e5c24391363343bde74f82396ca", [:mix], [], "hexpm", "0ae7d5a0b04a8a60caf7a39fcf3ec476f35cc2cc16c05abea730d3ce6ac6c826"}, "html_entities": {:hex, :html_entities, "0.5.2", "9e47e70598da7de2a9ff6af8758399251db6dbb7eebe2b013f2bbd2515895c3c", [:mix], [], "hexpm", "c53ba390403485615623b9531e97696f076ed415e8d8058b1dbaa28181f4fdcc"}, "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, "jason": {:hex, :jason, "1.3.0", "fa6b82a934feb176263ad2df0dbd91bf633d4a46ebfdffea0c8ae82953714946", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "53fc1f51255390e0ec7e50f9cb41e751c260d065dcba2bf0d08dc51a4002c2ac"}, @@ -27,20 +30,20 @@ "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"}, "mime": {:hex, :mime, "2.0.2", "0b9e1a4c840eafb68d820b0e2158ef5c49385d17fb36855ac6e7e087d4b1dcc5", [:mix], [], "hexpm", "e6a3f76b4c277739e36c2e21a2c640778ba4c3846189d5ab19f97f126df5f9b7"}, "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"}, - "mint": {:hex, :mint, "1.4.0", "cd7d2451b201fc8e4a8fd86257fb3878d9e3752899eb67b0c5b25b180bde1212", [:mix], [{:castore, "~> 0.1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "10a99e144b815cbf8522dccbc8199d15802440fc7a64d67b6853adb6fa170217"}, + "mint": {:hex, :mint, "1.4.1", "49b3b6ea35a9a38836d2ad745251b01ca9ec062f7cb66f546bf22e6699137126", [:mix], [{:castore, "~> 0.1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "cd261766e61011a9079cccf8fa9d826e7a397c24fbedf0e11b49312bea629b58"}, "mock": {:hex, :mock, "0.3.7", "75b3bbf1466d7e486ea2052a73c6e062c6256fb429d6797999ab02fa32f29e03", [:mix], [{:meck, "~> 0.9.2", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm", "4da49a4609e41fd99b7836945c26f373623ea968cfb6282742bcb94440cf7e5c"}, "nimble_csv": {:hex, :nimble_csv, "1.2.0", "4e26385d260c61eba9d4412c71cea34421f296d5353f914afe3f2e71cce97722", [:mix], [], "hexpm", "d0628117fcc2148178b034044c55359b26966c6eaa8e2ce15777be3bbc91b12a"}, "nimble_options": {:hex, :nimble_options, "0.4.0", "c89babbab52221a24b8d1ff9e7d838be70f0d871be823165c94dd3418eea728f", [:mix], [], "hexpm", "e6701c1af326a11eea9634a3b1c62b475339ace9456c1a23ec3bc9a847bca02d"}, - "nimble_pool": {:hex, :nimble_pool, "0.2.4", "1db8e9f8a53d967d595e0b32a17030cdb6c0dc4a451b8ac787bf601d3f7704c3", [:mix], [], "hexpm", "367e8071e137b787764e6a9992ccb57b276dc2282535f767a07d881951ebeac6"}, + "nimble_pool": {:hex, :nimble_pool, "0.2.5", "de45c2117443696d3d33baf53d0cfd25b742f84f79acafa1b08b52ee3c6b84fc", [:mix], [], "hexpm", "9d44cb33dbdc1301dd62294b56d02c8d74f725a99f667e11c7cc51bde7aa7f2f"}, "parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"}, "phoenix": {:hex, :phoenix, "1.6.6", "281c8ce8dccc9f60607346b72cdfc597c3dde134dd9df28dff08282f0b751754", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "807bd646e64cd9dc83db016199715faba72758e6db1de0707eef0a2da4924364"}, "phoenix_ecto": {:hex, :phoenix_ecto, "4.4.0", "0672ed4e4808b3fbed494dded89958e22fb882de47a97634c0b13e7b0b5f7720", [:mix], [{:ecto, "~> 3.3", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "09864e558ed31ee00bd48fcc1d4fc58ae9678c9e81649075431e69dbabb43cc1"}, "phoenix_html": {:hex, :phoenix_html, "3.2.0", "1c1219d4b6cb22ac72f12f73dc5fad6c7563104d083f711c3fcd8551a1f4ae11", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "36ec97ba56d25c0136ef1992c37957e4246b649d620958a1f9fa86165f8bc54f"}, "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.3.3", "3a53772a6118d5679bf50fc1670505a290e32a1d195df9e069d8c53ab040c054", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "766796676e5f558dbae5d1bdb066849673e956005e3730dfd5affd7a6da4abac"}, - "phoenix_live_view": {:hex, :phoenix_live_view, "0.17.6", "3665f3ec426ac8d681cd7753ad4c85d2d247094dc4dc6add80dd6e3026045389", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.5.9 or ~> 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.1", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "62f06d4bbfc4dc5595070bc338119ab08e8e67a011e2923f9366419622149b9c"}, + "phoenix_live_view": {:hex, :phoenix_live_view, "0.17.7", "05a42377075868a678d446361effba80cefef19ab98941c01a7a4c7560b29121", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.5.9 or ~> 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.1", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "25eaf41028eb351b90d4f69671874643a09944098fefd0d01d442f40a6091b6f"}, "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.0.0", "a1ae76717bb168cdeb10ec9d92d1480fec99e3080f011402c0a2d68d47395ffb", [:mix], [], "hexpm", "c52d948c4f261577b9c6fa804be91884b381a7f8f18450c5045975435350f771"}, - "phoenix_view": {:hex, :phoenix_view, "1.1.1", "11a945509d1270ef42bb19ca8f609aab378fc02543c2d4bdb8d243f1ca88f9b5", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "1f8148a9163ca4b40065ef177c9c56c0df174cf3596a27995a1a1657f0c949e7"}, - "plug": {:hex, :plug, "1.12.1", "645678c800601d8d9f27ad1aebba1fdb9ce5b2623ddb961a074da0b96c35187d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d57e799a777bc20494b784966dc5fbda91eb4a09f571f76545b72a634ce0d30b"}, + "phoenix_view": {:hex, :phoenix_view, "1.1.2", "1b82764a065fb41051637872c7bd07ed2fdb6f5c3bd89684d4dca6e10115c95a", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "7ae90ad27b09091266f6adbb61e1d2516a7c3d7062c6789d46a7554ec40f3a56"}, + "plug": {:hex, :plug, "1.13.3", "93b299039c21a8b82cc904d13812bce4ced45cf69153e8d35ca16ffb3e8c5d98", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "98c8003e4faf7b74a9ac41bee99e328b08f069bf932747d4a7532e97ae837a17"}, "plug_cowboy": {:hex, :plug_cowboy, "2.5.2", "62894ccd601cf9597e2c23911ff12798a8a18d237e9739f58a6b04e4988899fe", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "ea6e87f774c8608d60c8d34022a7d073bd7680a0a013f049fc62bf35efea1044"}, "plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"}, "postgrex": {:hex, :postgrex, "0.16.1", "f94628a32c571266f53cd1e5fca705e626e2417bf1eee6f868985d14e874160a", [:mix], [{:connection, "~> 1.1", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "6b225df32c857b9430619dbe30200a7ae664e23415a771ae9209396ee8eeee64"}, diff --git a/priv/gettext/da/LC_MESSAGES/default.po b/priv/gettext/da/LC_MESSAGES/default.po index 17709ae72c..59273b4e4a 100644 --- a/priv/gettext/da/LC_MESSAGES/default.po +++ b/priv/gettext/da/LC_MESSAGES/default.po @@ -11,67 +11,67 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "Status" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "Hastighed" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "Batteriniveau" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "Opladet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "sover" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "oplader" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "kører" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "offline" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "online" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "opdaterer" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "Låst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "Vagtstilstand" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -81,65 +81,65 @@ msgstr "Vagtstilstand" msgid "Home" msgstr "Hjem" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "Indstillinger" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "Planlagt opladning" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "Stikket sat i" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "Opladningsgrænse" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "ved at falde i søvn" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "ikke tilgængelig" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "Afstand" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "Temperatur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "Enheder" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "Tilbage" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "Geografisk afgrænsning \"%{name}\" oprettet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -148,296 +148,296 @@ msgstr "Geografisk afgrænsning \"%{name}\" oprettet" msgid "Geo-Fences" msgstr "Geografiske afgrænsninger" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "Inaktiv tid før forsøg på at falde i søvn" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "Navn" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "Position" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "Radius" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "Gem" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "Gemmer..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "Tid indtil forsøg på at sove" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "min" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "Logget ind" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "Bilen er ikke låst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "Opret" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "Forvarmer" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "Vagttilstand er aktiveret" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "Fører tilstede" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "afbryd forsøg på at sove" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "forsøg at sove" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "Rækkevidde (beregnet)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "i" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "Krav" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "Køretøjet skal være låst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "Rækkevidde (nominel)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "Opladers effekt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "Ønsket rækkevidde" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "Rækkevidde" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "ideel" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "nominel" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "Rækkevidde (ideel)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "Bilens overslag på den tilbageværende rækkevidde er baseret på et fast energiforbrug i Wh/km. Wh/km faktoren er bestem af Tesla og er ikke landespecifik, hvorimod den beregnede rækkevidde er baseret på myndighedernes testregler i de forskellige markeder for køretøjet." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "Opdatering i gang" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "Vinduer er åbne" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "Slet '%{geo_fence}'?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "Indetemperatur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "Udetemperatur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "Version" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "Sundhedscheck mislykkedes" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "Ulåst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "Tid tilbage" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "Oversigter" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "URL'er" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "Webapp" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "Aktiveret" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "Dvaletilstand" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "Geografisk afgrænsning \"%{name}\" opdateret" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "Der opstod en fejl" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "Timeout" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "Batteri har reduceret rækkevidde" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ %{range} ved 100%" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "Opladningspris" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "Pris" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "Indtast pris for opladning" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "Gemt!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "Henter data for køretøjet ..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "Adresser" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "Sprog" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "Der opstod et problem med at hente data fra OpenStreetMap. Prøv venligst igen senere." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "TeslaFi import" @@ -449,60 +449,60 @@ msgid_plural "Found %{count} files" msgstr[0] "Fandt %{count} fil" msgstr[1] "Fandt %{count} filer" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "Donér" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "Importér" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "Tidszone" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "Log ind" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "Opladningspris" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "Gratis supercharging" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "Basale indstillinger" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "Afgift per opladning" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "Døre åbne" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "Per kWh" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "Total" @@ -514,104 +514,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "Der er %{n} opladning på dette sted der ikke er angivet en pris for endnu." msgstr[1] "Der er %{n} opladninger på dette sted der ikke er angivet en pris for endnu." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "Tilføj pris med tilbagevirkning" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "Udgifter til opladning" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "Fortsæt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "Kilometertal" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "Streaming API" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Dokumentation" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "Opdatering tilgængelig" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "Døre er åbne" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "Bagklap åben" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "Pr. minut" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "Softwareopdatering tilgængelig (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "Log Ud" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po index 52a36f7be0..c3d98b5298 100644 --- a/priv/gettext/de/LC_MESSAGES/default.po +++ b/priv/gettext/de/LC_MESSAGES/default.po @@ -11,67 +11,67 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2\n" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "Status" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "Geschwindigkeit" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "Ladestand" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "Geladen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "schläft" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "lädt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "fährt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "offline" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "online" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "installiert Update" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "Verschlossen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "Wächtermodus" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -81,65 +81,65 @@ msgstr "Wächtermodus" msgid "Home" msgstr "Home" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "Einstellungen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "Ladezeitpunkt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "Eingesteckt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "Ladelimit" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "schläft ein" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "nicht verfügbar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "Länge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "Temperatur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "Einheiten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "Zurück" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "Geo-Fence \"%{name}\" erstellt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -148,296 +148,296 @@ msgstr "Geo-Fence \"%{name}\" erstellt" msgid "Geo-Fences" msgstr "Geo-Fences" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "Leerlaufzeit vor dem Einschlafversuch" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "Speichern" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "Speichere..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "Dauer des Schlafversuchs" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "Erfolgreich angemeldet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "Das Auto ist aufgeschlossen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "Erstellen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "Vorkonditionierung" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "Wächtermodus aktiviert" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "Fahrer anwesend" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "Schlafversuch abbrechen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "versuchen zu schlafen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "Reichweite (gesch.)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "seit" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "Voraussetzungen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "Fahrzeug muss verschlossen sein" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "Reichweite (rated)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "Ladeleistung" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "Bevorzugte Reichweite" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "Reichweite" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "ideal" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "rated" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "Reichweite (ideal)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "Die Schätzung der verbleibenden Reichweite basiert auf einem fixen Energieverbrauch in Wh/km. Der Wh/km-Faktor wird von Tesla bestimmt und ist nicht länderspezifisch, wohingegen die 'rated' Reichweite auf regulatorischen Tests in den verschiedenen Märkten für dieses Fahrzeug basiert." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "Update läuft" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "Fenster geöffnet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "'%{geo_fence}' löschen?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "Innentemperatur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "Außentemperatur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "Health Check fehlgeschlagen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "nicht verschlossen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "Restlaufzeit" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "Aktiviert" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "Schlafmodus" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "Geo-Fence \"%{name}\" aktualisiert" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "Ein Fehler ist aufgetreten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "Verringerte Reichweite" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ %{range} bei 100%" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "Ladekosten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "Kosten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "Ladekosten eingeben" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "Gespeichert!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "Fahrzeugdaten werden abgerufen ..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "Adressen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "Sprache" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "Es gab ein Problem beim Abruf von Daten von OpenStreetMap. Bitte versuche es später noch einmal." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "" @@ -449,60 +449,60 @@ msgid_plural "Found %{count} files" msgstr[0] "%{count} Datei gefunden" msgstr[1] "%{count} Dateien gefunden" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "Spenden" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "Importieren" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "Zeitzone" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "Anmelden" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "Ladekosten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "Gratis Supercharger-Nutzung" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "Allgemeine Einstellungen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "Sessionpreis" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "Türen geöffnet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "Pro kWh" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "Gesamt" @@ -514,104 +514,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "An diesem Standort gibt es %{n} Ladevorgang, für den noch keine Kosten hinzugefügt wurden." msgstr[1] "An diesem Standort gibt es %{n} Ladevorgänge, für die noch keine Kosten hinzugefügt wurden." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "Kosten rückwirkend hinzufügen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "Ladekosten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "Weiter" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "Kilometerstand" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Dokumentation" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "Update verfügbar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "Türen geöffnet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "Kofferraum is geöffnet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "Pro Minute" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "Software Update verfügbar (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "Abmelden" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "Access Token" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "Refresh Token" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "Tokens sind ungültig" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "Der Abruf von Tokens über die Tesla-API erfordert Programmierkenntnisse oder einen Drittanbieterdienst. Informationen dazu sind %{here} verfügbar." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "hier" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "Ihr Tesla-Konto ist aufgrund von zu vielen fehlgeschlagenen Anmeldeversuchen gesperrt. Um Ihr Konto zu entsperren, setzen Sie Ihr Kennwort zurück" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "Update wird heruntergeladen" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "Kein Verschlüsselungscode angegeben" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "Weitere Informationen findest du in den aktualisierten Installationsanleitungen auf %{link}" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "Der automatisch generierte Verschlüsselungscode, der für die aktuelle Sitzung verwendet wird, ist in den Anwendungslogs einsehbar." + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "Um sicherzustellen, dass deine Tesla-API-Tokens sicher gespeichert werden, muss TeslaMate ein Verschlüsselungscode mittels der Umgebungsvariable ENCRYPTION_KEY übergeben werden." diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index df063bc787..510a1a7a68 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -10,67 +10,67 @@ msgid "" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -80,65 +80,65 @@ msgstr "" msgid "Home" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -147,296 +147,296 @@ msgstr "" msgid "Geo-Fences" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "" @@ -448,60 +448,60 @@ msgid_plural "Found %{count} files" msgstr[0] "" msgstr[1] "" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "" @@ -513,104 +513,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "" msgstr[1] "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 1292848bcb..77f4bdf280 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -11,67 +11,67 @@ msgstr "" "Language: en\n" "Plural-Forms: nplurals=2\n" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -81,65 +81,65 @@ msgstr "" msgid "Home" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -148,296 +148,296 @@ msgstr "" msgid "Geo-Fences" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "" @@ -449,60 +449,60 @@ msgid_plural "Found %{count} files" msgstr[0] "" msgstr[1] "" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "" @@ -514,104 +514,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "" msgstr[1] "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/es/LC_MESSAGES/default.po b/priv/gettext/es/LC_MESSAGES/default.po index 29e0ef9e89..0c7aa36f26 100644 --- a/priv/gettext/es/LC_MESSAGES/default.po +++ b/priv/gettext/es/LC_MESSAGES/default.po @@ -11,67 +11,67 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2\n" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "Estado" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "Velocidad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "Nivel de carga" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "Cargado" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "en reposo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "cargando" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "conduciendo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "sin conexión" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "en línea" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "actualizando" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "Cerrado" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "Modo centinela" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -81,65 +81,65 @@ msgstr "Modo centinela" msgid "Home" msgstr "Inicio" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "Ajustes" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "Carga programada" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "Enchufado" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "Límite de carga" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "entrando en reposo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "no disponible" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "Distancia" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "Temperatura" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "Unidades" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "Atrás" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "Creada la geovalla \"%{name}\"" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -148,296 +148,296 @@ msgstr "Creada la geovalla \"%{name}\"" msgid "Geo-Fences" msgstr "Geovallas" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "Período de inactividad previo a intentar reposo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "Nombre" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "Posición" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "Radio" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "Guardar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "Guardando..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "Duración del intento de reposo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "min" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "Sesión iniciada correctamente" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "Coche abierto" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "Crear" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "Acondicionando" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "Modo centinela activo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "Conductor presente" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "cancelar intento de reposo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "intentar reposo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "Autonomía (estim.)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "durante" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "Requisitos" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "El vehículo debe estar cerrado" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "Autonomía (nominal)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "Potencia del cargador" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "Autonomía preferida" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "Autonomía" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "ideal" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "nominal" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "Autonomía (ideal)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "La estimación por parte del coche de la autonomía restante está basada en un consumo fijo de energía en Wh/km. El factor de Wh/km está determinado por Tesla y no es específico del país, mientras que la autonomía nominal está basada en pruebas regulatorias en los diferentes mercados para ese vehículo." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "Actualización en curso" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "Ventanillas abiertas" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "¿Eliminar '%{geo_fence}'?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "Temperatura interior" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "Temperatura exterior" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "Versión" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "Chequeo general fallido" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "Abierto" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "Tiempo restante" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "Paneles" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "URLs" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "Aplicación web" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "Activado" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "Modo de reposo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "Actualizada la geovalla \"%{name}\"" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "Ha sucedido un error" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "Plazo de espera agotado" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "Batería con autonomía reducida" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ %{range} al 100%" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "Coste de carga" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "Coste" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "Introduce el coste de carga" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "¡Guardado!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "Obteniendo datos del vehículo ..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "Direcciones" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "Idioma" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "Hubo un problema recuperando información de OpenStreetMap. Por favor inténtalo de nuevo más tarde." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "Importar de TeslaFi" @@ -449,60 +449,60 @@ msgid_plural "Found %{count} files" msgstr[0] "Encontrado %{count} archivo" msgstr[1] "Encontrados %{count} archivos" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "Donar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "Importar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "Zona horaria" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "Iniciar sesión" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "Coste de carga" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "Supercarga gratuita" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "Ajustes generales" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "Cuota de sesión" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "Puertas abiertas" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "Por kWh" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "Total" @@ -514,104 +514,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "Hay %{n} sesión de carga en esta localización para la que aún no se ha añadido un coste." msgstr[1] "Hay %{n} sesiones de carga en esta localización para las que aún no se ha añadido un coste." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "Añadir costes retroactivamente" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "Costes de Carga" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "Continuar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "Kilometraje" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "Streaming API" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Documentación" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "Actualización disponible" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "Puertas abiertas" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "Maletero abierto" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "Por minuto" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "Actualización de software disponible (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "Cerrar Sesión" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "Token de acceso" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "Token de renovación" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "Tokens no válidos" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "La generación de tokens por medio del API de Tesla requiere habilidades de programación, o un servicio proporcionado por terceros. Se puede encontrar más información %{here}." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "aquí" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "Su cuenta Tesla se ha bloqueado a causa de demasiados intentos fallidos de inicio de sesión. Para desbloquearla debe crear una nueva contraseña." -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/fi/LC_MESSAGES/default.po b/priv/gettext/fi/LC_MESSAGES/default.po index 72ece59ca4..41ff9a8f7b 100644 --- a/priv/gettext/fi/LC_MESSAGES/default.po +++ b/priv/gettext/fi/LC_MESSAGES/default.po @@ -10,67 +10,67 @@ msgid "" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "Tila" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "Nopeus" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "Lataustaso" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "Ladattu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "lepotilassa" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "lataa" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "ajossa" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "offline-tilassa" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "yhteydessä" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "päivittää" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "Lukittu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "Sentry-moodi" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -80,65 +80,65 @@ msgstr "Sentry-moodi" msgid "Home" msgstr "Koti" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "Asetukset" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "Aikataulutettu lataus" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "Kytketty johtoon" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "Latausraja" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "menossa lepotilaan" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "ei saatavilla" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "Matka" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "Lämpötila" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "Mittayksiköt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "Takaisin" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "Georajaus \"%{name}\" luotu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -147,296 +147,296 @@ msgstr "Georajaus \"%{name}\" luotu" msgid "Geo-Fences" msgstr "Georajaukset" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "Nimi" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "Sijainti" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "Säde" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "Tallenna" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "Tallentaa..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "Lepotilaan menon kesto" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "min" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "Kirjauduttu sisään onnistuneesti" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "Auto ei ole lukittu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "Luo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "Esilämmitys" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "Sentry-moodi on päällä" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "Kuljettaja paikalla" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "peru lepotilaan meno" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "pyydä lepotilaan menoa" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "Range (arvioitu)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "viimeiset" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "Vaatimukset" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "Auton tulee olla lukittu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "Range (arvioitu)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "Laturin virta" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "Valittu range-tyyppi" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "Range" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "ihanteellinen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "arvioitu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "Range (ihanteellinen)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "Auton arvio jäljellä olevasta rangesta perustuu kiinteään Wh/km kulutukseen. Tämä kiinteä kulutus on Teslan määrittelemä eikä se riipu maasta, toisin kuin rated-range, joka pohjautuu testeihin eri markkina-alueilla." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "Päivitys käynnissä" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "Ikkunoita avoinna" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "Poista '%{geo_fence}'?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "Sisälämpötila" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "Ulkolämpötila" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "Versio" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "Kuntotarkistus epäonnistui" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "Lukitus avattu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "Jäljellä oleva aika" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "Datanäkymät" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "URLit" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "Verkkosivu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "Käytössä" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "Lepotila" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "Georajaus \"%{name}\" päivitetty" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "Virhe tapahtui" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "Aikakatkaisu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "Pienennetty akun range" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ %{range} 100%:ssa" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "Lataushinta" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "Hinta" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "Syötä latauskustannukset" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "Tallennettu!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "Noutaa ajoneuvon dataa..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "Osoitteet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "Kieli" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "OpenSTreetMapista datan lataaminen epäonnistui. Yritä hetken päästä uudelleen." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "Tuonti TeslaFi:stä" @@ -448,60 +448,60 @@ msgid_plural "Found %{count} files" msgstr[0] "Löytyi %{count} tiedosto" msgstr[1] "Löytyi %{count} tiedostoa" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "Lahjoita" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "Tuo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "Aikavyöhyke" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "Kirjaudu sisään" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "Lataushinta" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "Maksuton Supercharging" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "Yleiset asetukset" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "Aloituskustannus" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "Ovia auki" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "Per kWh" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "Yhteensä" @@ -513,104 +513,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "Lataustapahtumissa on yksi lataus johon ei ole lisätty kustannuksia." msgstr[1] "Lataustapahtumissa on %{n} latausta joihin ei ole lisätty kustannuksia." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "Lisää kustannuksia jälkikäteen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "Latauskustannukset" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "Jatka" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "Mittarilukema" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "Streamaus-API" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Ohjeet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "Päivitys saatavilla" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "Ovia on auki" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "Takakontti on auki" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "Per minuutti" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "Päivitys saatavilla (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "Kirjaudu ulos" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/fr/LC_MESSAGES/default.po b/priv/gettext/fr/LC_MESSAGES/default.po index 26be60d52c..2ab10aa34f 100644 --- a/priv/gettext/fr/LC_MESSAGES/default.po +++ b/priv/gettext/fr/LC_MESSAGES/default.po @@ -10,67 +10,67 @@ msgid "" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "État" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "Vitesse" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "Niveau de charge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "Chargée" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "Endormie" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "En charge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "Conduite" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "Hors ligne" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "En ligne" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "Mise à jour en cours" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "Verrouillée" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "Mode sentinelle" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -80,65 +80,65 @@ msgstr "Mode sentinelle" msgid "Home" msgstr "Accueil" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "Réglages" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "Recharge planifiée" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "Branchée" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "Limite de charge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "S'endort" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "Indisponible" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "Distance" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "Température" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "Unités" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "Retour" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "Géorepérage \"%{name}\" créé" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -147,296 +147,296 @@ msgstr "Géorepérage \"%{name}\" créé" msgid "Geo-Fences" msgstr "Géorepérages" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "Temps d'inactivité avant d'essayer de dormir" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "Nom" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "Position" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "Rayon" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "Enregistrer" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "Enregistrement..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "Temps avant d'essayer de dormir" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "min" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "Connecté avec succès" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "La voiture est déverrouillée" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "Créer" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "Préconditionnement" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "Mode sentinelle activé" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "Conducteur présent" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "Annuler la tentative de sommeil" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "Tentative de mise en veille" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "Autonomie estimée" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "depuis" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "Exigences" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "Le véhicule doit être verrouillé" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "Autonomie théorique" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "Puissance de charge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "Autonomie préférée" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "Autonomie" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "Estimée" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "Théorique" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "Autonomie Estimée" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "Théorique = Autonomie indiquée par Tesla. Estimée = Autonomie norme WLTP Europe" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "Mise à jour en cours" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "Vitres ouvertes" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "Effacer '%{geo_fence}'?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "Température habitacle" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "Température extérieure" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "Version" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "Echec du bilan de santé" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "Déverouillée" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "Temps restant" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "Tableaux de bord" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "URLs" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "App Web" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "Activé" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "Mode veille" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "Géo-repérage \"%{name}\" mis à jour" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "Une erreur est survenue" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "Délai maximum expiré" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "Autonomie de la batterie réduite" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ %{range} à 100%" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "Coût de charge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "Coût" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "Entrez le coût de charge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "Enregistré!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "Récupération des données du véhicule ..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "Adresses" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "Langue" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "Un problème est survenu lors de la récupération des données depuis OpenStreetMap. Veuillez réessayer plus tard." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "Importation de TeslaFi" @@ -448,60 +448,60 @@ msgid_plural "Found %{count} files" msgstr[0] "Trouvé %{count} fichier" msgstr[1] "Trouvé %{count} fichiers" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "Faire un don" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "Importer" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "Fuseau horaire" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "Connexion" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "Coût de charge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "Supercharge gratuite" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "Réglages généraux" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "Prix fixe" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "Portes ouvertes" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "Par kWh" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "Total" @@ -513,104 +513,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "Il existe %{n} session de charge à cet endroit pour laquelle aucun coût n'a encore été ajouté." msgstr[1] "Il existe %{n} sessions de charge à cet endroit pour lesquelles aucun coût n'a encore été ajouté." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "Ajouter les coûts rétroactivement" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "Coût de Charge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "Continuer" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "Kilométrage" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "API de Streaming" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Documentation" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "Mise à jour disponible" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "Les portes sont ouvertes" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "Le coffre est ouvert" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "Par minute" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "Mise à jour disponible (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "Déconnexion" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "Jeton d'accès" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "Jeton d'actualisation" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "Les jetons ne sont pas valides" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "L'obtention de jetons via l'API Tesla nécessite une expérience de programmation ou un service tiers. Les informations peuvent être trouvées %{here}." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "ici" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "Votre compte Tesla est verrouillé en raison d'un trop grand nombre de tentatives de connexion infructueuses. Pour déverrouiller votre compte, réinitialisez votre mot de passe" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/it/LC_MESSAGES/default.po b/priv/gettext/it/LC_MESSAGES/default.po index 8c901fda59..93c27886fe 100644 --- a/priv/gettext/it/LC_MESSAGES/default.po +++ b/priv/gettext/it/LC_MESSAGES/default.po @@ -10,67 +10,67 @@ msgid "" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "Stato" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "Velocità" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "Livello di carica" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "Caricato" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "a riposo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "in carica" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "guida" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "non raggiungibile" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "in linea" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "aggiornamento in corso" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "Bloccato" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "Modalità Sentinella" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -80,65 +80,65 @@ msgstr "Modalità Sentinella" msgid "Home" msgstr "Home" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "Impostazioni" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "Ricarica pianificata" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "Collegato" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "Limite di carica" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "sospensione in corso" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "non disponibile" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "Distanza" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "Temperatura" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "Unità" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "Indietro" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "Geo-fence \"%{name}\" creato" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -147,296 +147,296 @@ msgstr "Geo-fence \"%{name}\" creato" msgid "Geo-Fences" msgstr "Geo-Fences" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "Tempo di inattività prima di provare a dormire" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "Nome" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "Posizione" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "Raggio" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "Salva" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "Salvataggio..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "Tempo prima di provare a dormire" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "min" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "Accesso effettuato" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "La vettura è aperta" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "Crea" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "Precondizionamento" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "Modalità sentinella attivata" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "Guidatore presente" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "Annulla il tentativo di sospensione" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "Tentativo di sospensione" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "Autonomia stimata" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "da" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "Impostazioni" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "Il veicolo dev'essere bloccato" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "Autonomia (teorica)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "Potenza di carica" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "Autonomia preferita" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "Autonomia" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "Stimata" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "Teorica" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "Autonomia (stimata)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "Teorico = Autonomia indicata da Tesla. Stimato = Autonomy WLTP Europe standard" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "Aggiornamento in corso" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "Vetri aperti" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "Cancellare '%{geo_fence}'?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "Temperatura abitacolo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "Temperatura esterna" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "Versione" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "Controllo integrità non riuscito" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "Sbloccato" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "Tempo rimanente" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "Dashboard" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "URLs" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "Web App" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "Attivato" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "Modalità sospensione" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "Geo-fence \"%{name}\" aggiornato" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "Si è verificato un errore" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "Tempo massimo scaduto" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "Durata della batteria ridotta" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ %{range} a 100%" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "Costo di ricarica" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "Costo" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "Immettere il costo di ricarica" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "Salvato!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "Recupero dati del veicolo ..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "Indirizzi" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "Lingua" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "Si è verificato un problema durante il recupero dei dati da OpenStreetMap. Per favore riprova più tardi." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "Importazione di TeslaFi" @@ -448,60 +448,60 @@ msgid_plural "Found %{count} files" msgstr[0] "Trovato %{count} file" msgstr[1] "Trovati %{count} files" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "Fai una donazione" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "Importare" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "Fuso orario" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "Accedi" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "Costo di ricarica" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "Supercharger gratuito" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "Impostazioni generali" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "Prezzo fisso" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "Porte aperte" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "Per kWh" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "Totale" @@ -513,104 +513,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "C'è %{n} sessione di addebito in questa posizione per la quale non è stato ancora aggiunto alcun costo." msgstr[1] "Ci sono %{n} sessioni di addebito in questa posizione per le quali non è stato ancora aggiunto alcun costo." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "Aggiungi i costi retroattivamente" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "Costo di carica" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "Continuare" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "Chilometraggio" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "API di streaming" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Documentazione" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "Aggiornamento disponibile" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "Le portiere sono aperte" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "Il cofano è aperto" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "Per Minuto" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "Aggiornamento disponibile (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "Uscire" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "Access Token" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "Refresh Token" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "Token non validi" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "Ottenre i token tramite le API Tesla richede esperienza nel campo della programmazione o un servizio ti terze parti. Si possono trovare maggiori informazioni %{here}." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "qui" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "Il tuo account Tesla è bloccato a causa di troppi tentativi di accesso. Per sbloccare il tuo account, esegui il reset della tua password" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/ja/LC_MESSAGES/default.po b/priv/gettext/ja/LC_MESSAGES/default.po index 22336bd8c8..5952cd8645 100644 --- a/priv/gettext/ja/LC_MESSAGES/default.po +++ b/priv/gettext/ja/LC_MESSAGES/default.po @@ -10,67 +10,67 @@ msgid "" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "ステータス" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "速度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "充電状態" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "充電完了" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "スリープ" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "充電中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "運転中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "オフライン" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "オンライン" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "アップデート中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "ロック" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "セントリーモード" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -80,65 +80,65 @@ msgstr "セントリーモード" msgid "Home" msgstr "ホーム" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "設定" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "予約充電中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "電源に差し込み済" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "充電制限" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "スリープ中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "利用不可" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "距離" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "温度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "単位" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "戻る" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "ジオフェンス \"%{name}\" が作成されました" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -147,296 +147,296 @@ msgstr "ジオフェンス \"%{name}\" が作成されました" msgid "Geo-Fences" msgstr "ジオフェンス" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "スリープ状態移行までのアイドルタイム" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "名前" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "位置" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "半径" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "保存" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "保存中…" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "スリープ実行時間" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "分" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "サインイン成功" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "車両のロックが解除されました" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "作成" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "プリコンディショニング" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "セントリーモードが有効化されました" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "ドライバー乗車中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "スリープ設定をキャンセルする" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "スリープ中です" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "予想距離" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "要件" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "車両がロックされていないといけません" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "想定距離" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "充電電流値" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "推奨距離" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "距離" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "理想" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "想定" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "想定距離" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "車の残存距離の推定値は、Wh / km単位の固定エネルギー消費量に基づいています。 Wh / km係数はテスラによって決定され、国固有ではありませんが、定格範囲はその車両のさまざまな市場での規制テストに基づいています。" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "アップデート中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "窓開放中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "'%{geo_fence}' を削除しますか?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "車内温度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "外気温度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "バージョン" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "ヘルスチェックが失敗しました" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "解除" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "残り時間" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "ダッシュボード" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "URL" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "ウェブアプリ" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "有効" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "スリープモード" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "ジオフェンス \"%{name}\" がアップデートされました" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "エラーが発生しました" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "タイムアウト" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "バッテリー範囲の縮小" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "100% チャージ時" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "充電コスト" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "コスト" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "充電コストを入力" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "保存しました" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "車両データを取得中…" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "住所" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "言語" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "OpenStreetMapからデータを取得する際に問題が発生しました。 後でもう一度やり直してください。" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "TeslaFi からインポート" @@ -448,60 +448,60 @@ msgid_plural "Found %{count} files" msgstr[0] "%{count} 個のファイルが見つかりました" msgstr[1] "%{count} 個のファイルが見つかりました" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "寄付" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "インポート" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "タイムゾーン" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "サインイン" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "充電コスト" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "無料スーパーチャージ中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "一般設定" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "セッション費用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "ドアが開いています" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "kWh毎" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "合計" @@ -513,104 +513,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "この場所には、まだ費用が追加されていない%{n}つの課金セッションがあります。" msgstr[1] "この場所には、まだ費用が追加されていない%{n}つの課金セッションがあります。" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "さかのぼってにコストを追加する" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "充電費用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "続ける" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "マイレージ" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "Streaming API" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Documentation" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "アップデート可能" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "ドアが開いています" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "トランクが開いています" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "毎分" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "ソフトウェアアップデートが可能です (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "サインアウト" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "Access Token" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "Refresh Token" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "トークンが無効です" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "Tesla APIを介してトークンを取得するには、プログラミングの経験またはサードパーティのサービスが必要です。 情報は %{here} にあります" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "ここ" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "サインインの試行に失敗した回数が多すぎるため、Teslaアカウントがロックされています。 アカウントのロックを解除するには、パスワードをリセットしてください" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/ko/LC_MESSAGES/default.po b/priv/gettext/ko/LC_MESSAGES/default.po index eface6e4a5..a340047fa8 100644 --- a/priv/gettext/ko/LC_MESSAGES/default.po +++ b/priv/gettext/ko/LC_MESSAGES/default.po @@ -11,67 +11,67 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=2\n" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "현재 차량상태" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "속도" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "충전상태" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "충전됨" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "절전" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "충전중" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "주행" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "오프라인" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "온라인" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "업데이트" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "잠김" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "센트리 모드" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -81,65 +81,65 @@ msgstr "센트리 모드" msgid "Home" msgstr "홈" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "설정" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "충전예약됨" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "충전 준비됨" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "충전목표" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "절전 중" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "사용불가" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "거리" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "온도" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "단위" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "뒤로" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "지오펜스 \"%{name}\" 가 생성되었습니다." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -148,296 +148,296 @@ msgstr "지오펜스 \"%{name}\" 가 생성되었습니다." msgid "Geo-Fences" msgstr "지오펜스" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "절전모드 시도까지 유휴시간" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "이름" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "위치" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "반경" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "저장" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "저장 중..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "잠자기 시도 시작" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "분" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "로그인 성공" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "차량 잠김해제" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "생성" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "프리컨디셔닝" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "센트리 모드가 활성화되었습니다." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "현재 운전자" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "절전모드 시도 취소" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "절전모드 시도" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "거리 (예상)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "경과시간" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "필수요구사항" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "차량문은 모두 잠겨있어야 합니다." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "거리 (정규계산)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "충전장치 전력" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "선호하는 계산방법" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "거리" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "이상적인 거리" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "정규계산된 거리" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "거리 (이상적인)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "차량의 잔여거리 추정치는 고정 에너지 소비량(Wh/km)을 기준으로합니다. Wh/km 계수는 Tesla에 의해 결정되며 국가별로 다르지 않지만 정격 거리는 해당 차량의 다른 시장에서 규제 테스트를 기반으로합니다." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "업데이트 진행 중" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "창문 열림" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "'%{geo_fence}'를 삭제하겠습니까?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "실내 온도" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "실외 온도" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "소프트웨어 버전" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "상태확인 실패" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "잠금 해제" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "남은 시간" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "대시보드" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "접속주소" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "웹 어플리케이션" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "활성화" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "절전 모드" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "지오펜스 \"%{name}\" 가 업데이트 되었습니다." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "오류가 발생하였습니다" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "시간초과" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "감소된 배터리 거리" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ 100%에서 %{range}" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "충전비용" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "비용" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "충전비용 입력" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "저장완료!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "차량데이터를 가져오는 중입니다." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "주소" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "언어" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "OpenStreetMap 데이터 검색 중 문제가 발생했습니다. 다시 시도해주세요." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "TeslaFi 가져오기" @@ -449,60 +449,60 @@ msgid_plural "Found %{count} files" msgstr[0] "%{count} 파일을 찾았습니다." msgstr[1] "" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "후원" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "가져오기" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "시간대" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "로그인" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "충전비용" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "무료 슈퍼차징" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "일반설정" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "세션수수료" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "차량문 열림" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "kWh 당" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "총합" @@ -514,104 +514,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "이 위치에는 아직 비용이 추가되지 않은 %{n} 충전 세션이 있습니다." msgstr[1] "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "과거 요금 추가" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "충전요금" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "계속" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "누적주행거리" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "스트리밍 API" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "참고문서" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "업데이트 가능" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "문이 열려있습니다." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "트렁크가 열려있습니다." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "분당" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "소프트웨어 업데이트 가능 (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "로그아웃" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/nb/LC_MESSAGES/default.po b/priv/gettext/nb/LC_MESSAGES/default.po index 32d76b1f8b..8749e037eb 100644 --- a/priv/gettext/nb/LC_MESSAGES/default.po +++ b/priv/gettext/nb/LC_MESSAGES/default.po @@ -12,67 +12,67 @@ msgstr "" "Language: nb\n" "Plural-Forms: nplurals=2\n" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "Status" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "Hastighet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "Ladenivå nå" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "Ladet hittil" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "dvale" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "Ladet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "kjører" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "Offline" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "online" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "oppdaterer" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "Låst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "Sentry Mode" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -82,65 +82,65 @@ msgstr "Sentry Mode" msgid "Home" msgstr "Hjem" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "Innstillinger" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "Tidsinnstilt lading" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "Koblet til" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "Ladelimit" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "Dvale" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "ikke tilgjengelig" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "Avstand" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "Temperatur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "Enheter" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "Tilbake" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "Geo-lokasjon \"%{name}\" opprettet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -149,296 +149,296 @@ msgstr "Geo-lokasjon \"%{name}\" opprettet" msgid "Geo-Fences" msgstr "Geo-lokasjoner" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "Inaktiv tid før dvale starter" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "Navn" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "Posisjon" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "Radius" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "Lagre" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "Lagrer..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "Tid for forsøk på dvale" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "min" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "Innlogget" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "Bilen er ulåst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "Opprett" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "Forvarming" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "Sentry Mode er aktivert" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "Fører er tilstede" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "Avbryt dvale" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "forsøk på dvale" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "Rekkevidde (est.)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "i" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "Krav" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "Kjøretøyet må være låst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "Rekkevidde klass." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "Ladestyrke" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "Foretrukket rekkevidde" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "Rekkevidde" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "typisk" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "klassifisert" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "Rekkevidde typisk" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "Kjøretøyets estimerte tilgjengelige rekkevidde er basert på et fast energiforbruk oppgitt i Wh/km. Wh/km-faktoren er bestemt av Tesla og er ikke landspesifikk, der oppgitt rekkevidde er basert på regulatoriske tester i de ulike markeder for det spesifikke kjøretøyet." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "Oppdaterer software" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "Åpent vindu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "Fjern '%{geo_fence}'?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "Temperatur inne" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "Temperatur ute" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "Software versjon" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "Helsesjekk feilet. Sjekk at mobil tilkobling er aktivert i bilen." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "Ulåst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "Gjenværende ladetid" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "Dashboard - Grafana" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "Nettadresser" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "Dashboard" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "Aktivert" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "Dvalemodus" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "Geo-lokasjon \"%{name}\" oppdatert" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "En feil har oppstått" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "Timeout" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "Redusert batterirekkevidde" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ %{range} ved 100%" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "Lading" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "Pris" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "Angi ladepris" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "Lagret!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "Henter data fra kjøretøy..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "Adresser og gatenavn" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "Språk" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "Det var et problem med henting av data fra OpenStreetMap. Vennligst prøv igjen senere." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "TeslaFi import" @@ -450,60 +450,60 @@ msgid_plural "Found %{count} files" msgstr[0] "%{count} fil" msgstr[1] "%{count} filer" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "Donere" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "Importere" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "Tidssone" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "Logg inn" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "Ladepris" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "Gratis Superlading" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "Generelle innstillinger" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "Øktpris" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "Åpen dør" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "Pr kWh" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "Total" @@ -515,104 +515,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "Det er %{n} ladeøkt på denne lokasjonen der pris ikke er definert." msgstr[1] "Det er %{n} ladeøkter på denne lokasjonen der priser ikke er definert." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "Legg til pris med tilbakevirkende kraft" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "Pris på lading" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "Fortsett" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "Kilometerstand" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "Streaming API" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Dokumentasjon" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "Ny software tilgjengelig" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "Åpen dør" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "Bagasjeluken er åpen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "Per minutt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "Ny software tilgjengelig (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "Logg ut" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/nl/LC_MESSAGES/default.po b/priv/gettext/nl/LC_MESSAGES/default.po index 5d8fc1c7ca..1825ceb24b 100644 --- a/priv/gettext/nl/LC_MESSAGES/default.po +++ b/priv/gettext/nl/LC_MESSAGES/default.po @@ -11,67 +11,67 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2\n" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "Status" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "Snelheid" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "Laadtoestand" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "Opgeladen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "slaapt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "opladen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "rijden" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "offline" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "online" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "bijwerken" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "Vergrendeld" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "Bewakingsmodus" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -81,65 +81,65 @@ msgstr "Bewakingsmodus" msgid "Home" msgstr "Home" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "Instellingen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "Gepland opladen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "Ingeplugd" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "Laadlimiet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "valt in slaap" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "onbeschikbaar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "Lengte" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "Temperatuur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "Eenheden" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "Terug" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "Geo-hek \"%{name}\" aangemaakt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -148,296 +148,296 @@ msgstr "Geo-hek \"%{name}\" aangemaakt" msgid "Geo-Fences" msgstr "Geofences" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "Inactieve tijd voordat de auto probeert te slapen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "Naam" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "Positie" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "Straal" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "Opslaan" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "Opslaan..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "Tijd om te proberen te slapen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "min" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "Succesvol ingelogd" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "Auto is ontgrendeld" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "Creëer" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "Voorconditionering" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "Bewakingsmodus is geactiveerd" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "Bestuurder aanwezig" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "annuleer slaap-poging" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "probeer te slapen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "Bereik (geschat)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "sinds" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "Voorwaarden" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "Wagen moet vergrendeld zijn" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "Bereik (nominaal)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "Lader vermogen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "Voorkeur bereik" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "Bereik" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "ideale" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "nominale" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "Bereik (ideaal)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "De auto schat de resterende actieradius op basis van een vast energieverbruik in Wh/km. De Wh/km-factor wordt bepaald door Tesla en is niet landspecifiek, terwijl het nominale bereik gebaseerd is op wettelijke tests in de verschillende markten voor dat voertuig." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "Update wordt uitgevoerd" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "Ramen open" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "Verwijder '%{geo_fence}'?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "Binnentemperatuur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "Buitentemperatuur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "Versie" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "Statuscontrole is mislukt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "Ontgrendeld" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "Resterende tijd" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "Dashboards" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "URL's" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "Web App" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "Ingeschakeld" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "Slaapstand" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "Geo-hek \"%{name}\" bijgewerkt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "Er is een fout opgetreden" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "Timeout" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "Verminderd accubereik" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ %{range} op 100%" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "Laadkosten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "Kosten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "Voer laadkosten in" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "Opgeslagen!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "Voertuiggegevens ophalen ..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "Adressen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "Taal" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "Er is een probleem opgetreden bij het ophalen van gegevens uit OpenStreetMap. Probeer het later opnieuw." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "TeslaFi Importeren" @@ -449,60 +449,60 @@ msgid_plural "Found %{count} files" msgstr[0] "%{count} bestand gevonden" msgstr[1] "%{count} bestanden gevonden" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "Doneren" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "Importeren" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "Tijdzone" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "Log in" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "Laadkosten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "Gratis laden bij Superchargers" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "Algemene instellingen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "Sessiekosten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "Deuren open" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "Per kWh" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "Totaal" @@ -514,104 +514,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "Er is %{n} oplaadsessie op deze locatie waarvoor nog geen kosten zijn toegevoegd." msgstr[1] "Er zijn %{n} oplaadsessies op deze locatie waarvoor nog geen kosten zijn toegevoegd." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "Kosten met terugwerkende kracht toevoegen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "Laadkosten" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "Ga verder" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "Kilometerstand" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "Streaming API" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Documentatie" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "Update beschikbaar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "Deuren zijn open" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "Kofferbak is open" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "Per minuut" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "Software-update beschikbaar (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "Uitloggen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/sv/LC_MESSAGES/default.po b/priv/gettext/sv/LC_MESSAGES/default.po index 663cd88a63..82b013cb72 100644 --- a/priv/gettext/sv/LC_MESSAGES/default.po +++ b/priv/gettext/sv/LC_MESSAGES/default.po @@ -11,67 +11,67 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2\n" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "Hastighet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "Laddningsnivå" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "Laddad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "vilat" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "laddat" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "kört" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "uppdaterat" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "Låst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "Vaktläge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -81,65 +81,65 @@ msgstr "Vaktläge" msgid "Home" msgstr "Hem" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "Inställningar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "Schemalagd laddning" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "Inkopplad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "Laddningsgräns" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "gått ner i vila" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "inte tillgänglig" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "Avstånd" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "Temperatur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "Enheter" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "Tillbaka" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "Geostaket \"%{name}\" skapat" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -148,296 +148,296 @@ msgstr "Geostaket \"%{name}\" skapat" msgid "Geo-Fences" msgstr "Geostaket" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "Inaktiv tid innan försök att gå ner i vila" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "Namn" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "Radie" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "Spara" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "Sparar..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "Tid för försök att gå ner i vila" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "Inloggad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "Bilen är olåst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "Skapa" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "Förvärmning" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "Vaktläge är aktiverad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "Förare närvarande" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "avbryt försök att vila" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "försök att vila" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "Räckvidd (beräk.)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "i" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "Krav" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "Fordonet måste vara låst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "Räckvidd (nominell)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "Laddningskraft" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "Föredragen räckvidd" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "Räckvidd" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "idealisk" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "nominell" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "Räckvidd (idealisk)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "Bilens uppskattning av återstående räckvidd baseras på en fast energiförbrukning i Wh/km. Wh/km-faktorn är bestämd av Tesla och är inte landsspecifik medan det nominella räckvidden är baserat på reglerande tester på de olika marknaderna för fordonet." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "Uppdatering pågår" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "Fönster öppna" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "Ta bort '%{geo_fence}'?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "Innertemperatur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "Utetemperatur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "Hälsokontroll misslyckades" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "Olåst" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "Återstående tid" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "Instrumentbrädor" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "URLer" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "Webbapp" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "Aktiverad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "Viloläge" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "Geostaket \"%{name}\" uppdaterad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "Ett fel uppstod" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "Reducerad batteriräckvidd" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ %{range} vid 100%" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "Laddningskostnad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "Kostnad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "Ange laddningskostnad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "Sparat!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "Hämtar fordonsdata ..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "Adresser" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "Språk" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "Det gick inte att hämta data från OpenStreetMap. Vänligen försök igen senare." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "" @@ -449,60 +449,60 @@ msgid_plural "Found %{count} files" msgstr[0] "%{count} fil hittades" msgstr[1] "%{count} filer hittades" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "Donera" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "Importera" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "Tidszon" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "Logga in" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "Laddningskostnad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "Gratis Supercharging" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "Allmänna Inställningar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "Session avgift" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "Dörrar öppna" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "Total" @@ -514,104 +514,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "Det finns %{n} laddningssession på denna position för vilken ingen kostnad har lagts till än." msgstr[1] "Det finns %{n} laddningssessioner på denna position för vilken inga kostnader har lagts till än." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "Lägg till kostnader retroaktivt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "Laddningskostnad" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "Fortsätt" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "Mätarställning" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Dokumentation" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "Uppdatering tillgänglig" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "Dörrar är öppna" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "Bakluckan är öppen" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "Per Minut" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "Mjukvaruuppdatering tillgänglig (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "Logga ut" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "Åtkomsttoken" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "Uppdatera token" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "Tokens är ogiltiga" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "För att få tokens via Tesla API krävs programmeringserfarenhet eller en tredjeparts tjänst. Information finns %{here}." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "här" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "Ditt Tesla-konto är låst på grund av för många misslyckade inloggningsförsök. Återställ ditt lösenord för att låsa upp ditt konto" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "Laddar ner uppdatering" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/tr/LC_MESSAGES/default.po b/priv/gettext/tr/LC_MESSAGES/default.po index e75b9d3d0c..893f0c4394 100644 --- a/priv/gettext/tr/LC_MESSAGES/default.po +++ b/priv/gettext/tr/LC_MESSAGES/default.po @@ -10,67 +10,67 @@ msgid "" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "Durum" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "Hız" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "Şarj Durumu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "Şarj Oldu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "uykuda" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "şarj oluyor" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "sürüş" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "çevrimdışı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "çevrimiçi" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "güncelleniyor" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "Kilitli" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "Sentry-modu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -80,65 +80,65 @@ msgstr "Sentry-modu" msgid "Home" msgstr "Anasayfa" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "Ayarlar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "Zamanlanmış Şarj" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "Prize Takılı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "Şarj Sınırı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "uykuya dalıyor" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "mevcut değil" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "Uzunluk" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "Sıcaklık" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "Birimler" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "Geri" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "Coğrafi-sınır \"%{name}\" oluşturuldu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -147,296 +147,296 @@ msgstr "Coğrafi-sınır \"%{name}\" oluşturuldu" msgid "Geo-Fences" msgstr "Coğrafi-Sınırlar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "Uykuya Dalmadan Önce Boşta Geçen Zaman" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "İsim" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "Konum" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "Yarıçap" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "Kaydet" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "Kaydediliyor..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "Uykuya Dalmayı Deneme Zamanı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "min" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "Oturum başarıyla açıldı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "Araba kilitli değil" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "Oluştur" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "Batarya şarja hazırlanıyor" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "Sentry-modu devrede" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "Sürücü araçta" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "Uykuya dalmaktan vazgeç" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "uyumaya çalış" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "Menzil (tahmini)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "için" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "Gereksinimler" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "Araç kilitli olmalı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "Menzil (hesaplanan)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "Şarj Cihazı Gücü" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "Tercih Edilen Menzil" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "Menzil" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "ideal" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "hesaplanan" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "Menzil (ideal)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "Aracın kalan menzil tahmini Wh/km cinsinden belirlenmiş sabit bir enerji tüketimine göre temel alınmıştır. Hesaplanan menzil, düzenliyici kurumların ilgili piyasalarda bu araç için yaptığı testlere göre temel alınırken Wh/km çarpanı Tesla tarafından belirlenir ve ülkeye özgü değildir." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "Güncelleniyor" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "Pencereler açık" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "Sil '%{geo_fence}'?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "İç Ortam Sıcaklığı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "Dış Ortam Sıcaklığı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "Sürüm" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "Sağlık kontrolü başarısız" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "Kilit açıldı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "Kalan Süre" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "Gösterge Paneli" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "Bağlantılar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "Web Uygulaması" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "Devrede" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "Uyku Modu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "Coğrafi-sınır \"%{name}\" güncellendi" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "Bir hata oluştu" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "Zamanaşımı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "Kısıtlı Batarya Menzili" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ %100'de %{range}" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "Şarj Tutarı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "Tutar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "Şarj tutarını girin" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "Kaydedildi!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "Araç verisi alınıyor..." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "Adresler" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "Dil" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "OpenSTreetMap'den veriler alınırken bir hata oluştu. Lütfen daha sonra tekrar deneyin." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "TeslaFi'den İçe Aktarma" @@ -448,60 +448,60 @@ msgid_plural "Found %{count} files" msgstr[0] "%{count} dosya bulundu" msgstr[1] "%{count} dosya bulundu" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "Bağış Yap" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "İçe Aktar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "Saat dilimi" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "Oturum aç" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "Şarj Tutarı" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "Bedava Supercharging" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "Genel Ayarlar" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "Oturum ücreti" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "Kapılar açık" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "kWh başına" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "Toplam" @@ -513,104 +513,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "Bu konumdaki %{n} şarj işlemi için henüz bir ücret yansıtılmadı." msgstr[1] "Bu konumdaki %{n} şarj işlemi için henüz bir ücret yansıtılmadı." -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "Tutarları geçmişe dönük olarak ekle" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "Şarj Tutarları" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "Devam Et" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "Mesafe" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "Eşzamanlı-API" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "Dökümantasyon" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "Güncelleme mevcut" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "Kapılar açık" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "Bağaj açık" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "Dakika Başına" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "Yazılım Güncellemesi mevcut (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/zh_Hans/LC_MESSAGES/default.po b/priv/gettext/zh_Hans/LC_MESSAGES/default.po index fe731b8efb..65fd36ab8a 100644 --- a/priv/gettext/zh_Hans/LC_MESSAGES/default.po +++ b/priv/gettext/zh_Hans/LC_MESSAGES/default.po @@ -12,67 +12,67 @@ msgstr "" "Language: zh_Hans\n" "Plural-Forms: nplurals=2\n" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "当前状态" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "速度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "当前电量" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "已充入电量" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "已休眠" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "充电中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "行驶中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "离线" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "在线" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "更新中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "已锁车" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "哨兵模式" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -82,65 +82,65 @@ msgstr "哨兵模式" msgid "Home" msgstr "主页" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "设置" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "按计划充电" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "充电头已插入" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "充电上限" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "进入休眠中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "不可用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "长度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "温度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "单位" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "后退" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "收藏点 \"%{name}\" 已创建" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -149,296 +149,296 @@ msgstr "收藏点 \"%{name}\" 已创建" msgid "Geo-Fences" msgstr "收藏点" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "进入休眠前的闲置时间" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "名字" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "位置" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "半径" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "保存" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "保存中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "尝试进入睡眠用时" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "分钟" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "登陆成功" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "已锁车" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "新建" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "预热/冷" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "哨兵模式已启用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "当前驾驶员" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "取消休眠" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "尝试休眠" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "当前剩余里程 (预估)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "休眠条件" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "车辆必须处于锁车状态" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "典型里程" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "充电功率" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "里程标定方式" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "里程" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "额定" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "典型" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "当前剩余里程 (额定)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "实际续航里程会因车辆配置、电池使用时长和状况、驾驶习惯及操作、环境和气候状况等因素的影响而有所不同。" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "更新中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "车窗 开" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "确定删除 '%{geo_fence}' ?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "车内温度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "车外温度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "当前固件版本" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "健康检查失败" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "已解锁" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "充电剩余时间" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "控制台" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "URLs" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "Web应用程序" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "已启用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "休眠模式" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "收藏点 \"%{name}\" 已更新" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "发生了一个错误" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "已超时" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "已降低续航里程" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "100%时续航为 %{range}" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "充电费用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "费用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "请输入充电费用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "已保存!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "正在获取车辆数据" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "地址" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "语言" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "在获取OpenStreetMap地图信息时发成错误,请稍后再试。" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "从TeslaFi导入" @@ -450,60 +450,60 @@ msgid_plural "Found %{count} files" msgstr[0] "" msgstr[1] "" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "捐赠" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "导入" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "时区" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "登陆" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "充电费用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "免费超充" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "通用设置" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "手续费" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "未锁车" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "每度电" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "总共" @@ -515,104 +515,124 @@ msgid_plural "There are %{n} charging sessions at this location msgstr[0] "此位置有 %{n} 次 收费记录,尚未添加任何费用。" msgstr[1] "此位置有 %{n} 次 收费记录,尚未添加任何费用。" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "过期费用追加" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "充电费用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "下一步" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "总里程" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "Tesla串流接口 (默认开启)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "帮助文档" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "有可用更新" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "未上锁" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "行李箱已打开" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "每分钟" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "有可用更新 (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "退出登录" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "令牌" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "刷新令牌" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "令牌 无效" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "通过 Tesla API 获得令牌需要有编程经验或者借助第三方服务。更多信息可以查看 %{here}。" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "这里" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "您的 Tesla 帐户因登录尝试失败次数过多而被锁定。要解锁您的帐户,请重置您的密码" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/gettext/zh_Hant/LC_MESSAGES/default.po b/priv/gettext/zh_Hant/LC_MESSAGES/default.po index 1270c4ccbb..e0d1a24a7f 100644 --- a/priv/gettext/zh_Hant/LC_MESSAGES/default.po +++ b/priv/gettext/zh_Hant/LC_MESSAGES/default.po @@ -10,67 +10,67 @@ msgid "" msgstr "" "Language: zh_Hant\n" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:104 msgid "Status" msgstr "目前狀態" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:237 msgid "Speed" msgstr "速度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:229 msgid "State of Charge" msgstr "目前電量" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:165 msgid "Charged" msgstr "已充滿" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:131 msgid "asleep" msgstr "休眠" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:126 msgid "charging" msgstr "充電中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:125 msgid "driving" msgstr "駕駛中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:130 msgid "offline" msgstr "離線中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:129 msgid "online" msgstr "線上" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:127 msgid "updating" msgstr "更新中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Locked" msgstr "已鎖車" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:73 msgid "Sentry Mode" msgstr "哨兵模式" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/index.ex:15 #: lib/teslamate_web/live/charge_live/cost.html.heex:3 #: lib/teslamate_web/live/geofence_live/form.html.heex:3 @@ -80,65 +80,65 @@ msgstr "哨兵模式" msgid "Home" msgstr "首頁" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:21 #: lib/teslamate_web/live/settings_live/index.html.heex:4 #: lib/teslamate_web/templates/layout/root.html.heex:60 msgid "Settings" msgstr "設定" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:180 msgid "Scheduled Charging" msgstr "充電排程" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:58 msgid "Plugged In" msgstr "已連接充電埠" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:189 msgid "Charge Limit" msgstr "充電上限" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:128 msgid "falling asleep" msgstr "進入休眠中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:132 msgid "unavailable" msgstr "不可用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:198 msgid "Length" msgstr "距離" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:213 msgid "Temperature" msgstr "溫度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:195 msgid "Units" msgstr "單位" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:131 #: lib/teslamate_web/live/geofence_live/form.html.heex:105 msgid "Back" msgstr "後退" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:188 msgid "Geo-fence \"%{name}\" created" msgstr "收藏地點 \"%{name}\" 已建立" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:110 #: lib/teslamate_web/live/geofence_live/form.html.heex:4 #: lib/teslamate_web/live/geofence_live/index.ex:22 @@ -147,298 +147,298 @@ msgstr "收藏地點 \"%{name}\" 已建立" msgid "Geo-Fences" msgstr "收藏地點" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:47 msgid "Idle Time Before Trying to Sleep" msgstr "進入休眠前的閒置時間" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:43 #: lib/teslamate_web/live/geofence_live/form.html.heex:48 #: lib/teslamate_web/live/geofence_live/index.html.heex:21 msgid "Name" msgstr "名字" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:17 #: lib/teslamate_web/live/geofence_live/index.html.heex:22 msgid "Position" msgstr "位置" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:23 msgid "Radius" msgstr "半徑" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:134 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 msgid "Save" msgstr "保存" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:135 #: lib/teslamate_web/live/geofence_live/form.html.heex:108 #: lib/teslamate_web/live/signin_live/index.html.heex:40 msgid "Saving..." msgstr "儲存中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:29 msgid "Time to Try Sleeping" msgstr "嘗試進入睡眠" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:37 #: lib/teslamate_web/live/settings_live/index.html.heex:56 msgid "min" msgstr "分鐘" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:81 msgid "Signed in successfully" msgstr "登入成功" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:134 msgid "Car is unlocked" msgstr "已鎖車" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:9 msgid "Create" msgstr "新建" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:138 #: lib/teslamate_web/live/car_live/summary.html.heex:43 msgid "Preconditioning" msgstr "預熱/冷" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:137 msgid "Sentry mode is enabled" msgstr "哨兵模式已啟用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:139 #: lib/teslamate_web/live/car_live/summary.html.heex:53 msgid "Driver present" msgstr "駕駛中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:307 msgid "cancel sleep attempt" msgstr "取消休眠" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:302 msgid "try to sleep" msgstr "嘗試休眠" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:152 msgid "Range (est.)" msgstr "續航里程 (預估)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:107 msgid "for" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:68 msgid "Requirements" msgstr "休眠條件" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:77 msgid "Vehicle must be locked" msgstr "車輛必須處於鎖車狀態" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:133 msgid "Range (rated)" msgstr "續航里程 (表定)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:171 msgid "Charger Power" msgstr "充電功率" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:139 msgid "Preferred Range" msgstr "里程標定方式" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:135 msgid "Range" msgstr "里程" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "ideal" msgstr "理想狀態" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:146 msgid "rated" msgstr "表定狀態" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:132 msgid "Range (ideal)" msgstr "續航里程 (理想狀態)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:138 msgid "The car's estimate of remaining range is based on a fixed energy consumption in Wh/km. The Wh/km factor is determined by Tesla and is not country specific whereas the rated range is based on regulatory tests in the different markets for that vehicle." msgstr "" "實際續航里程會因車輛配置、電池使用時長和狀況、駕駛習慣及操作、環境和氣候狀況" "等因素的影響而有所不同。" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:141 msgid "Update in progress" msgstr "更新中" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:63 msgid "Windows open" msgstr "車窗 開" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/index.html.heex:51 msgid "Delete '%{geo_fence}'?" msgstr "確定刪除 ‘%{geo_fence}’ ?" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:262 msgid "Inside Temperature" msgstr "車內溫度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:250 msgid "Outside Temperature" msgstr "車外溫度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:287 #: lib/teslamate_web/live/settings_live/index.html.heex:268 msgid "Version" msgstr "車輛軟體版本" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:88 msgid "Health check failed" msgstr "健康檢查失敗" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:78 msgid "Unlocked" msgstr "已解鎖" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:119 msgid "Remaining Time" msgstr "剩餘時間" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:248 #: lib/teslamate_web/templates/layout/root.html.heex:47 msgid "Dashboards" msgstr "控制台" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:231 msgid "URLs" msgstr "URLs" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:162 #: lib/teslamate_web/live/settings_live/index.html.heex:234 msgid "Web App" msgstr "Web應用程式" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:112 msgid "Enabled" msgstr "已啟用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:24 msgid "Sleep Mode" msgstr "休眠模式" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.ex:189 msgid "Geo-fence \"%{name}\" updated" msgstr "收藏點 \"%{name}\" 已更新" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:143 msgid "An error occurred" msgstr "發生了一個錯誤" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:142 msgid "Timeout" msgstr "已超時" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:48 msgid "Reduced Battery Range" msgstr "已降低續航里程" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:222 msgid "≈ %{range} at 100%" msgstr "≈ 100%時續航為 %{range}" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:20 #: lib/teslamate_web/live/charge_live/cost.html.heex:4 msgid "Charge Cost" msgstr "充電費用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:103 #: lib/teslamate_web/live/geofence_live/form.html.heex:59 msgid "Cost" msgstr "費用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:119 msgid "Enter charge cost" msgstr "請輸入充電費用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.ex:87 msgid "Saved!" msgstr "已儲存!" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:38 msgid "Fetching vehicle data ..." msgstr "正在獲取車輛數據" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:177 msgid "Addresses" msgstr "地址" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:158 msgid "Language" msgstr "語言" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.ex:64 msgid "There was a problem retrieving data from OpenStreetMap. Please try again later." msgstr "在獲取地圖信息時發成錯誤,請稍後再試。" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:4 msgid "TeslaFi Import" msgstr "從TeslaFi匯入" @@ -449,60 +449,60 @@ msgid "Found %{count} file" msgid_plural "Found %{count} files" msgstr[0] "" -#, elixir-format -#: lib/teslamate_web/templates/layout/root.html.heex:87 +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:104 msgid "Donate" msgstr "捐贈" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.ex:34 #: lib/teslamate_web/live/import_live/index.html.heex:68 msgid "Import" msgstr "匯入" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/import_live/index.html.heex:58 msgid "Time zone" msgstr "時區" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:13 #: lib/teslamate_web/live/signin_live/index.html.heex:38 msgid "Sign in" msgstr "登入" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:90 msgid "Charge cost" msgstr "充電費用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:93 msgid "Free Supercharging" msgstr "免費超充" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:129 msgid "General Settings" msgstr "一般設定" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:83 msgid "Session fee" msgstr "手續費" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:68 msgid "Doors open" msgstr "未鎖車" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:111 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per kWh" msgstr "/度" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:110 msgid "Total" msgstr "總共" @@ -513,104 +513,124 @@ msgid "There is %{n} charging session at this location for whic msgid_plural "There are %{n} charging sessions at this location for which no costs have been added yet." msgstr[0] "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:134 msgid "Add costs retroactively" msgstr "過期費用追加" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:119 msgid "Charging Costs" msgstr "充電費用" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/geofence_live/form.html.heex:133 msgid "Continue" msgstr "下一步" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:275 msgid "Mileage" msgstr "里程表" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:109 msgid "Streaming API" msgstr "Tesla串接(預設)" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:283 msgid "Documentation" msgstr "說明文件" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:279 msgid "GitHub" msgstr "GitHub" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:274 -#: lib/teslamate_web/templates/layout/root.html.heex:95 +#: lib/teslamate_web/templates/layout/root.html.heex:112 msgid "Update available" msgstr "有可用更新" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:135 msgid "Doors are open" msgstr "未上鎖" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:136 msgid "Trunk is open" msgstr "後行李箱已打開" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/charge_live/cost.html.heex:112 #: lib/teslamate_web/live/geofence_live/form.html.heex:66 msgid "Per Minute" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.html.heex:83 msgid "Software Update available (%{version})" msgstr "有可用更新 (%{version})" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/settings_live/index.html.heex:295 msgid "Sign out" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:11 msgid "Access Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:24 msgid "Refresh Token" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:56 msgid "Tokens are invalid" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:49 msgid "Obtaining tokens through the Tesla API requires programming experience or a 3rd-party service. Information can be found %{here}." msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.html.heex:46 msgid "here" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/signin_live/index.ex:59 msgid "Your Tesla account is locked due to too many failed sign in attempts. To unlock your account, reset your password" msgstr "" -#, elixir-format, ex-autogen +#, elixir-autogen, elixir-format #: lib/teslamate_web/live/car_live/summary.ex:140 msgid "Downloading update" msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:80 +msgid "No encryption key provided" +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:84 +msgid "For more information, see the updated installation guides on %{link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/teslamate_web/templates/layout/root.html.heex:83 +msgid "The automatically generated encryption key used for the current session can be found in the application logs." +msgstr "" + +#, elixir-autogen, elixir-format, fuzzy +#: lib/teslamate_web/templates/layout/root.html.heex:82 +msgid "To ensure that your Tesla API tokens are stored securely, an encryption key must be provided to TeslaMate via the ENCRYPTION_KEY environment variable. Otherwise, a login will be required after every restart." +msgstr "" diff --git a/priv/repo/migrations/20220123131732_encrypt_api_tokens.exs b/priv/repo/migrations/20220123131732_encrypt_api_tokens.exs new file mode 100644 index 0000000000..3e35df0038 --- /dev/null +++ b/priv/repo/migrations/20220123131732_encrypt_api_tokens.exs @@ -0,0 +1,123 @@ +defmodule TeslaMate.Repo.Migrations.EncryptApiTokens do + use Ecto.Migration + + Code.ensure_loaded!(TeslaMate.Vault) + + defmodule Encrypted.Binary do + use Cloak.Ecto.Binary, vault: TeslaMate.Vault + end + + defmodule Tokens do + use Ecto.Schema + + schema "tokens" do + field(:refresh, :string) + field(:access, :string) + + field(:encrypted_refresh, Encrypted.Binary) + field(:encrypted_access, Encrypted.Binary) + end + end + + defmodule Encryption do + def setup do + {type, key} = + case System.get_env("ENCRYPTION_KEY") do + key when is_binary(key) and byte_size(key) > 0 -> {:existing, key} + _ -> {:generated, generate_key(64)} + end + + setup_vault(key) + + {type, key} + end + + defp generate_key(length) when length > 31 do + :crypto.strong_rand_bytes(length) |> Base.encode64(padding: false) |> binary_part(0, length) + end + + defp setup_vault(key) do + Cloak.Vault.save_config(TeslaMate.Vault.Config, + ciphers: [ + default: TeslaMate.Vault.default_chipher(:crypto.hash(:sha256, key)) + ] + ) + end + end + + defmodule Cache do + require Logger + + def store(encryption_key) do + Enum.each([System.tmp_dir(), import_dir()], fn dir -> + with dir when is_binary(dir) <- dir, + path = Path.join(dir, "tm_encryption.key"), + :ok <- File.write(path, encryption_key) do + Logger.info("Wrote encryption key to #{path}") + end + end) + end + + defp import_dir do + path = + System.get_env("IMPORT_DIR", "import") + |> Path.absname() + + if File.exists?(path), do: path + end + end + + alias TeslaMate.Repo + + def change do + alter table(:tokens) do + add :encrypted_refresh, :binary + add :encrypted_access, :binary + end + + flush() + + with [_ | _] = tokens <- Repo.all(Tokens) do + with {:generated, encryption_key} <- Encryption.setup() do + require Logger + + Logger.warning(""" + \n------------------------------------------------------------------------------ + No ENCRYPTION_KEY was found to encrypt and securly store your API tokens. + + Therefore, the following randomly generated key will be used instead: + + + #{encryption_key} + + + IMPORTANT: Create an environment variable named "ENCRYPTION_KEY" with the value + set to the key above and pass it to the application from now on. + + If you choose to use a different key, a new login with your API tokens will be + required once after starting the application. + ------------------------------------------------------------------------------ + """) + + Cache.store(encryption_key) + end + + Enum.each(tokens, fn %Tokens{} = tokens -> + tokens + |> Ecto.Changeset.change(%{ + encrypted_access: tokens.access, + encrypted_refresh: tokens.refresh + }) + |> Repo.update!() + end) + end + + alter table(:tokens) do + remove :access + remove :refresh + end + + rename table(:tokens), :encrypted_access, to: :access + rename table(:tokens), :encrypted_refresh, to: :refresh + end +end diff --git a/test/teslamate/api_test.exs b/test/teslamate/api_test.exs index 29a7afc2fb..6c9c4ac3f6 100644 --- a/test/teslamate/api_test.exs +++ b/test/teslamate/api_test.exs @@ -65,6 +65,11 @@ defmodule TeslaMate.ApiTest do @valid_tokens %Tokens{access: "$access", refresh: "$refresh"} + setup do + start_supervised!(TeslaMate.Vault) + :ok + end + describe "sign in" do test "starts without tokens", %{test: name} do with_mocks [auth_mock(self()), vehicle_mock(self())] do diff --git a/test/teslamate/auth_test.exs b/test/teslamate/auth_test.exs index 5b44df8472..8321e826ba 100644 --- a/test/teslamate/auth_test.exs +++ b/test/teslamate/auth_test.exs @@ -3,6 +3,11 @@ defmodule TeslaMate.AuthTest do alias TeslaMate.Auth + setup do + start_supervised!(TeslaMate.Vault) + :ok + end + describe "tokens" do @valid_attrs %{refresh_token: "some refresh token", token: "some access token"} @update_attrs %{ diff --git a/test/teslamate/vault_test.exs b/test/teslamate/vault_test.exs new file mode 100644 index 0000000000..c150b3abcf --- /dev/null +++ b/test/teslamate/vault_test.exs @@ -0,0 +1,103 @@ +defmodule TeslaMate.VaultTest do + use ExUnit.Case, async: false + + alias TeslaMate.Vault + + import Mock + + defp key_equals?(key) do + {_cipher_module, cipher_opts} = + Vault.Config + |> Cloak.Vault.read_config() + |> Access.fetch!(:ciphers) + |> Access.fetch!(:default) + + :crypto.hash(:sha256, key) == cipher_opts[:key] + end + + setup context do + keys = context[:encryption_key] || %{} + + config = Application.get_env(:teslamate, TeslaMate.Vault) + Application.put_env(:teslamate, TeslaMate.Vault, Keyword.put(config, :key, keys[:config])) + on_exit(fn -> Application.put_env(:teslamate, TeslaMate.Vault, config) end) + + if encryption_key = keys[:tmp_dir] || keys[:import_dir] do + tmp_dir = context[:tmp_dir] || raise "Add a :tmp_dir tag!" + tmp_path = Path.join(tmp_dir, "tm_encryption.key") + File.write!(tmp_path, encryption_key) + end + + :ok + end + + @tag encryption_key: %{config: "key_from_config"} + test "reads the encryption key from the application config" do + start_supervised!(Vault) + + assert key_equals?("key_from_config") + end + + @tag encryption_key: %{tmp_dir: "key_from_tmp_dir"}, + tmp_dir: "0" + test "falls back to reading the encryption key from the tmp dir", %{tmp_dir: tmp_dir} do + with_mock System, [], tmp_dir: fn -> tmp_dir end do + start_supervised!(Vault) + + assert key_equals?("key_from_tmp_dir") + assert called(System.tmp_dir()) + end + end + + @tag encryption_key: %{import_dir: "key_from_import_dir"}, + tmp_dir: "0" + test "falls back to reading the encryption key from the import dir", %{tmp_dir: tmp_dir} do + with_mock System, [], + tmp_dir: fn -> nil end, + get_env: fn "IMPORT_DIR", "import" -> tmp_dir end do + start_supervised!(Vault) + + assert key_equals?("key_from_import_dir") + assert called(System.get_env("IMPORT_DIR", "import")) + end + end + + @tag :capture_log + test "generates a random key if no key could be restored" do + start_supervised!(Vault) + + assert {:ok, ciphertext} = Vault.encrypt("plaintext") + assert {:ok, "plaintext"} = Vault.decrypt(ciphertext) + + # Restart GenServer + stop_supervised!(Vault) + start_supervised!(Vault) + + # decrytping the ciphertext won't work with the new key + assert {:ok, :error} = Vault.decrypt(ciphertext) + end + + describe "encryption_key_provided?/0" do + @tag encryption_key: %{config: "key"} + test "returns true if the encryption key was provided via the application config" do + start_supervised!(Vault) + + assert Vault.encryption_key_provided?() + end + + @tag :capture_log + @tag encryption_key: %{config: nil} + test "returns false if the encryption key was not provided" do + start_supervised!(Vault) + + refute Vault.encryption_key_provided?() + end + end + + describe "default_chipher/1" do + test "uses AES in GCM mode with a 12 byte IV-length" do + assert {Cloak.Ciphers.AES.GCM, [tag: "AES.GCM.V1", key: "$key", iv_length: 12]} == + Vault.default_chipher("$key") + end + end +end diff --git a/website/docs/configuration/environment_variables.md b/website/docs/configuration/environment_variables.md index 50bde372cc..8c4084587f 100644 --- a/website/docs/configuration/environment_variables.md +++ b/website/docs/configuration/environment_variables.md @@ -6,29 +6,30 @@ sidebar_label: Environment Variables TeslaMate accepts the following environment variables for runtime configuration: -| Variable Name | Description | Default Value | -| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ | -| **DATABASE_USER** | Username (**required**) | | -| **DATABASE_PASS** | User password (**required**) | | -| **DATABASE_NAME** | The database to connect to (**required**) | | -| **DATABASE_HOST** | Hostname of the database server (**required**) | | -| **DATABASE_PORT** | Port of the database server | 5432 | -| **DATABASE_POOL_SIZE** | Size of the database connection pool | 10 | -| **DATABASE_TIMEOUT** | The time in milliseconds to wait for database query calls to finish | 60000 | -| **DATABASE_SSL** | Set to `true` if SSL should be used | false | -| **DATABASE_IPV6** | Set to `true` if IPv6 should be used | false | -| **VIRTUAL_HOST** | Host part used for generating URLs throughout the app | localhost | -| **CHECK_ORIGIN** | Configures whether to check the origin header or not. May be `true` (**recommended**), `false` (_default_) or a comma-separated list of hosts that are allowed (e.g. `https://example.com,//another.com:8080`). Hosts also support wildcards. If `true`, it will check against the host value in `VIRTUAL_HOST`. | false | -| **PORT** | Port where the web interface is exposed | 4000 | -| **HTTP_BINDING_ADDRESS** | IP address where the web interface is exposed, or blank (_default_) meaning all addresses. | | -| **DISABLE_MQTT** | Disables the MQTT feature if `true` | false | -| **MQTT_HOST** | Hostname of the broker (**required** unless DISABLE_MQTT is `true`) | | +| Variable Name | Description | Default Value | +| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | +| **ENCRYPTION_KEY** | A key used to encrypt the Tesla API tokens (**required**) | | +| **DATABASE_USER** | Username (**required**) | | +| **DATABASE_PASS** | User password (**required**) | | +| **DATABASE_NAME** | The database to connect to (**required**) | | +| **DATABASE_HOST** | Hostname of the database server (**required**) | | +| **DATABASE_PORT** | Port of the database server | 5432 | +| **DATABASE_POOL_SIZE** | Size of the database connection pool | 10 | +| **DATABASE_TIMEOUT** | The time in milliseconds to wait for database query calls to finish | 60000 | +| **DATABASE_SSL** | Set to `true` if SSL should be used | false | +| **DATABASE_IPV6** | Set to `true` if IPv6 should be used | false | +| **VIRTUAL_HOST** | Host part used for generating URLs throughout the app | localhost | +| **CHECK_ORIGIN** | Configures whether to check the origin header or not. May be `true` (**recommended**), `false` (_default_) or a comma-separated list of hosts that are allowed (e.g. `https://example.com,//another.com:8080`). Hosts also support wildcards. If `true`, it will check against the host value in `VIRTUAL_HOST`. | false | +| **PORT** | Port where the web interface is exposed | 4000 | +| **HTTP_BINDING_ADDRESS** | IP address where the web interface is exposed, or blank (_default_) meaning all addresses. | | +| **DISABLE_MQTT** | Disables the MQTT feature if `true` | false | +| **MQTT_HOST** | Hostname of the broker (**required** unless DISABLE_MQTT is `true`) | | | **MQTT_PORT** | Port of the broker | 1883 (8883 for MQTT over TLS) | -| **MQTT_USERNAME** | Username | | -| **MQTT_PASSWORD** | Password | | -| **MQTT_TLS** | Enables TLS if `true` | false | -| **MQTT_TLS_ACCEPT_INVALID_CERTS** | Accepts invalid certificates if `true` | false | -| **MQTT_IPV6** | Set to `true` if IPv6 should be used | false | -| **MQTT_NAMESPACE** | Inserts a custom namespace into the MQTT topic . For example, with `MQTT_NAMESPACE=account_0`: `teslamate/account_0/cars/$car_id/state`. | | -| **IMPORT_DIR** | The path of the directory for the import of data (e.g. TeslaFi) | ./import | -| **TZ** | Used to establish the local time zone, e.g. to use the local time in logs. See [List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). | | +| **MQTT_USERNAME** | Username | | +| **MQTT_PASSWORD** | Password | | +| **MQTT_TLS** | Enables TLS if `true` | false | +| **MQTT_TLS_ACCEPT_INVALID_CERTS** | Accepts invalid certificates if `true` | false | +| **MQTT_IPV6** | Set to `true` if IPv6 should be used | false | +| **MQTT_NAMESPACE** | Inserts a custom namespace into the MQTT topic . For example, with `MQTT_NAMESPACE=account_0`: `teslamate/account_0/cars/$car_id/state`. | | +| **IMPORT_DIR** | The path of the directory for the import of data (e.g. TeslaFi) | ./import | +| **TZ** | Used to establish the local time zone, e.g. to use the local time in logs. See [List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). | | diff --git a/website/docs/guides/apache.md b/website/docs/guides/apache.md index 8ba1eea9e9..5b985a2944 100644 --- a/website/docs/guides/apache.md +++ b/website/docs/guides/apache.md @@ -35,6 +35,7 @@ services: image: teslamate/teslamate:latest restart: always environment: + - ENCRYPTION_KEY=${TM_ENCRYPTION_KEY} - DATABASE_USER=${TM_DB_USER} - DATABASE_PASS=${TM_DB_PASS} - DATABASE_NAME=${TM_DB_NAME} @@ -101,6 +102,7 @@ volumes: This file should reside in the same folder as the docker-compose.yml file. ```plaintext title=".env" +TM_ENCRYPTION_KEY= #your secure key to encrypt your Tesla API tokens TM_DB_USER=teslamate TM_DB_PASS= #your secure password! TM_DB_NAME=teslamate diff --git a/website/docs/guides/traefik.md b/website/docs/guides/traefik.md index 90873aceda..2294c77c82 100644 --- a/website/docs/guides/traefik.md +++ b/website/docs/guides/traefik.md @@ -32,6 +32,7 @@ services: depends_on: - database environment: + - ENCRYPTION_KEY=${TM_ENCRYPTION_KEY} - DATABASE_USER=${TM_DB_USER} - DATABASE_PASS=${TM_DB_PASS} - DATABASE_NAME=${TM_DB_NAME} @@ -141,6 +142,7 @@ volumes: ### .env ```plaintext title=".env" +TM_ENCRYPTION_KEY= #your secure key to encrypt your Tesla API tokens TM_DB_USER=teslamate TM_DB_PASS= #your secure password! TM_DB_NAME=teslamate diff --git a/website/docs/installation/debian.md b/website/docs/installation/debian.md index 836ccc13f6..2e4d4be28e 100644 --- a/website/docs/installation/debian.md +++ b/website/docs/installation/debian.md @@ -212,6 +212,7 @@ You should at least substitute the following details: - `TESLAMATEPATH` should be the path that you ran the `git clone` within. ``` +export ENCRYPTION_KEY="your_secure_encryption_key_here" export DATABASE_USER="teslamate" export DATABASE_PASS="your_secure_password_here" export DATABASE_HOST="127.0.0.1" @@ -229,6 +230,7 @@ $TESLAMATEPATH/_build/prod/rel/teslamate/bin/teslamate start The following command needs to be run once during the installation process in order to create the database schema for the TeslaMate installation: ```bash +export ENCRYPTION_KEY="your_secure_encryption_key_here" export DATABASE_USER="teslamate" export DATABASE_PASS="your_secure_password_here" export DATABASE_HOST="127.0.0.1" diff --git a/website/docs/installation/docker.md b/website/docs/installation/docker.md index a44b938d32..352978c979 100644 --- a/website/docs/installation/docker.md +++ b/website/docs/installation/docker.md @@ -26,8 +26,9 @@ This setup is recommended only if you are running TeslaMate **on your home netwo image: teslamate/teslamate:latest restart: always environment: + - ENCRYPTION_KEY= #insert a secure key to encrypt your Tesla API tokens - DATABASE_USER=teslamate - - DATABASE_PASS= #insert your secure password! + - DATABASE_PASS= #insert your secure database password! - DATABASE_NAME=teslamate - DATABASE_HOST=database - MQTT_HOST=mosquitto @@ -43,7 +44,7 @@ This setup is recommended only if you are running TeslaMate **on your home netwo restart: always environment: - POSTGRES_USER=teslamate - - POSTGRES_PASSWORD= #insert your secure password! + - POSTGRES_PASSWORD= #insert your secure database password! - POSTGRES_DB=teslamate volumes: - teslamate-db:/var/lib/postgresql/data @@ -53,7 +54,7 @@ This setup is recommended only if you are running TeslaMate **on your home netwo restart: always environment: - DATABASE_USER=teslamate - - DATABASE_PASS= #insert your secure password! + - DATABASE_PASS= #insert your secure database password! - DATABASE_NAME=teslamate - DATABASE_HOST=database ports: @@ -78,9 +79,9 @@ This setup is recommended only if you are running TeslaMate **on your home netwo mosquitto-data: ``` -2. Choose your secure database password and insert it at every occurence of `DATABASE_PASS` and `POSTGRES_PASSWORD` - -3. Start the docker containers with `docker-compose up`. To run the containers in the background add the `-d` flag: +2. **Choose a secure encryption key** that will be used to encrypt your Tesla API tokens (insert as `ENCRYPTION_KEY`). +3. **Choose your secure database password** and insert it at every occurence of `DATABASE_PASS` and `POSTGRES_PASSWORD` +4. Start the docker containers with `docker-compose up`. To run the containers in the background add the `-d` flag: ```bash docker-compose up -d diff --git a/website/docs/installation/freebsd.md b/website/docs/installation/freebsd.md index df3557f410..40c6a14632 100644 --- a/website/docs/installation/freebsd.md +++ b/website/docs/installation/freebsd.md @@ -184,6 +184,7 @@ DATABASE_NAME=${teslamate_db-"teslamate"}; export DATABASE_NAME DATABASE_HOST=${teslamate_db_host-"localhost"}; export DATABASE_HOST DATABASE_USER=${teslamate_db_user-"teslamate"}; export DATABASE_USER DATABASE_PASS=${teslamate_db_pass}; export DATABASE_PASS +ENCRYPTION_KEY=${teslamate_encryption_key}; export ENCRYPTION_KEY DISABLE_MQTT=${teslamate_mqtt_enable-"FALSE"}; export DISABLE_MQTT MQTT_HOST=${teslamate_mqtt_host-"localhost"}; export MQTT_HOST VIRTUAL_HOST=${teslamate_virtual_host-"teslamate.example.com"}; export VIRTUAL_HOST @@ -212,6 +213,7 @@ echo teslamate_enable="YES" >> /etc/rc.conf echo teslamate_db_host="localhost" >> /etc/rc.conf echo teslamate_port="5432" >> /etc/rc.conf echo teslamate_db_pass="" >> /etc/rc.conf +echo teslamate_encryption_key="" >> /etc/rc.conf echo teslamate_disable_mqtt="true" >> /etc/rc.conf echo teslamate_timezone="" >> /etc/rc.conf #i.e. Europe/Berlin ```