- <.topbar current_user={assigns[:current_user]}> + <.topbar current_user={assigns[:current_user]} />
- <.topbar current_user={assigns[:current_user]}> + <.topbar current_user={assigns[:current_user]} />

- <%= label(f, :email, class: "title text-lg text-primary-400") %> + <%= label(f, :email, gettext("Email"), class: "title text-lg text-primary-400") %> <%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %> <%= submit(dgettext("actions", "Resend confirmation instructions"), diff --git a/lib/memex_web/templates/user_registration/new.html.heex b/lib/memex_web/templates/user_registration/new.html.heex index 4fba791..b426dbc 100644 --- a/lib/memex_web/templates/user_registration/new.html.heex +++ b/lib/memex_web/templates/user_registration/new.html.heex @@ -17,11 +17,11 @@ <%= hidden_input(f, :invite_token, value: @invite_token) %> <% end %> - <%= label(f, :email, class: "title text-lg text-primary-400") %> + <%= label(f, :email, gettext("email"), class: "title text-lg text-primary-400") %> <%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %> <%= error_tag(f, :email, "col-span-3") %> - <%= label(f, :password, class: "title text-lg text-primary-400") %> + <%= label(f, :password, gettext("password"), class: "title text-lg text-primary-400") %> <%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %> <%= error_tag(f, :password, "col-span-3") %> diff --git a/lib/memex_web/templates/user_reset_password/edit.html.heex b/lib/memex_web/templates/user_reset_password/edit.html.heex index 4ad5a4c..57b2f67 100644 --- a/lib/memex_web/templates/user_reset_password/edit.html.heex +++ b/lib/memex_web/templates/user_reset_password/edit.html.heex @@ -9,17 +9,15 @@ action={Routes.user_reset_password_path(@conn, :update, @token)} class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center" > -

-

- <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> -

-
+

+ <%= dgettext("errors", "oops, something went wrong! please check the errors below.") %> +

- <%= label(f, :password, "new password", class: "title text-lg text-primary-400") %> + <%= label(f, :password, gettext("new password"), class: "title text-lg text-primary-400") %> <%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %> <%= error_tag(f, :password, "col-span-3") %> - <%= label(f, :password_confirmation, "Confirm new password", + <%= label(f, :password_confirmation, gettext("confirm new password"), class: "title text-lg text-primary-400" ) %> <%= password_input(f, :password_confirmation, diff --git a/lib/memex_web/templates/user_reset_password/new.html.heex b/lib/memex_web/templates/user_reset_password/new.html.heex index 16f93fa..4d476de 100644 --- a/lib/memex_web/templates/user_reset_password/new.html.heex +++ b/lib/memex_web/templates/user_reset_password/new.html.heex @@ -9,7 +9,7 @@ action={Routes.user_reset_password_path(@conn, :create)} class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center" > - <%= label(f, :email, class: "title text-lg text-primary-400") %> + <%= label(f, :email, gettext("email"), class: "title text-lg text-primary-400") %> <%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %> <%= submit(dgettext("actions", "send instructions to reset password"), diff --git a/lib/memex_web/templates/user_session/new.html.heex b/lib/memex_web/templates/user_session/new.html.heex index 7179b98..8fc89f0 100644 --- a/lib/memex_web/templates/user_session/new.html.heex +++ b/lib/memex_web/templates/user_session/new.html.heex @@ -10,19 +10,17 @@ as="user" class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center" > -
-

- <%= @error_message %> -

-
+

+ <%= @error_message %> +

- <%= label(f, :email, class: "title text-lg text-primary-400") %> + <%= label(f, :email, gettext("email"), class: "title text-lg text-primary-400") %> <%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %> - <%= label(f, :password, class: "title text-lg text-primary-400") %> + <%= label(f, :password, gettext("password"), class: "title text-lg text-primary-400") %> <%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %> - <%= label(f, :remember_me, gettext("Keep me logged in for 60 days"), + <%= label(f, :remember_me, gettext("keep me logged in for 60 days"), class: "title text-lg text-primary-400" ) %> <%= checkbox(f, :remember_me, class: "checkbox col-span-2") %> diff --git a/lib/memex_web/templates/user_settings/edit.html.heex b/lib/memex_web/templates/user_settings/edit.html.heex index 2bde82e..59183b2 100644 --- a/lib/memex_web/templates/user_settings/edit.html.heex +++ b/lib/memex_web/templates/user_settings/edit.html.heex @@ -19,7 +19,7 @@ :if={@email_changeset.action && not @email_changeset.valid?()} class="alert alert-danger col-span-3" > - <%= dgettext("errors", "oops, something went wrong! Please check the errors below") %> + <%= dgettext("errors", "oops, something went wrong! please check the errors below") %>
<%= hidden_input(f, :action, name: "action", value: "update_email") %> @@ -57,12 +57,12 @@ <%= dgettext("actions", "change password") %> -
- <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> -
+ <%= dgettext("errors", "oops, something went wrong! please check the errors below.") %> +

<%= hidden_input(f, :action, name: "action", value: "update_password") %> @@ -115,7 +115,7 @@ :if={@locale_changeset.action && not @locale_changeset.valid?()} class="alert alert-danger col-span-3" > - <%= dgettext("errors", "oops, something went wrong! Please check the errors below") %> + <%= dgettext("errors", "oops, something went wrong! please check the errors below") %>
<%= hidden_input(f, :action, name: "action", value: "update_locale") %> diff --git a/lib/memex_web/views/layout_view.ex b/lib/memex_web/views/layout_view.ex index dec3d24..7d52142 100644 --- a/lib/memex_web/views/layout_view.ex +++ b/lib/memex_web/views/layout_view.ex @@ -1,13 +1,13 @@ defmodule MemexWeb.LayoutView do use MemexWeb, :view - import MemexWeb.{Components.Topbar, Gettext} + import MemexWeb.Components.Topbar alias MemexWeb.HomeLive # Phoenix LiveDashboard is available only in development by default, # so we instruct Elixir to not warn if the dashboard route is missing. @compile {:no_warn_undefined, {Routes, :live_dashboard_path, 2}} - def get_title(%{assigns: %{title: title}}) do + def get_title(%{assigns: %{title: title}}) when title not in [nil, ""] do gettext("memEx | %{title}", title: title) end diff --git a/mix.exs b/mix.exs index 17ad3a4..821ab14 100644 --- a/mix.exs +++ b/mix.exs @@ -5,7 +5,7 @@ defmodule Memex.MixProject do [ app: :memex, version: "0.1.9", - elixir: "~> 1.14", + elixir: "1.14.1", elixirc_paths: elixirc_paths(Mix.env()), compilers: Mix.compilers(), start_permanent: Mix.env() == :prod, diff --git a/priv/gettext/actions.pot b/priv/gettext/actions.pot index be69b85..b20e261 100644 --- a/priv/gettext/actions.pot +++ b/priv/gettext/actions.pot @@ -17,12 +17,12 @@ msgid "Resend confirmation instructions" msgstr "" #: lib/memex_web/templates/user_reset_password/edit.html.heex:3 -#: lib/memex_web/templates/user_reset_password/edit.html.heex:31 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:29 #, elixir-autogen, elixir-format msgid "Reset password" msgstr "" -#: lib/memex_web/live/invite_live/form_component.html.heex:29 +#: lib/memex_web/live/invite_live/form_component.html.heex:32 #, elixir-autogen, elixir-format msgid "Save" msgstr "" @@ -82,13 +82,13 @@ msgstr "" msgid "invite someone new!" msgstr "" -#: lib/memex_web/components/topbar.ex:124 +#: lib/memex_web/components/topbar.ex:122 #: lib/memex_web/templates/user_confirmation/new.html.heex:31 #: lib/memex_web/templates/user_registration/new.html.heex:44 -#: lib/memex_web/templates/user_reset_password/edit.html.heex:47 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:45 #: lib/memex_web/templates/user_reset_password/new.html.heex:31 #: lib/memex_web/templates/user_session/new.html.heex:3 -#: lib/memex_web/templates/user_session/new.html.heex:30 +#: lib/memex_web/templates/user_session/new.html.heex:28 #, elixir-autogen, elixir-format msgid "log in" msgstr "" @@ -108,13 +108,13 @@ msgstr "" msgid "new pipeline" msgstr "" -#: lib/memex_web/components/topbar.ex:115 +#: lib/memex_web/components/topbar.ex:113 #: lib/memex_web/templates/user_confirmation/new.html.heex:28 #: lib/memex_web/templates/user_registration/new.html.heex:3 #: lib/memex_web/templates/user_registration/new.html.heex:37 -#: lib/memex_web/templates/user_reset_password/edit.html.heex:44 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:42 #: lib/memex_web/templates/user_reset_password/new.html.heex:28 -#: lib/memex_web/templates/user_session/new.html.heex:41 +#: lib/memex_web/templates/user_session/new.html.heex:39 #, elixir-autogen, elixir-format msgid "register" msgstr "" @@ -141,7 +141,7 @@ msgstr "" #: lib/memex_web/templates/user_registration/new.html.heex:47 #: lib/memex_web/templates/user_reset_password/new.html.heex:3 -#: lib/memex_web/templates/user_session/new.html.heex:44 +#: lib/memex_web/templates/user_session/new.html.heex:42 #, elixir-autogen, elixir-format msgid "forgot your password?" msgstr "" diff --git a/priv/gettext/de/LC_MESSAGES/actions.po b/priv/gettext/de/LC_MESSAGES/actions.po index 7e02292..ae90599 100644 --- a/priv/gettext/de/LC_MESSAGES/actions.po +++ b/priv/gettext/de/LC_MESSAGES/actions.po @@ -17,12 +17,12 @@ msgid "Resend confirmation instructions" msgstr "" #: lib/memex_web/templates/user_reset_password/edit.html.heex:3 -#: lib/memex_web/templates/user_reset_password/edit.html.heex:31 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:29 #, elixir-autogen, elixir-format msgid "Reset password" msgstr "" -#: lib/memex_web/live/invite_live/form_component.html.heex:29 +#: lib/memex_web/live/invite_live/form_component.html.heex:32 #, elixir-autogen, elixir-format msgid "Save" msgstr "" @@ -82,13 +82,13 @@ msgstr "" msgid "invite someone new!" msgstr "" -#: lib/memex_web/components/topbar.ex:124 +#: lib/memex_web/components/topbar.ex:122 #: lib/memex_web/templates/user_confirmation/new.html.heex:31 #: lib/memex_web/templates/user_registration/new.html.heex:44 -#: lib/memex_web/templates/user_reset_password/edit.html.heex:47 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:45 #: lib/memex_web/templates/user_reset_password/new.html.heex:31 #: lib/memex_web/templates/user_session/new.html.heex:3 -#: lib/memex_web/templates/user_session/new.html.heex:30 +#: lib/memex_web/templates/user_session/new.html.heex:28 #, elixir-autogen, elixir-format msgid "log in" msgstr "" @@ -108,13 +108,13 @@ msgstr "" msgid "new pipeline" msgstr "" -#: lib/memex_web/components/topbar.ex:115 +#: lib/memex_web/components/topbar.ex:113 #: lib/memex_web/templates/user_confirmation/new.html.heex:28 #: lib/memex_web/templates/user_registration/new.html.heex:3 #: lib/memex_web/templates/user_registration/new.html.heex:37 -#: lib/memex_web/templates/user_reset_password/edit.html.heex:44 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:42 #: lib/memex_web/templates/user_reset_password/new.html.heex:28 -#: lib/memex_web/templates/user_session/new.html.heex:41 +#: lib/memex_web/templates/user_session/new.html.heex:39 #, elixir-autogen, elixir-format msgid "register" msgstr "" @@ -141,7 +141,7 @@ msgstr "" #: lib/memex_web/templates/user_registration/new.html.heex:47 #: lib/memex_web/templates/user_reset_password/new.html.heex:3 -#: lib/memex_web/templates/user_session/new.html.heex:44 +#: lib/memex_web/templates/user_session/new.html.heex:42 #, elixir-autogen, elixir-format, fuzzy msgid "forgot your password?" msgstr "" diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po index fdf117d..0a5eaf1 100644 --- a/priv/gettext/de/LC_MESSAGES/default.po +++ b/priv/gettext/de/LC_MESSAGES/default.po @@ -12,35 +12,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 3.7.4\n" -## This file is a PO Template file. -## -## "msgid"s here are often extracted from source code. -## Add new translations manually only if they're dynamic -## translations that can't be statically extracted. -## -## 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. -#: lib/memex_web/live/invite_live/index.html.heex:90 -#, elixir-autogen, elixir-format -msgid "Admins" -msgstr "" - #: lib/memex_web/controllers/user_confirmation_controller.ex:8 #, elixir-autogen, elixir-format msgid "Confirm your account" msgstr "" -#: lib/memex_web/templates/user_session/new.html.heex:25 -#, elixir-autogen, elixir-format -msgid "Keep me logged in for 60 days" -msgstr "" - -#: lib/memex_web/live/invite_live/form_component.html.heex:21 -#, elixir-autogen, elixir-format -msgid "Name" -msgstr "" - #: lib/memex_web/templates/layout/live.html.heex:43 #, elixir-autogen, elixir-format msgid "Reconnecting..." @@ -51,11 +27,6 @@ msgstr "" msgid "Reset your password" msgstr "" -#: lib/memex_web/live/invite_live/form_component.html.heex:25 -#, elixir-autogen, elixir-format -msgid "Uses left" -msgstr "" - #: lib/memex_web/live/context_live/show.html.heex:19 #: lib/memex_web/live/note_live/show.html.heex:19 #: lib/memex_web/live/pipeline_live/show.html.heex:27 @@ -78,6 +49,7 @@ msgstr "" msgid "built with sharing and collaboration in mind" msgstr "" +#: lib/memex_web/templates/user_reset_password/edit.html.heex:20 #: lib/memex_web/templates/user_settings/edit.html.heex:76 #, elixir-autogen, elixir-format msgid "confirm new password" @@ -132,12 +104,15 @@ msgstr "" msgid "edit invite" msgstr "" +#: lib/memex_web/templates/user_registration/new.html.heex:20 +#: lib/memex_web/templates/user_reset_password/new.html.heex:12 +#: lib/memex_web/templates/user_session/new.html.heex:17 #: lib/memex_web/templates/user_settings/edit.html.heex:27 #, elixir-autogen, elixir-format msgid "email" msgstr "" -#: lib/memex_web/components/user_card.ex:30 +#: lib/memex_web/components/user_card.ex:34 #, elixir-autogen, elixir-format msgid "email unconfirmed" msgstr "" @@ -200,6 +175,7 @@ msgstr "" msgid "new invite" msgstr "" +#: lib/memex_web/templates/user_reset_password/edit.html.heex:16 #: lib/memex_web/templates/user_settings/edit.html.heex:69 #, elixir-autogen, elixir-format msgid "new password" @@ -628,12 +604,12 @@ msgstr "" msgid "language" msgstr "" -#: lib/memex_web/components/user_card.ex:24 +#: lib/memex_web/components/user_card.ex:28 #, elixir-autogen, elixir-format, fuzzy msgid "user confirmed on%{confirmed_datetime}" msgstr "" -#: lib/memex_web/components/user_card.ex:35 +#: lib/memex_web/components/user_card.ex:39 #, elixir-autogen, elixir-format, fuzzy msgid "user registered on%{registered_datetime}" msgstr "" @@ -662,3 +638,39 @@ msgstr "" #, elixir-autogen, elixir-format, fuzzy msgid "get involved" msgstr "" + +#: lib/memex_web/templates/user_confirmation/new.html.heex:12 +#, elixir-autogen, elixir-format, fuzzy +msgid "Email" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:29 +#, elixir-autogen, elixir-format +msgid "Leave \"Uses left\" blank to make invite unlimited" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:90 +#, elixir-autogen, elixir-format, fuzzy +msgid "admins" +msgstr "" + +#: lib/memex_web/templates/user_session/new.html.heex:23 +#, elixir-autogen, elixir-format, fuzzy +msgid "keep me logged in for 60 days" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:21 +#, elixir-autogen, elixir-format, fuzzy +msgid "name" +msgstr "" + +#: lib/memex_web/templates/user_registration/new.html.heex:24 +#: lib/memex_web/templates/user_session/new.html.heex:20 +#, elixir-autogen, elixir-format, fuzzy +msgid "password" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:25 +#, elixir-autogen, elixir-format, fuzzy +msgid "uses left" +msgstr "" diff --git a/priv/gettext/de/LC_MESSAGES/errors.po b/priv/gettext/de/LC_MESSAGES/errors.po index 3614089..f51e698 100644 --- a/priv/gettext/de/LC_MESSAGES/errors.po +++ b/priv/gettext/de/LC_MESSAGES/errors.po @@ -20,12 +20,6 @@ msgstr "" msgid "Invalid email or password" msgstr "" -#: lib/memex_web/templates/user_reset_password/edit.html.heex:14 -#: lib/memex_web/templates/user_settings/edit.html.heex:64 -#, elixir-autogen, elixir-format -msgid "Oops, something went wrong! Please check the errors below." -msgstr "" - #: lib/memex_web/controllers/user_reset_password_controller.ex:63 #, elixir-autogen, elixir-format msgid "Reset password link is invalid or it has expired." @@ -79,12 +73,6 @@ msgstr "" msgid "must have the @ sign and no spaces" msgstr "" -#: lib/memex_web/templates/user_settings/edit.html.heex:22 -#: lib/memex_web/templates/user_settings/edit.html.heex:118 -#, elixir-autogen, elixir-format -msgid "oops, something went wrong! Please check the errors below" -msgstr "" - #: lib/memex/contexts/context.ex:58 #: lib/memex/contexts/context.ex:71 #: lib/memex/notes/note.ex:57 @@ -123,6 +111,8 @@ msgid "invalid format: only numbers, letters and hyphen are accepted. tags must msgstr "" #: lib/memex_web/templates/user_registration/new.html.heex:13 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:13 +#: lib/memex_web/templates/user_settings/edit.html.heex:64 #, elixir-autogen, elixir-format, fuzzy msgid "oops, something went wrong! please check the errors below." msgstr "" @@ -146,3 +136,9 @@ msgstr "" #, elixir-autogen, elixir-format, fuzzy msgid "unable to delete user" msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:22 +#: lib/memex_web/templates/user_settings/edit.html.heex:118 +#, elixir-autogen, elixir-format, fuzzy +msgid "oops, something went wrong! please check the errors below" +msgstr "" diff --git a/priv/gettext/de/LC_MESSAGES/prompts.po b/priv/gettext/de/LC_MESSAGES/prompts.po index 5cd3457..2b17d69 100644 --- a/priv/gettext/de/LC_MESSAGES/prompts.po +++ b/priv/gettext/de/LC_MESSAGES/prompts.po @@ -55,7 +55,7 @@ msgstr "" msgid "Password reset successfully." msgstr "" -#: lib/memex_web/live/invite_live/form_component.html.heex:31 +#: lib/memex_web/live/invite_live/form_component.html.heex:34 #, elixir-autogen, elixir-format msgid "Saving..." msgstr "" @@ -65,12 +65,6 @@ msgstr "" msgid "are you sure you want to change your language?" msgstr "" -#: lib/memex_web/live/invite_live/index.html.heex:101 -#: lib/memex_web/live/invite_live/index.html.heex:129 -#, elixir-autogen, elixir-format -msgid "are you sure you want to delete %{email}? This action is permanent!" -msgstr "" - #: lib/memex_web/live/invite_live/index.html.heex:43 #, elixir-autogen, elixir-format msgid "are you sure you want to delete the invite for %{invite_name}?" @@ -81,7 +75,7 @@ msgstr "" msgid "are you sure you want to delete your account?" msgstr "" -#: lib/memex_web/components/topbar.ex:90 +#: lib/memex_web/components/topbar.ex:89 #, elixir-autogen, elixir-format msgid "are you sure you want to log out?" msgstr "" @@ -156,3 +150,9 @@ msgstr "" #, elixir-autogen, elixir-format, fuzzy msgid "your account has been deleted" msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:101 +#: lib/memex_web/live/invite_live/index.html.heex:129 +#, elixir-autogen, elixir-format, fuzzy +msgid "are you sure you want to delete %{email}? this action is permanent!" +msgstr "" diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index f430a9b..1c935ad 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -10,26 +10,11 @@ msgid "" msgstr "" -#: lib/memex_web/live/invite_live/index.html.heex:90 -#, elixir-autogen, elixir-format -msgid "Admins" -msgstr "" - #: lib/memex_web/controllers/user_confirmation_controller.ex:8 #, elixir-autogen, elixir-format msgid "Confirm your account" msgstr "" -#: lib/memex_web/templates/user_session/new.html.heex:25 -#, elixir-autogen, elixir-format -msgid "Keep me logged in for 60 days" -msgstr "" - -#: lib/memex_web/live/invite_live/form_component.html.heex:21 -#, elixir-autogen, elixir-format -msgid "Name" -msgstr "" - #: lib/memex_web/templates/layout/live.html.heex:43 #, elixir-autogen, elixir-format msgid "Reconnecting..." @@ -40,11 +25,6 @@ msgstr "" msgid "Reset your password" msgstr "" -#: lib/memex_web/live/invite_live/form_component.html.heex:25 -#, elixir-autogen, elixir-format -msgid "Uses left" -msgstr "" - #: lib/memex_web/live/context_live/show.html.heex:19 #: lib/memex_web/live/note_live/show.html.heex:19 #: lib/memex_web/live/pipeline_live/show.html.heex:27 @@ -67,6 +47,7 @@ msgstr "" msgid "built with sharing and collaboration in mind" msgstr "" +#: lib/memex_web/templates/user_reset_password/edit.html.heex:20 #: lib/memex_web/templates/user_settings/edit.html.heex:76 #, elixir-autogen, elixir-format msgid "confirm new password" @@ -121,12 +102,15 @@ msgstr "" msgid "edit invite" msgstr "" +#: lib/memex_web/templates/user_registration/new.html.heex:20 +#: lib/memex_web/templates/user_reset_password/new.html.heex:12 +#: lib/memex_web/templates/user_session/new.html.heex:17 #: lib/memex_web/templates/user_settings/edit.html.heex:27 #, elixir-autogen, elixir-format msgid "email" msgstr "" -#: lib/memex_web/components/user_card.ex:30 +#: lib/memex_web/components/user_card.ex:34 #, elixir-autogen, elixir-format msgid "email unconfirmed" msgstr "" @@ -189,6 +173,7 @@ msgstr "" msgid "new invite" msgstr "" +#: lib/memex_web/templates/user_reset_password/edit.html.heex:16 #: lib/memex_web/templates/user_settings/edit.html.heex:69 #, elixir-autogen, elixir-format msgid "new password" @@ -617,12 +602,12 @@ msgstr "" msgid "language" msgstr "" -#: lib/memex_web/components/user_card.ex:24 +#: lib/memex_web/components/user_card.ex:28 #, elixir-autogen, elixir-format msgid "user confirmed on%{confirmed_datetime}" msgstr "" -#: lib/memex_web/components/user_card.ex:35 +#: lib/memex_web/components/user_card.ex:39 #, elixir-autogen, elixir-format msgid "user registered on%{registered_datetime}" msgstr "" @@ -651,3 +636,39 @@ msgstr "" #, elixir-autogen, elixir-format msgid "get involved" msgstr "" + +#: lib/memex_web/templates/user_confirmation/new.html.heex:12 +#, elixir-autogen, elixir-format +msgid "Email" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:29 +#, elixir-autogen, elixir-format +msgid "Leave \"Uses left\" blank to make invite unlimited" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:90 +#, elixir-autogen, elixir-format +msgid "admins" +msgstr "" + +#: lib/memex_web/templates/user_session/new.html.heex:23 +#, elixir-autogen, elixir-format +msgid "keep me logged in for 60 days" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:21 +#, elixir-autogen, elixir-format +msgid "name" +msgstr "" + +#: lib/memex_web/templates/user_registration/new.html.heex:24 +#: lib/memex_web/templates/user_session/new.html.heex:20 +#, elixir-autogen, elixir-format +msgid "password" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:25 +#, elixir-autogen, elixir-format +msgid "uses left" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/actions.po b/priv/gettext/en/LC_MESSAGES/actions.po new file mode 100644 index 0000000..8732fc0 --- /dev/null +++ b/priv/gettext/en/LC_MESSAGES/actions.po @@ -0,0 +1,163 @@ +## "msgid"s in this file come from POT (.pot) files. +### +### Do not add, change, or remove "msgid"s manually here as +### they're tied to the ones in the corresponding POT file +### (with the same domain). +### +### Use "mix gettext.extract --merge" or "mix gettext.merge" +### to merge POT files into PO files. +msgid "" +msgstr "" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: lib/memex_web/templates/user_confirmation/new.html.heex:3 +#: lib/memex_web/templates/user_confirmation/new.html.heex:15 +#, elixir-autogen, elixir-format +msgid "Resend confirmation instructions" +msgstr "" + +#: lib/memex_web/templates/user_reset_password/edit.html.heex:3 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:29 +#, elixir-autogen, elixir-format +msgid "Reset password" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:32 +#, elixir-autogen, elixir-format +msgid "Save" +msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:15 +#: lib/memex_web/templates/user_settings/edit.html.heex:43 +#, elixir-autogen, elixir-format +msgid "change email" +msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:111 +#: lib/memex_web/templates/user_settings/edit.html.heex:128 +#, elixir-autogen, elixir-format +msgid "change language" +msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:57 +#: lib/memex_web/templates/user_settings/edit.html.heex:97 +#, elixir-autogen, elixir-format +msgid "change password" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:82 +#, elixir-autogen, elixir-format +msgid "create invite" +msgstr "" + +#: lib/memex_web/live/context_live/index.html.heex:48 +#: lib/memex_web/live/context_live/show.html.heex:41 +#: lib/memex_web/live/note_live/index.html.heex:48 +#: lib/memex_web/live/note_live/show.html.heex:41 +#: lib/memex_web/live/pipeline_live/index.html.heex:48 +#: lib/memex_web/live/pipeline_live/show.html.heex:49 +#: lib/memex_web/live/pipeline_live/show.html.heex:118 +#, elixir-autogen, elixir-format +msgid "delete" +msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:151 +#, elixir-autogen, elixir-format +msgid "delete user" +msgstr "" + +#: lib/memex_web/live/context_live/index.html.heex:38 +#: lib/memex_web/live/context_live/show.html.heex:31 +#: lib/memex_web/live/note_live/index.html.heex:38 +#: lib/memex_web/live/note_live/show.html.heex:31 +#: lib/memex_web/live/pipeline_live/index.html.heex:38 +#: lib/memex_web/live/pipeline_live/show.html.heex:39 +#: lib/memex_web/live/pipeline_live/show.html.heex:107 +#, elixir-autogen, elixir-format +msgid "edit" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:12 +#, elixir-autogen, elixir-format +msgid "invite someone new!" +msgstr "" + +#: lib/memex_web/components/topbar.ex:122 +#: lib/memex_web/templates/user_confirmation/new.html.heex:31 +#: lib/memex_web/templates/user_registration/new.html.heex:44 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:45 +#: lib/memex_web/templates/user_reset_password/new.html.heex:31 +#: lib/memex_web/templates/user_session/new.html.heex:3 +#: lib/memex_web/templates/user_session/new.html.heex:28 +#, elixir-autogen, elixir-format +msgid "log in" +msgstr "" + +#: lib/memex_web/live/context_live/index.html.heex:59 +#, elixir-autogen, elixir-format +msgid "new context" +msgstr "" + +#: lib/memex_web/live/note_live/index.html.heex:59 +#, elixir-autogen, elixir-format +msgid "new note" +msgstr "" + +#: lib/memex_web/live/pipeline_live/index.html.heex:59 +#, elixir-autogen, elixir-format +msgid "new pipeline" +msgstr "" + +#: lib/memex_web/components/topbar.ex:113 +#: lib/memex_web/templates/user_confirmation/new.html.heex:28 +#: lib/memex_web/templates/user_registration/new.html.heex:3 +#: lib/memex_web/templates/user_registration/new.html.heex:37 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:42 +#: lib/memex_web/templates/user_reset_password/new.html.heex:28 +#: lib/memex_web/templates/user_session/new.html.heex:39 +#, elixir-autogen, elixir-format +msgid "register" +msgstr "" + +#: lib/memex_web/live/context_live/form_component.html.heex:40 +#: lib/memex_web/live/note_live/form_component.html.heex:40 +#: lib/memex_web/live/pipeline_live/form_component.html.heex:40 +#: lib/memex_web/live/step_live/form_component.html.heex:28 +#, elixir-autogen, elixir-format +msgid "save" +msgstr "" + +#: lib/memex_web/live/context_live/show.html.heex:24 +#: lib/memex_web/live/note_live/show.html.heex:24 +#: lib/memex_web/live/pipeline_live/show.html.heex:32 +#, elixir-autogen, elixir-format +msgid "back" +msgstr "" + +#: lib/memex_web/live/pipeline_live/show.html.heex:134 +#, elixir-autogen, elixir-format +msgid "add step" +msgstr "" + +#: lib/memex_web/templates/user_registration/new.html.heex:47 +#: lib/memex_web/templates/user_reset_password/new.html.heex:3 +#: lib/memex_web/templates/user_session/new.html.heex:42 +#, elixir-autogen, elixir-format +msgid "forgot your password?" +msgstr "" + +#: lib/memex_web/templates/user_reset_password/new.html.heex:15 +#, elixir-autogen, elixir-format +msgid "send instructions to reset password" +msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:142 +#, elixir-autogen, elixir-format +msgid "export data as json" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:25 +#, elixir-autogen, elixir-format +msgid "copy" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po new file mode 100644 index 0000000..d734376 --- /dev/null +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -0,0 +1,675 @@ +## "msgid"s in this file come from POT (.pot) files. +### +### Do not add, change, or remove "msgid"s manually here as +### they're tied to the ones in the corresponding POT file +### (with the same domain). +### +### Use "mix gettext.extract --merge" or "mix gettext.merge" +### to merge POT files into PO files. +msgid "" +msgstr "" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: lib/memex_web/controllers/user_confirmation_controller.ex:8 +#, elixir-autogen, elixir-format +msgid "Confirm your account" +msgstr "" + +#: lib/memex_web/templates/layout/live.html.heex:43 +#, elixir-autogen, elixir-format +msgid "Reconnecting..." +msgstr "" + +#: lib/memex_web/controllers/user_reset_password_controller.ex:36 +#, elixir-autogen, elixir-format +msgid "Reset your password" +msgstr "" + +#: lib/memex_web/live/context_live/show.html.heex:19 +#: lib/memex_web/live/note_live/show.html.heex:19 +#: lib/memex_web/live/pipeline_live/show.html.heex:27 +#, elixir-autogen, elixir-format +msgid "Visibility: %{visibility}" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:71 +#, elixir-autogen, elixir-format +msgid "accessible from any internet-capable device" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:85 +#, elixir-autogen, elixir-format +msgid "admins:" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:53 +#, elixir-autogen, elixir-format +msgid "built with sharing and collaboration in mind" +msgstr "" + +#: lib/memex_web/templates/user_reset_password/edit.html.heex:20 +#: lib/memex_web/templates/user_settings/edit.html.heex:76 +#, elixir-autogen, elixir-format +msgid "confirm new password" +msgstr "" + +#: lib/memex_web/live/note_live/form_component.html.heex:23 +#, elixir-autogen, elixir-format +msgid "content" +msgstr "" + +#: lib/memex_web/components/topbar.ex:52 +#: lib/memex_web/live/context_live/index.ex:35 +#: lib/memex_web/live/context_live/index.ex:43 +#: lib/memex_web/live/context_live/index.html.heex:3 +#, elixir-autogen, elixir-format +msgid "contexts" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:18 +#, elixir-autogen, elixir-format +msgid "contexts:" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:68 +#, elixir-autogen, elixir-format +msgid "convenient:" +msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:31 +#: lib/memex_web/templates/user_settings/edit.html.heex:85 +#, elixir-autogen, elixir-format +msgid "current password" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:58 +#, elixir-autogen, elixir-format +msgid "disable" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:12 +#, elixir-autogen, elixir-format +msgid "document notes about individual items or concepts" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:30 +#, elixir-autogen, elixir-format +msgid "document your processes, attaching contexts to each step" +msgstr "" + +#: lib/memex_web/live/invite_live/index.ex:34 +#, elixir-autogen, elixir-format +msgid "edit invite" +msgstr "" + +#: lib/memex_web/templates/user_registration/new.html.heex:20 +#: lib/memex_web/templates/user_reset_password/new.html.heex:12 +#: lib/memex_web/templates/user_session/new.html.heex:17 +#: lib/memex_web/templates/user_settings/edit.html.heex:27 +#, elixir-autogen, elixir-format +msgid "email" +msgstr "" + +#: lib/memex_web/components/user_card.ex:34 +#, elixir-autogen, elixir-format +msgid "email unconfirmed" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:58 +#, elixir-autogen, elixir-format +msgid "enable" +msgstr "" + +#: lib/memex_web/templates/user_registration/new.html.heex:32 +#: lib/memex_web/templates/user_settings/edit.html.heex:123 +#, elixir-autogen, elixir-format +msgid "english" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:45 +#, elixir-autogen, elixir-format +msgid "features" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:149 +#, elixir-autogen, elixir-format +msgid "help translate" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:80 +#, elixir-autogen, elixir-format +msgid "instance information" +msgstr "" + +#: lib/memex_web/components/invite_card.ex:43 +#, elixir-autogen, elixir-format +msgid "invite disabled" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:105 +#, elixir-autogen, elixir-format +msgid "invite only" +msgstr "" + +#: lib/memex_web/components/topbar.ex:73 +#: lib/memex_web/live/invite_live/index.ex:42 +#: lib/memex_web/live/invite_live/index.html.heex:3 +#, elixir-autogen, elixir-format +msgid "invites" +msgstr "" + +#: lib/memex_web/controllers/user_session_controller.ex:8 +#, elixir-autogen, elixir-format +msgid "log in" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:50 +#, elixir-autogen, elixir-format +msgid "multi-user:" +msgstr "" + +#: lib/memex_web/live/invite_live/index.ex:38 +#, elixir-autogen, elixir-format +msgid "new invite" +msgstr "" + +#: lib/memex_web/templates/user_reset_password/edit.html.heex:16 +#: lib/memex_web/templates/user_settings/edit.html.heex:69 +#, elixir-autogen, elixir-format +msgid "new password" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:8 +#, elixir-autogen, elixir-format +msgid "no invites 😔" +msgstr "" + +#: lib/memex_web/live/note_live/index.html.heex:23 +#, elixir-autogen, elixir-format +msgid "no notes found" +msgstr "" + +#: lib/memex_web/components/topbar.ex:43 +#: lib/memex_web/live/note_live/index.ex:35 +#: lib/memex_web/live/note_live/index.ex:43 +#: lib/memex_web/live/note_live/index.html.heex:3 +#, elixir-autogen, elixir-format +msgid "notes" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:9 +#, elixir-autogen, elixir-format +msgid "notes:" +msgstr "" + +#: lib/memex_web/components/topbar.ex:61 +#: lib/memex_web/live/pipeline_live/index.ex:35 +#: lib/memex_web/live/pipeline_live/index.ex:43 +#: lib/memex_web/live/pipeline_live/index.html.heex:3 +#, elixir-autogen, elixir-format +msgid "pipelines" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:27 +#, elixir-autogen, elixir-format +msgid "pipelines:" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:62 +#, elixir-autogen, elixir-format +msgid "privacy controls on a per-note, context or pipeline basis" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:59 +#, elixir-autogen, elixir-format +msgid "privacy:" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:21 +#, elixir-autogen, elixir-format +msgid "provide context around a single topic and hotlink to your notes" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:104 +#, elixir-autogen, elixir-format +msgid "public signups" +msgstr "" + +#: lib/memex_web/controllers/user_registration_controller.ex:32 +#, elixir-autogen, elixir-format +msgid "register" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:101 +#, elixir-autogen, elixir-format +msgid "registration:" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:160 +#, elixir-autogen, elixir-format +msgid "report bugs or request features" +msgstr "" + +#: lib/memex_web/live/context_live/form_component.html.heex:41 +#: lib/memex_web/live/note_live/form_component.html.heex:41 +#: lib/memex_web/live/pipeline_live/form_component.html.heex:41 +#: lib/memex_web/live/step_live/form_component.html.heex:29 +#, elixir-autogen, elixir-format +msgid "saving..." +msgstr "" + +#: lib/memex_web/live/context_live/form_component.html.heex:37 +#: lib/memex_web/live/note_live/form_component.html.heex:37 +#: lib/memex_web/live/pipeline_live/form_component.html.heex:37 +#, elixir-autogen, elixir-format +msgid "select privacy" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:73 +#, elixir-autogen, elixir-format +msgid "set unlimited" +msgstr "" + +#: lib/memex_web/controllers/user_settings_controller.ex:10 +#: lib/memex_web/templates/user_settings/edit.html.heex:3 +#, elixir-autogen, elixir-format +msgid "settings" +msgstr "" + +#: lib/memex_web/live/context_live/form_component.html.heex:30 +#: lib/memex_web/live/note_live/form_component.html.heex:30 +#: lib/memex_web/live/pipeline_live/form_component.html.heex:30 +#, elixir-autogen, elixir-format +msgid "tag1,tag2" +msgstr "" + +#: lib/memex_web/components/contexts_table_component.ex:48 +#: lib/memex_web/components/notes_table_component.ex:48 +#: lib/memex_web/components/pipelines_table_component.ex:49 +#, elixir-autogen, elixir-format +msgid "tags" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:118 +#, elixir-autogen, elixir-format +msgid "users" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:111 +#, elixir-autogen, elixir-format +msgid "version:" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:138 +#, elixir-autogen, elixir-format +msgid "view the source code" +msgstr "" + +#: lib/memex_web/components/contexts_table_component.ex:49 +#: lib/memex_web/components/notes_table_component.ex:49 +#: lib/memex_web/components/pipelines_table_component.ex:50 +#, elixir-autogen, elixir-format +msgid "visibility" +msgstr "" + +#: lib/memex_web/live/note_live/index.ex:29 +#, elixir-autogen, elixir-format +msgid "new note" +msgstr "" + +#: lib/memex_web/live/context_live/index.html.heex:17 +#: lib/memex_web/live/note_live/index.html.heex:17 +#: lib/memex_web/live/pipeline_live/index.html.heex:17 +#, elixir-autogen, elixir-format +msgid "search" +msgstr "" + +#: lib/memex_web/live/context_live/index.ex:29 +#, elixir-autogen, elixir-format +msgid "new context" +msgstr "" + +#: lib/memex_web/live/context_live/index.html.heex:23 +#, elixir-autogen, elixir-format +msgid "no contexts found" +msgstr "" + +#: lib/memex_web/components/pipelines_table_component.ex:48 +#: lib/memex_web/live/pipeline_live/form_component.html.heex:23 +#, elixir-autogen, elixir-format +msgid "description" +msgstr "" + +#: lib/memex_web/live/pipeline_live/index.ex:29 +#, elixir-autogen, elixir-format +msgid "new pipeline" +msgstr "" + +#: lib/memex_web/live/pipeline_live/index.html.heex:23 +#, elixir-autogen, elixir-format +msgid "no pipelines found" +msgstr "" + +#: lib/memex_web/live/context_live/form_component.ex:61 +#: lib/memex_web/live/note_live/form_component.ex:60 +#: lib/memex_web/live/pipeline_live/form_component.ex:65 +#, elixir-autogen, elixir-format +msgid "%{slug} created" +msgstr "" + +#: lib/memex_web/live/context_live/index.ex:57 +#: lib/memex_web/live/context_live/show.ex:41 +#: lib/memex_web/live/note_live/index.ex:57 +#: lib/memex_web/live/note_live/show.ex:41 +#: lib/memex_web/live/pipeline_live/index.ex:57 +#: lib/memex_web/live/pipeline_live/show.ex:77 +#, elixir-autogen, elixir-format +msgid "%{slug} deleted" +msgstr "" + +#: lib/memex_web/live/context_live/form_component.ex:44 +#: lib/memex_web/live/note_live/form_component.ex:43 +#: lib/memex_web/live/pipeline_live/form_component.ex:48 +#, elixir-autogen, elixir-format +msgid "%{slug} saved" +msgstr "" + +#: lib/memex_web/live/context_live/index.ex:23 +#: lib/memex_web/live/context_live/show.ex:48 +#: lib/memex_web/live/note_live/index.ex:23 +#: lib/memex_web/live/note_live/show.ex:48 +#: lib/memex_web/live/pipeline_live/index.ex:23 +#: lib/memex_web/live/pipeline_live/show.ex:125 +#, elixir-autogen, elixir-format +msgid "edit %{slug}" +msgstr "" + +#: lib/memex_web/components/contexts_table_component.ex:47 +#: lib/memex_web/components/notes_table_component.ex:47 +#: lib/memex_web/components/pipelines_table_component.ex:47 +#: lib/memex_web/live/context_live/form_component.html.heex:14 +#: lib/memex_web/live/note_live/form_component.html.heex:14 +#: lib/memex_web/live/pipeline_live/form_component.html.heex:14 +#, elixir-autogen, elixir-format +msgid "slug" +msgstr "" + +#: lib/memex_web/live/context_live/show.ex:19 +#: lib/memex_web/live/note_live/show.ex:19 +#: lib/memex_web/live/pipeline_live/show.ex:20 +#, elixir-autogen, elixir-format +msgid "%{slug} could not be found" +msgstr "" + +#: lib/memex_web/live/home_live.ex:15 +#, elixir-autogen, elixir-format +msgid "home" +msgstr "" + +#: lib/memex_web/live/context_live/form_component.html.heex:23 +#, elixir-autogen, elixir-format +msgid "use [[note-slug]] to link to a note" +msgstr "" + +#: lib/memex_web/live/faq_live.ex:10 +#: lib/memex_web/live/faq_live.html.heex:3 +#, elixir-autogen, elixir-format +msgid "faq" +msgstr "" + +#: lib/memex_web/components/topbar.ex:23 +#: lib/memex_web/live/home_live.html.heex:3 +#: lib/memex_web/templates/error/error.html.heex:8 +#: lib/memex_web/templates/layout/root.html.heex:8 +#: lib/memex_web/templates/layout/root.html.heex:9 +#: lib/memex_web/views/layout_view.ex:15 +#, elixir-autogen, elixir-format +msgid "memEx" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:11 +#, elixir-autogen, elixir-format +msgid "what is this?" +msgstr "" + +#: lib/memex_web/live/pipeline_live/show.html.heex:67 +#, elixir-autogen, elixir-format +msgid "%{position}. %{title}" +msgstr "" + +#: lib/memex_web/live/step_live/form_component.ex:67 +#, elixir-autogen, elixir-format +msgid "%{title} created" +msgstr "" + +#: lib/memex_web/live/pipeline_live/show.ex:96 +#, elixir-autogen, elixir-format +msgid "%{title} deleted" +msgstr "" + +#: lib/memex_web/live/step_live/form_component.ex:43 +#, elixir-autogen, elixir-format +msgid "%{title} saved" +msgstr "" + +#: lib/memex_web/live/pipeline_live/show.ex:127 +#, elixir-autogen, elixir-format +msgid "add step to %{slug}" +msgstr "" + +#: lib/memex_web/live/pipeline_live/show.html.heex:61 +#, elixir-autogen, elixir-format +msgid "no steps" +msgstr "" + +#: lib/memex_web/live/pipeline_live/show.html.heex:56 +#, elixir-autogen, elixir-format +msgid "steps:" +msgstr "" + +#: lib/memex_web/live/step_live/form_component.html.heex:14 +#, elixir-autogen, elixir-format +msgid "title" +msgstr "" + +#: lib/memex_web/live/step_live/form_component.html.heex:23 +#, elixir-autogen, elixir-format +msgid "use [[context-slug]] to link to a context" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:65 +#, elixir-autogen, elixir-format +msgid "finally, i wanted to externalize the processes for common situations that use these thought processes at discrete steps. these are pipelines!" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:91 +#, elixir-autogen, elixir-format +msgid "for instance, a good context could be what makes some physical designs spark joy for you, and in that context you could backlink to the spoon note as an example of how it fits nicely into your hand." +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:105 +#, elixir-autogen, elixir-format +msgid "for instance, a pipeline for buying an object could have a step where you consider how much it sparks joy, and it could backlink to the physical designs context, maybe with some notes about how it applies in this case." +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:59 +#, elixir-autogen, elixir-format +msgid "i really admired the idea of a zettelkasten, especially with org-mode backlinks, however I felt like my notes would immediately become too messy by just putting everything into a single hierarchy." +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:62 +#, elixir-autogen, elixir-format +msgid "i wanted to separate between a personal dictionary of concepts and then my thought processes that are built off of my experiences and life lessons. these are notes, and contexts, respectively." +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:90 +#, elixir-autogen, elixir-format +msgid "in my opinion, contexts should be like single-topic blog posts." +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:76 +#, elixir-autogen, elixir-format +msgid "in my opinion, notes should be written by any of the discrete objects or concepts that are meaningful to you in your life." +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:102 +#, elixir-autogen, elixir-format +msgid "in my opinion, pipelines should be pretty lightweight, and just backlink to contexts to provide most of the heavy lifting." +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:28 +#, elixir-autogen, elixir-format +msgid "memex" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:48 +#, elixir-autogen, elixir-format +msgid "org-mode" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:17 +#, elixir-autogen, elixir-format +msgid "some things that this memex is very loosely inspired by:" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:79 +#, elixir-autogen, elixir-format +msgid "spoons? probably not. a particular brand of spoons that you really like? why not :)" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:14 +#, elixir-autogen, elixir-format +msgid "this is a memex, used to document not just your notes, but also your perspectives and processes." +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:87 +#, elixir-autogen, elixir-format +msgid "what should my contexts be like?" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:73 +#, elixir-autogen, elixir-format +msgid "what should my notes be like?" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:99 +#, elixir-autogen, elixir-format +msgid "what should my pipelines be like?" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:56 +#, elixir-autogen, elixir-format +msgid "why split up into notes, contexts and pipelines?" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:38 +#, elixir-autogen, elixir-format +msgid "zettelkasten" +msgstr "" + +#: lib/memex_web/views/layout_view.ex:11 +#, elixir-autogen, elixir-format +msgid "memEx | %{title}" +msgstr "" + +#: lib/memex_web/controllers/user_reset_password_controller.ex:9 +#, elixir-autogen, elixir-format +msgid "forgot your password?" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:113 +#, elixir-autogen, elixir-format +msgid "how many people should i invite?" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:119 +#, elixir-autogen, elixir-format +msgid "note, context and pipeline slugs must be unique, and you are free to backlink to notes not written by you." +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:122 +#, elixir-autogen, elixir-format +msgid "so, i'd recommend inviting anyone you'd like to work on your collective memEx. however, when in doubt, hopefully setting up a new instance is easy enough. if it isn't, then feel free to let me know :)" +msgstr "" + +#: lib/memex_web/live/faq_live.html.heex:116 +#, elixir-autogen, elixir-format +msgid "while memEx fully supports multiple users, each memEx instance should be treated as a single cohesive and collaborative document." +msgstr "" + +#: lib/memex_web/templates/user_registration/new.html.heex:28 +#, elixir-autogen, elixir-format +msgid "language" +msgstr "" + +#: lib/memex_web/components/user_card.ex:28 +#, elixir-autogen, elixir-format +msgid "user confirmed on%{confirmed_datetime}" +msgstr "" + +#: lib/memex_web/components/user_card.ex:39 +#, elixir-autogen, elixir-format +msgid "user registered on%{registered_datetime}" +msgstr "" + +#: lib/memex_web/components/invite_card.ex:38 +#, elixir-autogen, elixir-format +msgid "uses left: unlimited" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:36 +#, elixir-autogen, elixir-format +msgid "read more on how to use memEx" +msgstr "" + +#: lib/memex_web/components/invite_card.ex:33 +#, elixir-autogen, elixir-format +msgid "uses left: %{uses_left_count}" +msgstr "" + +#: lib/memex_web/components/invite_card.ex:53 +#, elixir-autogen, elixir-format +msgid "uses: %{uses_count}" +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:128 +#, elixir-autogen, elixir-format +msgid "get involved" +msgstr "" + +#: lib/memex_web/templates/user_confirmation/new.html.heex:12 +#, elixir-autogen, elixir-format +msgid "Email" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:29 +#, elixir-autogen, elixir-format +msgid "Leave \"Uses left\" blank to make invite unlimited" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:90 +#, elixir-autogen, elixir-format +msgid "admins" +msgstr "" + +#: lib/memex_web/templates/user_session/new.html.heex:23 +#, elixir-autogen, elixir-format +msgid "keep me logged in for 60 days" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:21 +#, elixir-autogen, elixir-format +msgid "name" +msgstr "" + +#: lib/memex_web/templates/user_registration/new.html.heex:24 +#: lib/memex_web/templates/user_session/new.html.heex:20 +#, elixir-autogen, elixir-format +msgid "password" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:25 +#, elixir-autogen, elixir-format +msgid "uses left" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/emails.po b/priv/gettext/en/LC_MESSAGES/emails.po new file mode 100644 index 0000000..d8c7079 --- /dev/null +++ b/priv/gettext/en/LC_MESSAGES/emails.po @@ -0,0 +1,93 @@ +## "msgid"s in this file come from POT (.pot) files. +### +### Do not add, change, or remove "msgid"s manually here as +### they're tied to the ones in the corresponding POT file +### (with the same domain). +### +### Use "mix gettext.extract --merge" or "mix gettext.merge" +### to merge POT files into PO files. +msgid "" +msgstr "" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: lib/memex/accounts/email.ex:30 +#, elixir-autogen, elixir-format +msgid "Confirm your Memex account" +msgstr "" + +#: lib/memex_web/templates/email/confirm_email.html.heex:3 +#: lib/memex_web/templates/email/confirm_email.txt.eex:2 +#: lib/memex_web/templates/email/reset_password.html.heex:3 +#: lib/memex_web/templates/email/reset_password.txt.eex:2 +#: lib/memex_web/templates/email/update_email.html.heex:3 +#: lib/memex_web/templates/email/update_email.txt.eex:2 +#, elixir-autogen, elixir-format +msgid "Hi %{email}," +msgstr "" + +#: lib/memex_web/templates/email/confirm_email.txt.eex:10 +#, elixir-autogen, elixir-format +msgid "If you didn't create an account at %{url}, please ignore this." +msgstr "" + +#: lib/memex_web/templates/email/reset_password.txt.eex:8 +#: lib/memex_web/templates/email/update_email.txt.eex:8 +#, elixir-autogen, elixir-format +msgid "If you didn't request this change from %{url}, please ignore this." +msgstr "" + +#: lib/memex/accounts/email.ex:37 +#, elixir-autogen, elixir-format +msgid "Reset your Memex password" +msgstr "" + +#: lib/memex/accounts/email.ex:44 +#, elixir-autogen, elixir-format +msgid "Update your Memex email" +msgstr "" + +#: lib/memex_web/templates/email/update_email.html.heex:8 +#: lib/memex_web/templates/email/update_email.txt.eex:4 +#, elixir-autogen, elixir-format +msgid "You can change your email by visiting the URL below:" +msgstr "" + +#: lib/memex_web/templates/email/confirm_email.html.heex:14 +#: lib/memex_web/templates/email/confirm_email.txt.eex:6 +#, elixir-autogen, elixir-format +msgid "You can confirm your account by visiting the URL below:" +msgstr "" + +#: lib/memex_web/templates/email/reset_password.html.heex:8 +#: lib/memex_web/templates/email/reset_password.txt.eex:4 +#, elixir-autogen, elixir-format +msgid "You can reset your password by visiting the URL below:" +msgstr "" + +#: lib/memex_web/templates/layout/email.html.heex:13 +#, elixir-autogen, elixir-format +msgid "This email was sent from memEx" +msgstr "" + +#: lib/memex_web/templates/layout/email.txt.eex:9 +#, elixir-autogen, elixir-format +msgid "This email was sent from memEx at %{url}" +msgstr "" + +#: lib/memex_web/templates/email/confirm_email.html.heex:22 +#, elixir-autogen, elixir-format +msgid "If you didn't create an account at memEx, please ignore this." +msgstr "" + +#: lib/memex_web/templates/email/reset_password.html.heex:16 +#: lib/memex_web/templates/email/update_email.html.heex:16 +#, elixir-autogen, elixir-format +msgid "If you didn't request this change from memEx, please ignore this." +msgstr "" + +#: lib/memex_web/templates/email/confirm_email.html.heex:9 +#: lib/memex_web/templates/email/confirm_email.txt.eex:4 +#, elixir-autogen, elixir-format +msgid "Welcome to memEx" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/errors.po b/priv/gettext/en/LC_MESSAGES/errors.po new file mode 100644 index 0000000..89d4404 --- /dev/null +++ b/priv/gettext/en/LC_MESSAGES/errors.po @@ -0,0 +1,145 @@ +## "msgid"s in this file come from POT (.pot) files. +### +### Do not add, change, or remove "msgid"s manually here as +### they're tied to the ones in the corresponding POT file +### (with the same domain). +### +### Use "mix gettext.extract --merge" or "mix gettext.merge" +### to merge POT files into PO files. +msgid "" +msgstr "" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: lib/memex_web/templates/error/error.html.heex:8 +#, elixir-autogen, elixir-format +msgid "Error" +msgstr "" + +#: lib/memex_web/controllers/user_session_controller.ex:17 +#, elixir-autogen, elixir-format +msgid "Invalid email or password" +msgstr "" + +#: lib/memex_web/controllers/user_reset_password_controller.ex:63 +#, elixir-autogen, elixir-format +msgid "Reset password link is invalid or it has expired." +msgstr "" + +#: lib/memex_web/controllers/user_registration_controller.ex:22 +#: lib/memex_web/controllers/user_registration_controller.ex:51 +#, elixir-autogen, elixir-format +msgid "Sorry, public registration is disabled" +msgstr "" + +#: lib/memex_web/controllers/user_registration_controller.ex:12 +#: lib/memex_web/controllers/user_registration_controller.ex:41 +#, elixir-autogen, elixir-format +msgid "Sorry, this invite was not found or expired" +msgstr "" + +#: lib/memex_web/controllers/user_confirmation_controller.ex:54 +#, elixir-autogen, elixir-format +msgid "User confirmation link is invalid or it has expired." +msgstr "" + +#: lib/memex_web/controllers/user_auth.ex:177 +#, elixir-autogen, elixir-format +msgid "You are not authorized to view this page." +msgstr "" + +#: lib/memex_web/controllers/user_auth.ex:39 +#: lib/memex_web/controllers/user_auth.ex:161 +#, elixir-autogen, elixir-format +msgid "You must confirm your account and log in to access this page." +msgstr "" + +#: lib/memex/accounts/user.ex:144 +#, elixir-autogen, elixir-format +msgid "did not change" +msgstr "" + +#: lib/memex/accounts/user.ex:165 +#, elixir-autogen, elixir-format +msgid "does not match password" +msgstr "" + +#: lib/memex/accounts/user.ex:202 +#, elixir-autogen, elixir-format +msgid "is not valid" +msgstr "" + +#: lib/memex/accounts/user.ex:99 +#, elixir-autogen, elixir-format +msgid "must have the @ sign and no spaces" +msgstr "" + +#: lib/memex/contexts/context.ex:58 +#: lib/memex/contexts/context.ex:71 +#: lib/memex/notes/note.ex:57 +#: lib/memex/notes/note.ex:70 +#: lib/memex/pipelines/pipeline.ex:60 +#: lib/memex/pipelines/pipeline.ex:73 +#, elixir-autogen, elixir-format +msgid "invalid format: only numbers, letters and hyphen are accepted" +msgstr "" + +#: lib/memex_web/templates/error/error.html.heex:28 +#, elixir-autogen, elixir-format +msgid "go back home" +msgstr "" + +#: lib/memex_web/views/error_view.ex:11 +#, elixir-autogen, elixir-format +msgid "internal server error" +msgstr "" + +#: lib/memex_web/views/error_view.ex:9 +#, elixir-autogen, elixir-format +msgid "not found" +msgstr "" + +#: lib/memex_web/views/error_view.ex:10 +#, elixir-autogen, elixir-format +msgid "unauthorized" +msgstr "" + +#: lib/memex/contexts/context.ex:84 +#: lib/memex/notes/note.ex:83 +#: lib/memex/pipelines/pipeline.ex:86 +#, elixir-autogen, elixir-format +msgid "invalid format: only numbers, letters and hyphen are accepted. tags must be comma-delimited" +msgstr "" + +#: lib/memex_web/templates/user_registration/new.html.heex:13 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:13 +#: lib/memex_web/templates/user_settings/edit.html.heex:64 +#, elixir-autogen, elixir-format +msgid "oops, something went wrong! please check the errors below." +msgstr "" + +#: lib/memex_web/controllers/user_registration_controller.ex:70 +#, elixir-autogen, elixir-format +msgid "sorry, this invite was not found or expired" +msgstr "" + +#: lib/memex_web/live/invite_live/index.ex:19 +#, elixir-autogen, elixir-format +msgid "you are not authorized to view this page" +msgstr "" + +#: lib/memex_web/controllers/user_settings_controller.ex:84 +#, elixir-autogen, elixir-format +msgid "email change link is invalid or it has expired." +msgstr "" + +#: lib/memex_web/controllers/user_settings_controller.ex:99 +#, elixir-autogen, elixir-format +msgid "unable to delete user" +msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:22 +#: lib/memex_web/templates/user_settings/edit.html.heex:118 +#, elixir-autogen, elixir-format +msgid "oops, something went wrong! please check the errors below" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/prompts.po b/priv/gettext/en/LC_MESSAGES/prompts.po new file mode 100644 index 0000000..6bb9b5e --- /dev/null +++ b/priv/gettext/en/LC_MESSAGES/prompts.po @@ -0,0 +1,159 @@ +## "msgid"s in this file come from POT (.pot) files. +### +### Do not add, change, or remove "msgid"s manually here as +### they're tied to the ones in the corresponding POT file +### (with the same domain). +### +### Use "mix gettext.extract --merge" or "mix gettext.merge" +### to merge POT files into PO files. +msgid "" +msgstr "" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: lib/memex_web/controllers/user_confirmation_controller.ex:38 +#, elixir-autogen, elixir-format +msgid "%{email} confirmed successfully." +msgstr "" + +#: lib/memex_web/live/invite_live/index.ex:54 +#, elixir-autogen, elixir-format +msgid "%{invite_name} deleted succesfully" +msgstr "" + +#: lib/memex_web/live/invite_live/index.ex:115 +#, elixir-autogen, elixir-format +msgid "%{invite_name} disabled succesfully" +msgstr "" + +#: lib/memex_web/live/invite_live/index.ex:91 +#, elixir-autogen, elixir-format +msgid "%{invite_name} enabled succesfully" +msgstr "" + +#: lib/memex_web/live/invite_live/index.ex:69 +#, elixir-autogen, elixir-format +msgid "%{invite_name} updated succesfully" +msgstr "" + +#: lib/memex_web/live/invite_live/index.ex:140 +#, elixir-autogen, elixir-format +msgid "%{user_email} deleted succesfully" +msgstr "" + +#: lib/memex_web/controllers/user_confirmation_controller.ex:23 +#, elixir-autogen, elixir-format +msgid "If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly." +msgstr "" + +#: lib/memex_web/controllers/user_reset_password_controller.ex:24 +#, elixir-autogen, elixir-format +msgid "If your email is in our system, you will receive instructions to reset your password shortly." +msgstr "" + +#: lib/memex_web/controllers/user_reset_password_controller.ex:46 +#, elixir-autogen, elixir-format +msgid "Password reset successfully." +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.html.heex:34 +#, elixir-autogen, elixir-format +msgid "Saving..." +msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:130 +#, elixir-autogen, elixir-format +msgid "are you sure you want to change your language?" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:43 +#, elixir-autogen, elixir-format +msgid "are you sure you want to delete the invite for %{invite_name}?" +msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:149 +#, elixir-autogen, elixir-format +msgid "are you sure you want to delete your account?" +msgstr "" + +#: lib/memex_web/components/topbar.ex:89 +#, elixir-autogen, elixir-format +msgid "are you sure you want to log out?" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:68 +#, elixir-autogen, elixir-format +msgid "are you sure you want to make %{invite_name} unlimited?" +msgstr "" + +#: lib/memex_web/live/context_live/index.html.heex:45 +#: lib/memex_web/live/context_live/show.html.heex:38 +#: lib/memex_web/live/note_live/index.html.heex:45 +#: lib/memex_web/live/note_live/show.html.heex:38 +#: lib/memex_web/live/pipeline_live/index.html.heex:45 +#: lib/memex_web/live/pipeline_live/show.html.heex:46 +#: lib/memex_web/live/pipeline_live/show.html.heex:115 +#, elixir-autogen, elixir-format +msgid "are you sure?" +msgstr "" + +#: lib/memex_web/controllers/user_session_controller.ex:23 +#, elixir-autogen, elixir-format +msgid "logged out successfully." +msgstr "" + +#: lib/memex_web/controllers/user_settings_controller.ex:65 +#, elixir-autogen, elixir-format +msgid "language updated successfully." +msgstr "" + +#: lib/memex_web/live/home_live.html.heex:90 +#, elixir-autogen, elixir-format +msgid "register to setup memEx" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.ex:80 +#, elixir-autogen, elixir-format +msgid "%{name} created successfully" +msgstr "" + +#: lib/memex_web/live/invite_live/form_component.ex:62 +#, elixir-autogen, elixir-format +msgid "%{name} updated successfully" +msgstr "" + +#: lib/memex_web/live/invite_live/index.ex:128 +#, elixir-autogen, elixir-format +msgid "copied to clipboard" +msgstr "" + +#: lib/memex_web/controllers/user_registration_controller.ex:65 +#, elixir-autogen, elixir-format +msgid "please check your email to verify your account" +msgstr "" + +#: lib/memex_web/controllers/user_settings_controller.ex:29 +#, elixir-autogen, elixir-format +msgid "a link to confirm your email change has been sent to the new address." +msgstr "" + +#: lib/memex_web/controllers/user_settings_controller.ex:77 +#, elixir-autogen, elixir-format +msgid "email changed successfully." +msgstr "" + +#: lib/memex_web/controllers/user_settings_controller.ex:49 +#, elixir-autogen, elixir-format +msgid "password updated successfully." +msgstr "" + +#: lib/memex_web/controllers/user_settings_controller.ex:95 +#, elixir-autogen, elixir-format +msgid "your account has been deleted" +msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:101 +#: lib/memex_web/live/invite_live/index.html.heex:129 +#, elixir-autogen, elixir-format +msgid "are you sure you want to delete %{email}? this action is permanent!" +msgstr "" diff --git a/priv/gettext/errors.pot b/priv/gettext/errors.pot index e346c24..da1f6dd 100644 --- a/priv/gettext/errors.pot +++ b/priv/gettext/errors.pot @@ -20,12 +20,6 @@ msgstr "" msgid "Invalid email or password" msgstr "" -#: lib/memex_web/templates/user_reset_password/edit.html.heex:14 -#: lib/memex_web/templates/user_settings/edit.html.heex:64 -#, elixir-autogen, elixir-format -msgid "Oops, something went wrong! Please check the errors below." -msgstr "" - #: lib/memex_web/controllers/user_reset_password_controller.ex:63 #, elixir-autogen, elixir-format msgid "Reset password link is invalid or it has expired." @@ -79,12 +73,6 @@ msgstr "" msgid "must have the @ sign and no spaces" msgstr "" -#: lib/memex_web/templates/user_settings/edit.html.heex:22 -#: lib/memex_web/templates/user_settings/edit.html.heex:118 -#, elixir-autogen, elixir-format -msgid "oops, something went wrong! Please check the errors below" -msgstr "" - #: lib/memex/contexts/context.ex:58 #: lib/memex/contexts/context.ex:71 #: lib/memex/notes/note.ex:57 @@ -123,6 +111,8 @@ msgid "invalid format: only numbers, letters and hyphen are accepted. tags must msgstr "" #: lib/memex_web/templates/user_registration/new.html.heex:13 +#: lib/memex_web/templates/user_reset_password/edit.html.heex:13 +#: lib/memex_web/templates/user_settings/edit.html.heex:64 #, elixir-autogen, elixir-format msgid "oops, something went wrong! please check the errors below." msgstr "" @@ -146,3 +136,9 @@ msgstr "" #, elixir-autogen, elixir-format msgid "unable to delete user" msgstr "" + +#: lib/memex_web/templates/user_settings/edit.html.heex:22 +#: lib/memex_web/templates/user_settings/edit.html.heex:118 +#, elixir-autogen, elixir-format +msgid "oops, something went wrong! please check the errors below" +msgstr "" diff --git a/priv/gettext/prompts.pot b/priv/gettext/prompts.pot index a1003b2..b0bb52c 100644 --- a/priv/gettext/prompts.pot +++ b/priv/gettext/prompts.pot @@ -55,7 +55,7 @@ msgstr "" msgid "Password reset successfully." msgstr "" -#: lib/memex_web/live/invite_live/form_component.html.heex:31 +#: lib/memex_web/live/invite_live/form_component.html.heex:34 #, elixir-autogen, elixir-format msgid "Saving..." msgstr "" @@ -65,12 +65,6 @@ msgstr "" msgid "are you sure you want to change your language?" msgstr "" -#: lib/memex_web/live/invite_live/index.html.heex:101 -#: lib/memex_web/live/invite_live/index.html.heex:129 -#, elixir-autogen, elixir-format -msgid "are you sure you want to delete %{email}? This action is permanent!" -msgstr "" - #: lib/memex_web/live/invite_live/index.html.heex:43 #, elixir-autogen, elixir-format msgid "are you sure you want to delete the invite for %{invite_name}?" @@ -81,7 +75,7 @@ msgstr "" msgid "are you sure you want to delete your account?" msgstr "" -#: lib/memex_web/components/topbar.ex:90 +#: lib/memex_web/components/topbar.ex:89 #, elixir-autogen, elixir-format msgid "are you sure you want to log out?" msgstr "" @@ -156,3 +150,9 @@ msgstr "" #, elixir-autogen, elixir-format msgid "your account has been deleted" msgstr "" + +#: lib/memex_web/live/invite_live/index.html.heex:101 +#: lib/memex_web/live/invite_live/index.html.heex:129 +#, elixir-autogen, elixir-format +msgid "are you sure you want to delete %{email}? this action is permanent!" +msgstr "" diff --git a/test/memex/accounts/invites_test.exs b/test/memex/accounts/invites_test.exs new file mode 100644 index 0000000..bdbe88b --- /dev/null +++ b/test/memex/accounts/invites_test.exs @@ -0,0 +1,176 @@ +defmodule Memex.InvitesTest do + @moduledoc """ + This module tests the Memex.Accounts.Invites context + """ + + use Memex.DataCase + alias Ecto.Changeset + alias Memex.Accounts + alias Memex.Accounts.{Invite, Invites} + + @moduletag :invites_test + + @valid_attrs %{ + "name" => "some name" + } + @invalid_attrs %{ + "name" => nil, + "token" => nil + } + + describe "invites" do + setup do + current_user = admin_fixture() + {:ok, invite} = Invites.create_invite(current_user, @valid_attrs) + [invite: invite, current_user: current_user] + end + + test "list_invites/0 returns all invites", %{invite: invite, current_user: current_user} do + assert Invites.list_invites(current_user) == [invite] + end + + test "get_invite!/1 returns the invite with given id", + %{invite: invite, current_user: current_user} do + assert Invites.get_invite!(invite.id, current_user) == invite + end + + test "valid_invite_token? returns for valid and invalid invite tokens", + %{invite: %{token: token}} do + refute Invites.valid_invite_token?(nil) + refute Invites.valid_invite_token?("") + assert Invites.valid_invite_token?(token) + end + + test "valid_invite_token? does not return true for a disabled invite by token", + %{invite: %{token: token} = invite, current_user: current_user} do + assert Invites.valid_invite_token?(token) + + {:ok, _invite} = Invites.update_invite(invite, %{uses_left: 1}, current_user) + {:ok, _invite} = Invites.use_invite(token) + + refute Invites.valid_invite_token?(token) + end + + test "get_use_count/2 returns the correct invite usage", + %{invite: %{token: token} = invite, current_user: current_user} do + assert 0 == Invites.get_use_count(invite, current_user) + + assert {:ok, _user} = + Accounts.register_user( + %{"email" => unique_user_email(), "password" => valid_user_password()}, + token + ) + + assert 1 == Invites.get_use_count(invite, current_user) + + assert {:ok, _user} = + Accounts.register_user( + %{"email" => unique_user_email(), "password" => valid_user_password()}, + token + ) + + assert 2 == Invites.get_use_count(invite, current_user) + end + + test "use_invite/1 successfully uses an unlimited invite", + %{invite: %{token: token} = invite, current_user: current_user} do + {:ok, invite} = Invites.update_invite(invite, %{uses_left: nil}, current_user) + assert {:ok, ^invite} = Invites.use_invite(token) + assert {:ok, ^invite} = Invites.use_invite(token) + assert {:ok, ^invite} = Invites.use_invite(token) + end + + test "use_invite/1 successfully decrements an invite", + %{invite: %{token: token} = invite, current_user: current_user} do + {:ok, _invite} = Invites.update_invite(invite, %{uses_left: 10}, current_user) + assert {:ok, %{uses_left: 9}} = Invites.use_invite(token) + assert {:ok, %{uses_left: 8}} = Invites.use_invite(token) + assert {:ok, %{uses_left: 7}} = Invites.use_invite(token) + end + + test "use_invite/1 successfully disactivates an invite", + %{invite: %{token: token} = invite, current_user: current_user} do + {:ok, _invite} = Invites.update_invite(invite, %{uses_left: 1}, current_user) + assert {:ok, %{uses_left: 0, disabled_at: disabled_at}} = Invites.use_invite(token) + assert not is_nil(disabled_at) + end + + test "use_invite/1 does not work on disactivated invite", + %{invite: %{token: token} = invite, current_user: current_user} do + {:ok, _invite} = Invites.update_invite(invite, %{uses_left: 1}, current_user) + {:ok, _invite} = Invites.use_invite(token) + assert {:error, :invalid_token} = Invites.use_invite(token) + end + + test "create_invite/1 with valid data creates an unlimited invite", + %{current_user: current_user} do + assert {:ok, %Invite{} = invite} = + Invites.create_invite(current_user, %{ + "name" => "some name" + }) + + assert invite.name == "some name" + end + + test "create_invite/1 with valid data creates a limited invite", + %{current_user: current_user} do + assert {:ok, %Invite{} = invite} = + Invites.create_invite(current_user, %{ + "name" => "some name", + "uses_left" => 10 + }) + + assert invite.name == "some name" + assert invite.uses_left == 10 + end + + test "create_invite/1 with invalid data returns error changeset", + %{current_user: current_user} do + assert {:error, %Changeset{}} = Invites.create_invite(current_user, @invalid_attrs) + end + + test "update_invite/2 can set an invite to be limited", + %{invite: invite, current_user: current_user} do + assert {:ok, %Invite{} = new_invite} = + Invites.update_invite( + invite, + %{"name" => "some updated name", "uses_left" => 5}, + current_user + ) + + assert new_invite.name == "some updated name" + assert new_invite.uses_left == 5 + end + + test "update_invite/2 can set an invite to be unlimited", + %{invite: invite, current_user: current_user} do + {:ok, invite} = Invites.update_invite(invite, %{"uses_left" => 5}, current_user) + + assert {:ok, %Invite{} = new_invite} = + Invites.update_invite( + invite, + %{"name" => "some updated name", "uses_left" => nil}, + current_user + ) + + assert new_invite.name == "some updated name" + assert new_invite.uses_left |> is_nil() + end + + test "update_invite/2 with invalid data returns error changeset", + %{invite: invite, current_user: current_user} do + assert {:error, %Changeset{}} = Invites.update_invite(invite, @invalid_attrs, current_user) + assert invite == Invites.get_invite!(invite.id, current_user) + end + + test "delete_invite/1 deletes the invite", %{invite: invite, current_user: current_user} do + assert {:ok, %Invite{}} = Invites.delete_invite(invite, current_user) + assert_raise Ecto.NoResultsError, fn -> Invites.get_invite!(invite.id, current_user) end + end + + test "delete_invite!/1 deletes the invite", %{invite: invite, current_user: current_user} do + assert %Invite{} = Invites.delete_invite!(invite, current_user) + assert_raise Ecto.NoResultsError, fn -> Invites.get_invite!(invite.id, current_user) end + end + end +end diff --git a/test/memex/accounts_test.exs b/test/memex/accounts_test.exs index 4beb22d..77388f8 100644 --- a/test/memex/accounts_test.exs +++ b/test/memex/accounts_test.exs @@ -512,7 +512,7 @@ defmodule Memex.AccountsTest do test "deletes all tokens for the given user", %{user: user} do _session_token = Accounts.generate_user_session_token(user) - {:ok, _} = Accounts.reset_user_password(user, %{"password" => "new valid password"}) + {:ok, _user} = Accounts.reset_user_password(user, %{"password" => "new valid password"}) refute Repo.get_by(UserToken, user_id: user.id) end end diff --git a/test/support/conn_case.ex b/test/support/conn_case.ex index 83b3b8d..a67e764 100644 --- a/test/support/conn_case.ex +++ b/test/support/conn_case.ex @@ -22,13 +22,12 @@ defmodule MemexWeb.ConnCase do using do quote do - # Import conveniences for testing with connections # credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse import Memex.Fixtures import MemexWeb.ConnCase - # credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse - import Phoenix.ConnTest + # Import conveniences for testing with connections import Plug.Conn + import Phoenix.ConnTest alias MemexWeb.Router.Helpers, as: Routes diff --git a/test/support/fixtures.ex b/test/support/fixtures.ex index be6ae12..305f9ce 100644 --- a/test/support/fixtures.ex +++ b/test/support/fixtures.ex @@ -2,6 +2,7 @@ defmodule Memex.Fixtures do @moduledoc """ This module defines test helpers for creating entities """ + alias Memex.{Accounts, Accounts.User, Email, Repo} def unique_user_email, do: "user#{System.unique_integer()}@example.com"