<%= exam.subject %>
+
<%= exam.date %> |
<%= case Date.diff(exam.date, Date.utc_today()) do
diff --git a/lib/exmr_web/live/user_settings_live.ex b/lib/exmr_web/live/user_settings_live.ex
index c1a832a..09feec2 100644
--- a/lib/exmr_web/live/user_settings_live.ex
+++ b/lib/exmr_web/live/user_settings_live.ex
@@ -6,8 +6,8 @@ defmodule ExmrWeb.UserSettingsLive do
def render(assigns) do
~H"""
<.header class="text-center">
- Account Settings
- <:subtitle>Manage your account email address and password settings
+ <%= gettext("Account Settings") %>
+ <:subtitle><%= gettext("Manage your account email address and password settings") %>
@@ -18,18 +18,20 @@ defmodule ExmrWeb.UserSettingsLive do
phx-submit="update_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
field={@email_form[:current_password]}
name="current_password"
id="current_password_for_email"
type="password"
- label="Current password"
+ label={gettext("Current password")}
value={@email_form_current_password}
required
/>
<:actions>
- <.button phx-disable-with="Changing...">Change Email
+ <.button phx-disable-with={gettext("Changing...")}>
+ <%= gettext("Change Email") %>
+
@@ -49,23 +51,30 @@ defmodule ExmrWeb.UserSettingsLive do
id="hidden_user_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
field={@password_form[:password_confirmation]}
type="password"
- label="Confirm new password"
+ label={gettext("Confirm new password")}
/>
<.input
field={@password_form[:current_password]}
name="current_password"
type="password"
- label="Current password"
+ label={gettext("Current password")}
id="current_password_for_password"
value={@current_password}
required
/>
<:actions>
- <.button phx-disable-with="Changing...">Change Password
+ <.button phx-disable-with={gettext("Changing...")}>
+ <%= gettext("Change Password") %>
+
@@ -77,10 +86,10 @@ defmodule ExmrWeb.UserSettingsLive do
socket =
case Users.update_user_email(socket.assigns.current_user, token) do
:ok ->
- put_flash(socket, :info, "Email changed successfully.")
+ put_flash(socket, :info, gettext("Email changed successfully."))
: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
{:ok, push_navigate(socket, to: ~p"/users/settings")}
@@ -127,7 +136,7 @@ defmodule ExmrWeb.UserSettingsLive do
&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)}
{:error, changeset} ->
diff --git a/lib/exmr_web/router.ex b/lib/exmr_web/router.ex
index 2db5542..eb1d7ef 100644
--- a/lib/exmr_web/router.ex
+++ b/lib/exmr_web/router.ex
@@ -54,7 +54,7 @@ defmodule ExmrWeb.Router do
pipe_through [:browser, :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
live "/users/register", UserRegistrationLive, :new
end
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index 91c4d4e..767d0d5 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -51,6 +51,7 @@ msgstr ""
msgid "Hang in there while we get back on track"
msgstr ""
+#: lib/exmr_web/live/exam_live/index.ex:32
#: lib/exmr_web/live/exam_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "New Exam"
@@ -111,3 +112,110 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "days passed"
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 ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index b6987d9..440865d 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -51,6 +51,7 @@ msgstr ""
msgid "Hang in there while we get back on track"
msgstr ""
+#: lib/exmr_web/live/exam_live/index.ex:32
#: lib/exmr_web/live/exam_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "New Exam"
@@ -111,3 +112,110 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "days passed"
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 ""
diff --git a/priv/gettext/ru/LC_MESSAGES/default.po b/priv/gettext/ru/LC_MESSAGES/default.po
index 172fa47..41cf9cf 100644
--- a/priv/gettext/ru/LC_MESSAGES/default.po
+++ b/priv/gettext/ru/LC_MESSAGES/default.po
@@ -7,19 +7,22 @@
# # Run "mix gettext.extract" to bring this file up to
# # date. Leave "msgstr"s empty as changing them here has no
# # effect: edit them in PO (.po) files instead.
+# Vladimir Rubin
, 2024.
#
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: unnamed project\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2024-12-11 22:16+0200\n"
+"Last-Translator: Vladimir Rubin \n"
+"Language-Team: Russian\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\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
msgid "A simple, modern, and fast exam management system."
@@ -35,7 +38,9 @@ msgstr "Попытка восстановить соединение"
#: lib/exmr_web/controllers/page_html/home.html.heex:54
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
msgid "Edit"
@@ -53,6 +58,7 @@ msgstr "Экзамены"
msgid "Hang in there while we get back on track"
msgstr "Держитесь, пока мы не вернемся в строй"
+#: lib/exmr_web/live/exam_live/index.ex:32
#: lib/exmr_web/live/exam_live/index.html.heex:12
msgid "New Exam"
msgstr "Новый экзамен"
@@ -101,3 +107,94 @@ msgstr "дней осталось"
#: lib/exmr_web/live/exam_live/index.html.heex:29
msgid "days passed"
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 "Сохранение..."