feat: add i18n #3
9 changed files with 353 additions and 28 deletions
|
@ -30,7 +30,7 @@
|
||||||
href={~p"/users/settings"}
|
href={~p"/users/settings"}
|
||||||
class="text-[0.8125rem] leading-6 text-zinc-900 font-semibold hover:text-zinc-700 dark:text-zinc-300 dark:hover:text-zinc-100"
|
class="text-[0.8125rem] leading-6 text-zinc-900 font-semibold hover:text-zinc-700 dark:text-zinc-300 dark:hover:text-zinc-100"
|
||||||
>
|
>
|
||||||
Settings
|
<%= gettext("Settings") %>
|
||||||
</.link>
|
</.link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
method="delete"
|
method="delete"
|
||||||
class="text-[0.8125rem] leading-6 text-zinc-900 font-semibold hover:text-zinc-700 dark:text-zinc-300 dark:hover:text-zinc-100"
|
class="text-[0.8125rem] leading-6 text-zinc-900 font-semibold hover:text-zinc-700 dark:text-zinc-300 dark:hover:text-zinc-100"
|
||||||
>
|
>
|
||||||
Log out
|
<%= gettext("Log out") %>
|
||||||
</.link>
|
</.link>
|
||||||
</li>
|
</li>
|
||||||
<% else %>
|
<% else %>
|
||||||
|
|
|
@ -9,7 +9,9 @@ defmodule ExmrWeb.ExamLive.FormComponent do
|
||||||
<div>
|
<div>
|
||||||
<.header>
|
<.header>
|
||||||
<%= @title %>
|
<%= @title %>
|
||||||
<:subtitle>Use this form to manage exam records in your database.</:subtitle>
|
<:subtitle>
|
||||||
|
<%= gettext("Use this form to manage exam records in your database.") %>
|
||||||
|
</:subtitle>
|
||||||
</.header>
|
</.header>
|
||||||
|
|
||||||
<.simple_form
|
<.simple_form
|
||||||
|
@ -19,11 +21,11 @@ defmodule ExmrWeb.ExamLive.FormComponent do
|
||||||
phx-change="validate"
|
phx-change="validate"
|
||||||
phx-submit="save"
|
phx-submit="save"
|
||||||
>
|
>
|
||||||
<.input field={@form[:subject]} type="text" label="Subject" />
|
<.input field={@form[:subject]} type="text" label={gettext("Subject")} />
|
||||||
<.input field={@form[:description]} type="text" label="Description" />
|
<.input field={@form[:description]} type="text" label={gettext("Description")} />
|
||||||
<.input field={@form[:date]} type="date" label="Date" />
|
<.input field={@form[:date]} type="date" label={gettext("Date")} />
|
||||||
<:actions>
|
<:actions>
|
||||||
<.button phx-disable-with="Saving...">Save Exam</.button>
|
<.button phx-disable-with={gettext("Saving...")}><%= gettext("Save Exam") %></.button>
|
||||||
</:actions>
|
</:actions>
|
||||||
</.simple_form>
|
</.simple_form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -29,7 +29,7 @@ defmodule ExmrWeb.ExamLive.Index do
|
||||||
|
|
||||||
defp apply_action(socket, :new, _params) do
|
defp apply_action(socket, :new, _params) do
|
||||||
socket
|
socket
|
||||||
|> assign(:page_title, "New Exam")
|
|> assign(:page_title, gettext("New Exam"))
|
||||||
|> assign(:exam, %Exam{})
|
|> assign(:exam, %Exam{})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<.header>
|
<.header>
|
||||||
Listing Exams
|
<%= gettext("Listing Exams") %>
|
||||||
<div>
|
<div>
|
||||||
<button phx-click="sort" phx-value-by="subject" class="font-light"><%= gettext("Sort by Subject") %></button>
|
<button phx-click="sort" phx-value-by="subject" class="font-light"><%= gettext("Sort by Subject") %></button>
|
||||||
<a>|</a>
|
<a>|</a>
|
||||||
|
@ -20,6 +20,7 @@
|
||||||
<div class="grow">
|
<div class="grow">
|
||||||
<div class="font-bold"><%= exam.subject %></div>
|
<div class="font-bold"><%= exam.subject %></div>
|
||||||
<div class="font-sm">
|
<div class="font-sm">
|
||||||
|
<!-- TODO: change to use ngettext -->
|
||||||
<%= exam.date %> |
|
<%= exam.date %> |
|
||||||
<b>
|
<b>
|
||||||
<%= case Date.diff(exam.date, Date.utc_today()) do
|
<%= case Date.diff(exam.date, Date.utc_today()) do
|
||||||
|
|
|
@ -6,8 +6,8 @@ defmodule ExmrWeb.UserSettingsLive do
|
||||||
def render(assigns) do
|
def render(assigns) do
|
||||||
~H"""
|
~H"""
|
||||||
<.header class="text-center">
|
<.header class="text-center">
|
||||||
Account Settings
|
<%= gettext("Account Settings") %>
|
||||||
<:subtitle>Manage your account email address and password settings</:subtitle>
|
<:subtitle><%= gettext("Manage your account email address and password settings") %></:subtitle>
|
||||||
</.header>
|
</.header>
|
||||||
|
|
||||||
<div class="space-y-12 divide-y">
|
<div class="space-y-12 divide-y">
|
||||||
|
@ -18,18 +18,20 @@ defmodule ExmrWeb.UserSettingsLive do
|
||||||
phx-submit="update_email"
|
phx-submit="update_email"
|
||||||
phx-change="validate_email"
|
phx-change="validate_email"
|
||||||
>
|
>
|
||||||
<.input field={@email_form[:email]} type="email" label="Email" required />
|
<.input field={@email_form[:email]} type="email" label={gettext("Email")} required />
|
||||||
<.input
|
<.input
|
||||||
field={@email_form[:current_password]}
|
field={@email_form[:current_password]}
|
||||||
name="current_password"
|
name="current_password"
|
||||||
id="current_password_for_email"
|
id="current_password_for_email"
|
||||||
type="password"
|
type="password"
|
||||||
label="Current password"
|
label={gettext("Current password")}
|
||||||
value={@email_form_current_password}
|
value={@email_form_current_password}
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
<:actions>
|
<:actions>
|
||||||
<.button phx-disable-with="Changing...">Change Email</.button>
|
<.button phx-disable-with={gettext("Changing...")}>
|
||||||
|
<%= gettext("Change Email") %>
|
||||||
|
</.button>
|
||||||
</:actions>
|
</:actions>
|
||||||
</.simple_form>
|
</.simple_form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -49,23 +51,30 @@ defmodule ExmrWeb.UserSettingsLive do
|
||||||
id="hidden_user_email"
|
id="hidden_user_email"
|
||||||
value={@current_email}
|
value={@current_email}
|
||||||
/>
|
/>
|
||||||
<.input field={@password_form[:password]} type="password" label="New password" required />
|
<.input
|
||||||
|
field={@password_form[:password]}
|
||||||
|
type="password"
|
||||||
|
label={gettext("New password")}
|
||||||
|
required
|
||||||
|
/>
|
||||||
<.input
|
<.input
|
||||||
field={@password_form[:password_confirmation]}
|
field={@password_form[:password_confirmation]}
|
||||||
type="password"
|
type="password"
|
||||||
label="Confirm new password"
|
label={gettext("Confirm new password")}
|
||||||
/>
|
/>
|
||||||
<.input
|
<.input
|
||||||
field={@password_form[:current_password]}
|
field={@password_form[:current_password]}
|
||||||
name="current_password"
|
name="current_password"
|
||||||
type="password"
|
type="password"
|
||||||
label="Current password"
|
label={gettext("Current password")}
|
||||||
id="current_password_for_password"
|
id="current_password_for_password"
|
||||||
value={@current_password}
|
value={@current_password}
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
<:actions>
|
<:actions>
|
||||||
<.button phx-disable-with="Changing...">Change Password</.button>
|
<.button phx-disable-with={gettext("Changing...")}>
|
||||||
|
<%= gettext("Change Password") %>
|
||||||
|
</.button>
|
||||||
</:actions>
|
</:actions>
|
||||||
</.simple_form>
|
</.simple_form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -77,10 +86,10 @@ defmodule ExmrWeb.UserSettingsLive do
|
||||||
socket =
|
socket =
|
||||||
case Users.update_user_email(socket.assigns.current_user, token) do
|
case Users.update_user_email(socket.assigns.current_user, token) do
|
||||||
:ok ->
|
:ok ->
|
||||||
put_flash(socket, :info, "Email changed successfully.")
|
put_flash(socket, :info, gettext("Email changed successfully."))
|
||||||
|
|
||||||
:error ->
|
:error ->
|
||||||
put_flash(socket, :error, "Email change link is invalid or it has expired.")
|
put_flash(socket, :error, gettext("Email change link is invalid or it has expired."))
|
||||||
end
|
end
|
||||||
|
|
||||||
{:ok, push_navigate(socket, to: ~p"/users/settings")}
|
{:ok, push_navigate(socket, to: ~p"/users/settings")}
|
||||||
|
@ -127,7 +136,7 @@ defmodule ExmrWeb.UserSettingsLive do
|
||||||
&url(~p"/users/settings/confirm_email/#{&1}")
|
&url(~p"/users/settings/confirm_email/#{&1}")
|
||||||
)
|
)
|
||||||
|
|
||||||
info = "A link to confirm your email change has been sent to the new address."
|
info = gettext("A link to confirm your email change has been sent to the new address.")
|
||||||
{:noreply, socket |> put_flash(:info, info) |> assign(email_form_current_password: nil)}
|
{:noreply, socket |> put_flash(:info, info) |> assign(email_form_current_password: nil)}
|
||||||
|
|
||||||
{:error, changeset} ->
|
{:error, changeset} ->
|
||||||
|
|
|
@ -54,7 +54,7 @@ defmodule ExmrWeb.Router do
|
||||||
pipe_through [:browser, :redirect_if_user_is_authenticated]
|
pipe_through [:browser, :redirect_if_user_is_authenticated]
|
||||||
|
|
||||||
live_session :redirect_if_user_is_authenticated,
|
live_session :redirect_if_user_is_authenticated,
|
||||||
on_mount: [{ExmrWeb.UserAuth, :redirect_if_user_is_authenticated}, Exmrweb.LiveHelpers] do
|
on_mount: [{ExmrWeb.UserAuth, :redirect_if_user_is_authenticated}, ExmrWeb.LiveHelpers] do
|
||||||
if Exmr.enable_registration() != "false" do
|
if Exmr.enable_registration() != "false" do
|
||||||
live "/users/register", UserRegistrationLive, :new
|
live "/users/register", UserRegistrationLive, :new
|
||||||
end
|
end
|
||||||
|
|
|
@ -51,6 +51,7 @@ msgstr ""
|
||||||
msgid "Hang in there while we get back on track"
|
msgid "Hang in there while we get back on track"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/index.ex:32
|
||||||
#: lib/exmr_web/live/exam_live/index.html.heex:12
|
#: lib/exmr_web/live/exam_live/index.html.heex:12
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New Exam"
|
msgid "New Exam"
|
||||||
|
@ -111,3 +112,110 @@ msgstr ""
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "days passed"
|
msgid "days passed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:139
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "A link to confirm your email change has been sent to the new address."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:9
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Account Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:33
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Change Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:76
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:32
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:75
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Changing..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:63
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Confirm new password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:27
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:69
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Current password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:21
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:92
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email change link is invalid or it has expired."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:89
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email changed successfully."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/components/layouts/root.html.heex:42
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Log out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:10
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Manage your account email address and password settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:57
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/components/layouts/root.html.heex:33
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:26
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:25
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Description"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:24
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Subject"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:13
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Use this form to manage exam records in your database."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/index.html.heex:2
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Listing Exams"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:28
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Save Exam"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:28
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Saving..."
|
||||||
|
msgstr ""
|
||||||
|
|
|
@ -51,6 +51,7 @@ msgstr ""
|
||||||
msgid "Hang in there while we get back on track"
|
msgid "Hang in there while we get back on track"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/index.ex:32
|
||||||
#: lib/exmr_web/live/exam_live/index.html.heex:12
|
#: lib/exmr_web/live/exam_live/index.html.heex:12
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New Exam"
|
msgid "New Exam"
|
||||||
|
@ -111,3 +112,110 @@ msgstr ""
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "days passed"
|
msgid "days passed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:139
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "A link to confirm your email change has been sent to the new address."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:9
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Account Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:33
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Change Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:76
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:32
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:75
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Changing..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:63
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Confirm new password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:27
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:69
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Current password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:21
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:92
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email change link is invalid or it has expired."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:89
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email changed successfully."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/components/layouts/root.html.heex:42
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Log out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:10
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Manage your account email address and password settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:57
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/components/layouts/root.html.heex:33
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:26
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:25
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Description"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:24
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Subject"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:13
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Use this form to manage exam records in your database."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/index.html.heex:2
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Listing Exams"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:28
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Save Exam"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:28
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Saving..."
|
||||||
|
msgstr ""
|
||||||
|
|
|
@ -7,19 +7,22 @@
|
||||||
# # Run "mix gettext.extract" to bring this file up to
|
# # Run "mix gettext.extract" to bring this file up to
|
||||||
# # date. Leave "msgstr"s empty as changing them here has no
|
# # date. Leave "msgstr"s empty as changing them here has no
|
||||||
# # effect: edit them in PO (.po) files instead.
|
# # effect: edit them in PO (.po) files instead.
|
||||||
|
# Vladimir Rubin <vavakado@proton.me>, 2024.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: unnamed project\n"
|
||||||
"POT-Creation-Date: \n"
|
"POT-Creation-Date: \n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: 2024-12-11 22:16+0200\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: Vladimir Rubin <vavakado@proton.me>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: Russian\n"
|
||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 3.4.2\n"
|
"X-Generator: Gtranslator 47.1\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||||
|
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
#: lib/exmr_web/controllers/page_html/home.html.heex:51
|
#: lib/exmr_web/controllers/page_html/home.html.heex:51
|
||||||
msgid "A simple, modern, and fast exam management system."
|
msgid "A simple, modern, and fast exam management system."
|
||||||
|
@ -35,7 +38,9 @@ msgstr "Попытка восстановить соединение"
|
||||||
|
|
||||||
#: lib/exmr_web/controllers/page_html/home.html.heex:54
|
#: lib/exmr_web/controllers/page_html/home.html.heex:54
|
||||||
msgid "Built using Phoenix LiveView, Ecto, and TailwindCSS by @vavakado"
|
msgid "Built using Phoenix LiveView, Ecto, and TailwindCSS by @vavakado"
|
||||||
msgstr "Создано с использованием Phoenix LiveView, Ecto и TailwindCSS в исполнении @vavakado"
|
msgstr ""
|
||||||
|
"Создано с использованием Phoenix LiveView, Ecto и TailwindCSS в исполнении "
|
||||||
|
"@vavakado"
|
||||||
|
|
||||||
#: lib/exmr_web/live/exam_live/index.html.heex:39
|
#: lib/exmr_web/live/exam_live/index.html.heex:39
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
|
@ -53,6 +58,7 @@ msgstr "Экзамены"
|
||||||
msgid "Hang in there while we get back on track"
|
msgid "Hang in there while we get back on track"
|
||||||
msgstr "Держитесь, пока мы не вернемся в строй"
|
msgstr "Держитесь, пока мы не вернемся в строй"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/index.ex:32
|
||||||
#: lib/exmr_web/live/exam_live/index.html.heex:12
|
#: lib/exmr_web/live/exam_live/index.html.heex:12
|
||||||
msgid "New Exam"
|
msgid "New Exam"
|
||||||
msgstr "Новый экзамен"
|
msgstr "Новый экзамен"
|
||||||
|
@ -101,3 +107,94 @@ msgstr "дней осталось"
|
||||||
#: lib/exmr_web/live/exam_live/index.html.heex:29
|
#: lib/exmr_web/live/exam_live/index.html.heex:29
|
||||||
msgid "days passed"
|
msgid "days passed"
|
||||||
msgstr "дней прошло"
|
msgstr "дней прошло"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:139
|
||||||
|
msgid "A link to confirm your email change has been sent to the new address."
|
||||||
|
msgstr ""
|
||||||
|
"На новый адрес отправлена ссылка для подтверждения изменения электронной "
|
||||||
|
"почты."
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:9
|
||||||
|
msgid "Account Settings"
|
||||||
|
msgstr "Настройки аккаунта"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:33
|
||||||
|
msgid "Change Email"
|
||||||
|
msgstr "Изменить электронную почту"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:76
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr "Изменить пароль"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:32
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:75
|
||||||
|
msgid "Changing..."
|
||||||
|
msgstr "Меняется..."
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:63
|
||||||
|
msgid "Confirm new password"
|
||||||
|
msgstr "Подтвердите новый пароль"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:27
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:69
|
||||||
|
msgid "Current password"
|
||||||
|
msgstr "Текущий пароль"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:21
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "Электронная почта"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:92
|
||||||
|
msgid "Email change link is invalid or it has expired."
|
||||||
|
msgstr ""
|
||||||
|
"Ссылка для изменения электронной почты недействительна или срок ее действия "
|
||||||
|
"истек."
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:89
|
||||||
|
msgid "Email changed successfully."
|
||||||
|
msgstr "Электронная почта успешно изменена."
|
||||||
|
|
||||||
|
#: lib/exmr_web/components/layouts/root.html.heex:42
|
||||||
|
msgid "Log out"
|
||||||
|
msgstr "Выйти из системы"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:10
|
||||||
|
msgid "Manage your account email address and password settings"
|
||||||
|
msgstr "Управление адресом электронной почты и настройками пароля"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/user_settings_live.ex:57
|
||||||
|
msgid "New password"
|
||||||
|
msgstr "Новый пароль"
|
||||||
|
|
||||||
|
#: lib/exmr_web/components/layouts/root.html.heex:33
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Настройки"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:26
|
||||||
|
msgid "Date"
|
||||||
|
msgstr "Дата"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:25
|
||||||
|
msgid "Description"
|
||||||
|
msgstr "Описание"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:24
|
||||||
|
msgid "Subject"
|
||||||
|
msgstr "Предмет"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:13
|
||||||
|
msgid "Use this form to manage exam records in your database."
|
||||||
|
msgstr ""
|
||||||
|
"Используйте эту форму для управления записями экзаменов в вашей базе данных."
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/index.html.heex:2
|
||||||
|
msgid "Listing Exams"
|
||||||
|
msgstr "Список Экзаменов"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:28
|
||||||
|
msgid "Save Exam"
|
||||||
|
msgstr "Сохранить экзамен"
|
||||||
|
|
||||||
|
#: lib/exmr_web/live/exam_live/form_component.ex:28
|
||||||
|
msgid "Saving..."
|
||||||
|
msgstr "Сохранение..."
|
||||||
|
|
Loading…
Reference in a new issue