merge base project into memex
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
commit
c7debb331c
@ -1,77 +0,0 @@
|
||||
defmodule Memex.Accounts.UserNotifier do
|
||||
@moduledoc """
|
||||
Contains templates and messages for user messages
|
||||
"""
|
||||
|
||||
# For simplicity, this module simply logs messages to the terminal.
|
||||
# You should replace it by a proper email or notification tool, such as:
|
||||
#
|
||||
# * Swoosh - https://hexdocs.pm/swoosh
|
||||
# * Bamboo - https://hexdocs.pm/bamboo
|
||||
#
|
||||
defp deliver(to, body) do
|
||||
require Logger
|
||||
Logger.debug(body)
|
||||
{:ok, %{to: to, body: body}}
|
||||
end
|
||||
|
||||
@doc """
|
||||
Deliver instructions to confirm account.
|
||||
"""
|
||||
def deliver_confirmation_instructions(user, url) do
|
||||
deliver(user.email, """
|
||||
|
||||
==============================
|
||||
|
||||
Hi #{user.email},
|
||||
|
||||
You can confirm your account by visiting the URL below:
|
||||
|
||||
#{url}
|
||||
|
||||
If you didn't create an account with us, please ignore this.
|
||||
|
||||
==============================
|
||||
""")
|
||||
end
|
||||
|
||||
@doc """
|
||||
Deliver instructions to reset a user password.
|
||||
"""
|
||||
def deliver_reset_password_instructions(user, url) do
|
||||
deliver(user.email, """
|
||||
|
||||
==============================
|
||||
|
||||
Hi #{user.email},
|
||||
|
||||
You can reset your password by visiting the URL below:
|
||||
|
||||
#{url}
|
||||
|
||||
If you didn't request this change, please ignore this.
|
||||
|
||||
==============================
|
||||
""")
|
||||
end
|
||||
|
||||
@doc """
|
||||
Deliver instructions to update a user email.
|
||||
"""
|
||||
def deliver_update_email_instructions(user, url) do
|
||||
deliver(user.email, """
|
||||
|
||||
==============================
|
||||
|
||||
Hi #{user.email},
|
||||
|
||||
You can change your email by visiting the URL below:
|
||||
|
||||
#{url}
|
||||
|
||||
If you didn't request this change, please ignore this.
|
||||
|
||||
==============================
|
||||
""")
|
||||
end
|
||||
end
|
@ -93,7 +93,7 @@ defmodule MemexWeb do
|
||||
# credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse
|
||||
use Phoenix.HTML
|
||||
|
||||
# Import LiveView and .heex helpers (live_render, live_patch, <.form>, etc)
|
||||
# Import LiveView and .heex helpers (live_render, link, <.form>, etc)
|
||||
# Import basic rendering functionality (render, render_layout, etc)
|
||||
import Phoenix.{Component, View}
|
||||
import MemexWeb.{ErrorHelpers, Gettext, LiveHelpers, ViewHelpers}
|
||||
|
@ -11,7 +11,8 @@
|
||||
phx-value-sort-key={key}
|
||||
phx-target={@myself}
|
||||
>
|
||||
<span><%= label %></span>
|
||||
<i class="w-0 float-right fas fa-sm fa-chevron-up opacity-0"></i>
|
||||
<span class={if @last_sort_key == key, do: "underline"}><%= label %></span>
|
||||
<%= if @last_sort_key == key do %>
|
||||
<%= case @sort_mode do %>
|
||||
<% :asc -> %>
|
||||
@ -25,7 +26,7 @@
|
||||
</span>
|
||||
</th>
|
||||
<% else %>
|
||||
<th class={["p-2", column[:class]]}>
|
||||
<th class={["p-2 cursor-not-allowed", column[:class]]}>
|
||||
<%= label %>
|
||||
</th>
|
||||
<% end %>
|
||||
|
@ -82,7 +82,6 @@ defmodule MemexWeb.Components.Topbar do
|
||||
<%= @current_user.email %>
|
||||
</.link>
|
||||
</li>
|
||||
|
||||
<li class="mx-2 my-1">
|
||||
<.link
|
||||
href={Routes.user_session_path(Endpoint, :delete)}
|
||||
@ -92,7 +91,6 @@ defmodule MemexWeb.Components.Topbar do
|
||||
<i class="fas fa-sign-out-alt"></i>
|
||||
</.link>
|
||||
</li>
|
||||
|
||||
<li
|
||||
:if={
|
||||
@current_user.role == :admin and function_exported?(Routes, :live_dashboard_path, 2)
|
||||
@ -109,7 +107,7 @@ defmodule MemexWeb.Components.Topbar do
|
||||
<% else %>
|
||||
<li :if={Accounts.allow_registration?()} class="mx-2 my-1">
|
||||
<.link
|
||||
navigate={Routes.user_registration_path(Endpoint, :new)}
|
||||
href={Routes.user_registration_path(Endpoint, :new)}
|
||||
class="text-primary-400 text-primary-400 hover:underline truncate"
|
||||
>
|
||||
<%= dgettext("actions", "register") %>
|
||||
@ -118,7 +116,7 @@ defmodule MemexWeb.Components.Topbar do
|
||||
|
||||
<li class="mx-2 my-1">
|
||||
<.link
|
||||
navigate={Routes.user_session_path(Endpoint, :new)}
|
||||
href={Routes.user_session_path(Endpoint, :new)}
|
||||
class="text-primary-400 text-primary-400 hover:underline truncate"
|
||||
>
|
||||
<%= dgettext("actions", "log in") %>
|
||||
|
@ -4,6 +4,10 @@ defmodule MemexWeb.Components.UserCard do
|
||||
"""
|
||||
|
||||
use MemexWeb, :component
|
||||
alias Memex.Accounts.User
|
||||
|
||||
attr :user, User, required: true
|
||||
slot(:inner_block, required: true)
|
||||
|
||||
def user_card(assigns) do
|
||||
~H"""
|
||||
|
@ -2,7 +2,7 @@ defmodule MemexWeb.UserRegistrationController do
|
||||
use MemexWeb, :controller
|
||||
import MemexWeb.Gettext
|
||||
alias Memex.{Accounts, Accounts.Invites}
|
||||
alias MemexWeb.{Endpoint, HomeLive}
|
||||
alias MemexWeb.HomeLive
|
||||
|
||||
def new(conn, %{"invite" => invite_token}) do
|
||||
if Invites.valid_invite_token?(invite_token) do
|
||||
|
@ -5,7 +5,7 @@ defmodule MemexWeb.HomeLive do
|
||||
|
||||
use MemexWeb, :live_view
|
||||
alias Memex.Accounts
|
||||
alias MemexWeb.{Endpoint, FaqLive}
|
||||
alias MemexWeb.FaqLive
|
||||
|
||||
@version Mix.Project.config()[:version]
|
||||
|
||||
|
@ -18,13 +18,16 @@
|
||||
<%= changeset_errors(@changeset) %>
|
||||
</div>
|
||||
|
||||
<%= label(f, :name, gettext("Name"), class: "title text-lg text-primary-400") %>
|
||||
<%= label(f, :name, gettext("name"), class: "title text-lg text-primary-400") %>
|
||||
<%= text_input(f, :name, class: "input input-primary col-span-2") %>
|
||||
<%= error_tag(f, :name, "col-span-3") %>
|
||||
|
||||
<%= label(f, :uses_left, gettext("Uses left"), class: "title text-lg text-primary-400") %>
|
||||
<%= label(f, :uses_left, gettext("uses left"), class: "title text-lg text-primary-400") %>
|
||||
<%= number_input(f, :uses_left, min: 0, class: "input input-primary col-span-2") %>
|
||||
<%= error_tag(f, :uses_left, "col-span-3") %>
|
||||
<span class="col-span-3 text-primary-500 italic text-center">
|
||||
<%= gettext(~s/Leave "Uses left" blank to make invite unlimited/) %>
|
||||
</span>
|
||||
|
||||
<%= submit(dgettext("actions", "Save"),
|
||||
class: "mx-auto btn btn-primary col-span-3",
|
||||
|
@ -7,7 +7,7 @@ defmodule MemexWeb.InviteLive.Index do
|
||||
import MemexWeb.Components.{InviteCard, UserCard}
|
||||
alias Memex.Accounts
|
||||
alias Memex.Accounts.{Invite, Invites}
|
||||
alias MemexWeb.{Endpoint, HomeLive}
|
||||
alias MemexWeb.HomeLive
|
||||
alias Phoenix.LiveView.JS
|
||||
|
||||
@impl true
|
||||
|
@ -8,7 +8,7 @@
|
||||
<%= gettext("no invites 😔") %>
|
||||
</h1>
|
||||
|
||||
<.link patch={Routes.invite_index_path(Endpoint, :new)} class="btn btn-primary ml-auto">
|
||||
<.link patch={Routes.invite_index_path(Endpoint, :new)} class="btn btn-primary">
|
||||
<%= dgettext("actions", "invite someone new!") %>
|
||||
</.link>
|
||||
<% end %>
|
||||
@ -87,7 +87,7 @@
|
||||
<hr class="hr" />
|
||||
|
||||
<h1 class="title text-xl text-primary-400">
|
||||
<%= gettext("Admins") %>
|
||||
<%= gettext("admins") %>
|
||||
</h1>
|
||||
|
||||
<div class="flex flex-col justify-center items-stretch space-y-4">
|
||||
@ -100,7 +100,7 @@
|
||||
data-confirm={
|
||||
dgettext(
|
||||
"prompts",
|
||||
"are you sure you want to delete %{email}? This action is permanent!",
|
||||
"are you sure you want to delete %{email}? this action is permanent!",
|
||||
email: admin.email
|
||||
)
|
||||
}
|
||||
@ -128,7 +128,7 @@
|
||||
data-confirm={
|
||||
dgettext(
|
||||
"prompts",
|
||||
"are you sure you want to delete %{email}? This action is permanent!",
|
||||
"are you sure you want to delete %{email}? this action is permanent!",
|
||||
email: user.email
|
||||
)
|
||||
}
|
||||
|
@ -28,8 +28,8 @@ defmodule MemexWeb.LiveHelpers do
|
||||
def modal(assigns) do
|
||||
~H"""
|
||||
<.link
|
||||
patch={@return_to}
|
||||
id="modal-bg"
|
||||
patch={@return_to}
|
||||
class="fade-in fixed z-10 left-0 top-0
|
||||
w-full h-full overflow-hidden
|
||||
p-8 flex flex-col justify-center items-center cursor-auto"
|
||||
@ -42,7 +42,7 @@ defmodule MemexWeb.LiveHelpers do
|
||||
<div
|
||||
id="modal"
|
||||
class="fixed z-10 left-0 top-0 pointer-events-none
|
||||
w-screen h-screen overflow-hidden
|
||||
w-full h-full overflow-hidden
|
||||
p-4 sm:p-8 flex flex-col justify-center items-center"
|
||||
>
|
||||
<div
|
||||
|
@ -11,9 +11,9 @@
|
||||
<script defer type="text/javascript" src="/js/app.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="m-0 p-0 w-full h-full bg-primary-800 text-primary-400 subpixel-antialiased">
|
||||
<body class="pb-8 m-0 p-0 w-full h-full bg-primary-800 text-primary-400 subpixel-antialiased">
|
||||
<header>
|
||||
<.topbar current_user={assigns[:current_user]}></.topbar>
|
||||
<.topbar current_user={assigns[:current_user]} />
|
||||
</header>
|
||||
|
||||
<div class="pb-8 w-full flex flex-col justify-center items-center text-center">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<main role="main" class="min-h-full min-w-full">
|
||||
<header>
|
||||
<.topbar current_user={assigns[:current_user]}></.topbar>
|
||||
<.topbar current_user={assigns[:current_user]} />
|
||||
|
||||
<div class="mx-8 my-2 flex flex-col space-y-4 text-center">
|
||||
<p :if={get_flash(@conn, :info)} class="alert alert-info" role="alert">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<main class="pb-8 min-w-full">
|
||||
<header>
|
||||
<.topbar current_user={assigns[:current_user]}></.topbar>
|
||||
<.topbar current_user={assigns[:current_user]} />
|
||||
|
||||
<div class="mx-8 my-2 flex flex-col space-y-4 text-center">
|
||||
<p
|
||||
|
@ -9,7 +9,7 @@
|
||||
action={Routes.user_confirmation_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", "Resend confirmation instructions"),
|
||||
|
@ -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") %>
|
||||
|
||||
|
@ -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"
|
||||
>
|
||||
<div :if={@changeset.action && not @changeset.valid?()} class="alert alert-danger col-span-3">
|
||||
<p>
|
||||
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
|
||||
</p>
|
||||
</div>
|
||||
<p :if={@changeset.action && not @changeset.valid?()} class="alert alert-danger col-span-3">
|
||||
<%= dgettext("errors", "oops, something went wrong! please check the errors below.") %>
|
||||
</p>
|
||||
|
||||
<%= 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,
|
||||
|
@ -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"),
|
||||
|
@ -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"
|
||||
>
|
||||
<div :if={@error_message} class="alert alert-danger col-span-3">
|
||||
<p>
|
||||
<%= @error_message %>
|
||||
</p>
|
||||
</div>
|
||||
<p :if={@error_message} class="alert alert-danger col-span-3">
|
||||
<%= @error_message %>
|
||||
</p>
|
||||
|
||||
<%= 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") %>
|
||||
|
@ -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") %>
|
||||
</div>
|
||||
|
||||
<%= hidden_input(f, :action, name: "action", value: "update_email") %>
|
||||
@ -57,12 +57,12 @@
|
||||
<%= dgettext("actions", "change password") %>
|
||||
</h3>
|
||||
|
||||
<div
|
||||
<p
|
||||
:if={@password_changeset.action && not @password_changeset.valid?()}
|
||||
class="alert alert-danger col-span-3"
|
||||
>
|
||||
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
|
||||
</div>
|
||||
<%= dgettext("errors", "oops, something went wrong! please check the errors below.") %>
|
||||
</p>
|
||||
|
||||
<%= 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") %>
|
||||
</div>
|
||||
|
||||
<%= hidden_input(f, :action, name: "action", value: "update_locale") %>
|
||||
|
@ -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
|
||||
|
||||
|
2
mix.exs
2
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,
|
||||
|
@ -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 ""
|
||||
|
@ -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 ""
|
||||
|
@ -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 ""
|
||||
|
@ -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 ""
|
||||
|
@ -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 ""
|
||||
|
@ -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 ""
|
||||
|
163
priv/gettext/en/LC_MESSAGES/actions.po
Normal file
163
priv/gettext/en/LC_MESSAGES/actions.po
Normal file
@ -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 ""
|
675
priv/gettext/en/LC_MESSAGES/default.po
Normal file
675
priv/gettext/en/LC_MESSAGES/default.po
Normal file
@ -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 ""
|
93
priv/gettext/en/LC_MESSAGES/emails.po
Normal file
93
priv/gettext/en/LC_MESSAGES/emails.po
Normal file
@ -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 ""
|
145
priv/gettext/en/LC_MESSAGES/errors.po
Normal file
145
priv/gettext/en/LC_MESSAGES/errors.po
Normal file
@ -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 ""
|
159
priv/gettext/en/LC_MESSAGES/prompts.po
Normal file
159
priv/gettext/en/LC_MESSAGES/prompts.po
Normal file
@ -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 ""
|
@ -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 ""
|
||||
|
@ -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 ""
|
||||
|
176
test/memex/accounts/invites_test.exs
Normal file
176
test/memex/accounts/invites_test.exs
Normal file
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user