diff --git a/lib/exmr_web/components/layouts/root.html.heex b/lib/exmr_web/components/layouts/root.html.heex index 520a812..1d1e3c9 100644 --- a/lib/exmr_web/components/layouts/root.html.heex +++ b/lib/exmr_web/components/layouts/root.html.heex @@ -30,7 +30,7 @@ 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" > - Settings + <%= gettext("Settings") %>
  • @@ -39,7 +39,7 @@ 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" > - Log out + <%= gettext("Log out") %>
  • <% else %> diff --git a/lib/exmr_web/live/exam_live/form_component.ex b/lib/exmr_web/live/exam_live/form_component.ex index f6a3642..998b77f 100644 --- a/lib/exmr_web/live/exam_live/form_component.ex +++ b/lib/exmr_web/live/exam_live/form_component.ex @@ -9,7 +9,9 @@ defmodule ExmrWeb.ExamLive.FormComponent do
    <.header> <%= @title %> - <:subtitle>Use this form to manage exam records in your database. + <:subtitle> + <%= gettext("Use this form to manage exam records in your database.") %> + <.simple_form @@ -19,11 +21,11 @@ defmodule ExmrWeb.ExamLive.FormComponent do phx-change="validate" phx-submit="save" > - <.input field={@form[:subject]} type="text" label="Subject" /> - <.input field={@form[:description]} type="text" label="Description" /> - <.input field={@form[:date]} type="date" label="Date" /> + <.input field={@form[:subject]} type="text" label={gettext("Subject")} /> + <.input field={@form[:description]} type="text" label={gettext("Description")} /> + <.input field={@form[:date]} type="date" label={gettext("Date")} /> <:actions> - <.button phx-disable-with="Saving...">Save Exam + <.button phx-disable-with={gettext("Saving...")}><%= gettext("Save Exam") %>
    diff --git a/lib/exmr_web/live/exam_live/index.ex b/lib/exmr_web/live/exam_live/index.ex index 3326460..d304dbc 100644 --- a/lib/exmr_web/live/exam_live/index.ex +++ b/lib/exmr_web/live/exam_live/index.ex @@ -29,7 +29,7 @@ defmodule ExmrWeb.ExamLive.Index do defp apply_action(socket, :new, _params) do socket - |> assign(:page_title, "New Exam") + |> assign(:page_title, gettext("New Exam")) |> assign(:exam, %Exam{}) end diff --git a/lib/exmr_web/live/exam_live/index.html.heex b/lib/exmr_web/live/exam_live/index.html.heex index 6940612..ab560ea 100644 --- a/lib/exmr_web/live/exam_live/index.html.heex +++ b/lib/exmr_web/live/exam_live/index.html.heex @@ -1,5 +1,5 @@ <.header> - Listing Exams + <%= gettext("Listing Exams") %>
    | @@ -20,6 +20,7 @@
    <%= 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 "Сохранение..."