Compare commits
105 Commits
42e2d1c76e
...
b29a5cce7b
Author | SHA1 | Date | |
---|---|---|---|
b29a5cce7b | |||
9205a04ac5 | |||
632a9e1379 | |||
92cc49630d | |||
a778f5a61f | |||
07ff796553 | |||
07b31fcc86 | |||
bc034c0361 | |||
eb9280fa7e | |||
ad1e44fd42 | |||
4e9f66f006 | |||
81350f9898 | |||
9c4a32896f | |||
56dae6cdfe | |||
8ef3bd65a3 | |||
c8cadd6246 | |||
3f143262d4 | |||
ebe09bcf84 | |||
fd0b2c455a | |||
f1139d0ec4 | |||
cd6bb6fbc3 | |||
5c05f3b6fe | |||
30d3f76fe1 | |||
ed8c20e967 | |||
7b60938a75 | |||
f19d024d8a | |||
1fbed50b0f | |||
737484c36e | |||
6dbadc58ae | |||
f155a43ee8 | |||
bbaa1dfd6b | |||
2c2b9fefc9 | |||
bafc824a32 | |||
8c2f7e0509 | |||
22abc7a8d0 | |||
5a685ac00e | |||
a5c12b3e17 | |||
27af5acf8b | |||
469428c007 | |||
1cd28e43b8 | |||
695002c9d9 | |||
dde60d71d1 | |||
91794ddc55 | |||
1e3cec95fe | |||
f0a8c515f9 | |||
e99775eef2 | |||
6760f83ca0 | |||
10877bb754 | |||
38a581b639 | |||
9408705430 | |||
302aa7eeda | |||
fd4fdcc36b | |||
3cb723b9e4 | |||
1f92c452d1 | |||
c10cff63ea | |||
70faed71d0 | |||
b5c46c09ec | |||
7745765fc0 | |||
e16fbba810 | |||
e35bdf101b | |||
aa314e5ca1 | |||
616de3c117 | |||
74bcec6cfe | |||
41090c46d0 | |||
c3f5744ad6 | |||
95a339fe02 | |||
1e3b027367 | |||
dd46e1795f | |||
9e517e6477 | |||
34118299e9 | |||
97a9b6d51a | |||
059004ba78 | |||
5d02ed6369 | |||
ec6acdbb5d | |||
33d82a902d | |||
fc5b03d680 | |||
c918dbe4bf | |||
23b60e032d | |||
7283932d85 | |||
8ff1fd0276 | |||
4ef09f5279 | |||
9734be4966 | |||
485965d9c9 | |||
e9cdb0f717 | |||
1c07449b54 | |||
b64e85f65c | |||
9387756109 | |||
f1f3082368 | |||
50a8a79596 | |||
67b48e1a3f | |||
67c30d7f88 | |||
728728a5a4 | |||
a64d92a6cf | |||
6227d64072 | |||
46eed25a94 | |||
3674eeaf5a | |||
f0676a2433 | |||
a72a4b0cbe | |||
a2dea04668 | |||
3dc255b7c2 | |||
bde1cff7a4 | |||
66cc11e9eb | |||
81a250206e | |||
6d5f7f68df | |||
5b5f1ce1e5 |
19
.drone.yml
19
.drone.yml
@ -13,20 +13,24 @@ steps:
|
|||||||
mount:
|
mount:
|
||||||
- _build
|
- _build
|
||||||
- deps
|
- deps
|
||||||
- assets/node_modules/
|
- .npm
|
||||||
|
- .mix
|
||||||
|
|
||||||
- name: test
|
- name: test
|
||||||
image: elixir:1.14.1-alpine
|
image: elixir:1.14.1-alpine
|
||||||
environment:
|
environment:
|
||||||
TEST_DATABASE_URL: ecto://postgres:postgres@database/cannery_test
|
TEST_DATABASE_URL: ecto://postgres:postgres@database/cannery_test
|
||||||
HOST: testing.example.tld
|
HOST: testing.example.tld
|
||||||
|
MIX_HOME: /drone/src/.mix
|
||||||
|
MIX_ARCHIVES: /drone/src/.mix/archives
|
||||||
|
MIX_ENV: test
|
||||||
commands:
|
commands:
|
||||||
- apk add --no-cache build-base npm git python3
|
- apk add --no-cache build-base npm git
|
||||||
- mix local.rebar --force
|
- mix local.rebar --force --if-missing
|
||||||
- mix local.hex --force
|
- mix local.hex --force --if-missing
|
||||||
- mix deps.get
|
- mix deps.get
|
||||||
- mix deps.compile
|
- npm set cache .npm
|
||||||
- npm --prefix ./assets ci --progress=false --no-audit --loglevel=error
|
- npm --prefix ./assets ci --no-audit --prefer-offline
|
||||||
- npm run --prefix ./assets deploy
|
- npm run --prefix ./assets deploy
|
||||||
- mix do phx.digest, gettext.extract
|
- mix do phx.digest, gettext.extract
|
||||||
- mix test.all
|
- mix test.all
|
||||||
@ -76,7 +80,8 @@ steps:
|
|||||||
mount:
|
mount:
|
||||||
- _build
|
- _build
|
||||||
- deps
|
- deps
|
||||||
- assets/node_modules/
|
- .npm
|
||||||
|
- .mix
|
||||||
|
|
||||||
services:
|
services:
|
||||||
- name: database
|
- name: database
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -25,7 +25,7 @@ cannery-*.tar
|
|||||||
# If NPM crashes, it generates a log, let's ignore it too.
|
# If NPM crashes, it generates a log, let's ignore it too.
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
|
|
||||||
# Ignore assets that are produced by build tools.
|
# The directory NPM downloads your dependencies sources to.
|
||||||
/assets/node_modules/
|
/assets/node_modules/
|
||||||
|
|
||||||
# Since we are building assets from assets/,
|
# Since we are building assets from assets/,
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
elixir 1.14.1-otp-25
|
elixir 1.14.1-otp-25
|
||||||
erlang 25.1.2
|
erlang 25.1.2
|
||||||
nodejs 18.12.1
|
nodejs 18.9.1
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
# v0.8.3
|
||||||
|
- Improve some styles
|
||||||
|
- Improve server log
|
||||||
|
- Various minor improvements
|
||||||
|
|
||||||
# v0.8.2
|
# v0.8.2
|
||||||
- Fix bug with public registration
|
- Fix bug with public registration
|
||||||
- Improve templates
|
- Improve templates
|
||||||
|
@ -63,7 +63,8 @@ And as always, thank you!
|
|||||||
[`phx_gen_auth`](https://hexdocs.pm/phx_gen_auth/).
|
[`phx_gen_auth`](https://hexdocs.pm/phx_gen_auth/).
|
||||||
- `Dockerfile` and example `docker-compose.yml`
|
- `Dockerfile` and example `docker-compose.yml`
|
||||||
- Automatic migrations in `MIX_ENV=prod` or Docker image
|
- Automatic migrations in `MIX_ENV=prod` or Docker image
|
||||||
- JS linting with [standard.js](https://standardjs.com)
|
- JS linting with [standard.js](https://standardjs.com), HEEx linting with
|
||||||
|
[heex_formatter](https://github.com/feliperenan/heex_formatter)
|
||||||
|
|
||||||
## Docs
|
## Docs
|
||||||
|
|
||||||
@ -109,7 +110,7 @@ In `dev` mode, Cannery will listen for these environment variables at runtime.
|
|||||||
- `POOL_SIZE`: Controls the pool size to use with PostgreSQL. Defaults to `10`.
|
- `POOL_SIZE`: Controls the pool size to use with PostgreSQL. Defaults to `10`.
|
||||||
- `REGISTRATION`: Controls if user sign-up should be invite only or set to public. Set to `public` to enable public registration. Defaults to `invite`.
|
- `REGISTRATION`: Controls if user sign-up should be invite only or set to public. Set to `public` to enable public registration. Defaults to `invite`.
|
||||||
- `LOCALE`: Sets a custom default locale. Defaults to `en_US`.
|
- `LOCALE`: Sets a custom default locale. Defaults to `en_US`.
|
||||||
- Available options: `en_US`, `de`, and `fr`
|
- Available options: `en_US`, `de`, `fr`, and `es`
|
||||||
|
|
||||||
## `MIX_ENV=test`
|
## `MIX_ENV=test`
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ You can use the following environment variables to configure Cannery in
|
|||||||
- `REGISTRATION`: Controls if user sign-up should be invite only or set to
|
- `REGISTRATION`: Controls if user sign-up should be invite only or set to
|
||||||
public. Set to `public` to enable public registration. Defaults to `invite`.
|
public. Set to `public` to enable public registration. Defaults to `invite`.
|
||||||
- `LOCALE`: Sets a custom default locale. Defaults to `en_US`
|
- `LOCALE`: Sets a custom default locale. Defaults to `en_US`
|
||||||
- Available options: `en_US`, `de`, and `fr`
|
- Available options: `en_US`, `de`, `fr` and `es`
|
||||||
- `SMTP_HOST`: The url for your SMTP email provider. Must be set
|
- `SMTP_HOST`: The url for your SMTP email provider. Must be set
|
||||||
- `SMTP_PORT`: The port for your SMTP relay. Defaults to `587`.
|
- `SMTP_PORT`: The port for your SMTP relay. Defaults to `587`.
|
||||||
- `SMTP_USERNAME`: The username for your SMTP relay. Must be set!
|
- `SMTP_USERNAME`: The username for your SMTP relay. Must be set!
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
@apply inline-block break-words;
|
|
||||||
@apply focus:outline-none px-4 py-2 rounded-lg;
|
@apply focus:outline-none px-4 py-2 rounded-lg;
|
||||||
@apply shadow-sm focus:shadow-lg;
|
@apply shadow-sm focus:shadow-lg;
|
||||||
@apply transition-all duration-300 ease-in-out;
|
@apply transition-all duration-300 ease-in-out;
|
||||||
@ -52,7 +51,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
@apply inline-block break-words;
|
|
||||||
@apply hover:underline;
|
@apply hover:underline;
|
||||||
@apply transition-colors duration-500 ease-in-out;
|
@apply transition-colors duration-500 ease-in-out;
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
"description": " ",
|
"description": " ",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "18.12.1",
|
"node": "v18.9.1",
|
||||||
"npm": "8.19.2"
|
"npm": "8.10.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"deploy": "NODE_ENV=production webpack --mode production",
|
"deploy": "NODE_ENV=production webpack --mode production",
|
||||||
|
@ -16,9 +16,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> get_user_by_email("foo@example.com")
|
||||||
iex> with %User{} <- get_user_by_email("foo@example.com"), do: :passed
|
%User{}
|
||||||
:passed
|
|
||||||
|
|
||||||
iex> get_user_by_email("unknown@example.com")
|
iex> get_user_by_email("unknown@example.com")
|
||||||
nil
|
nil
|
||||||
@ -34,9 +33,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> get_user_by_email_and_password("foo@example.com", "valid_password")
|
||||||
iex> with %User{} <- get_user_by_email_and_password("foo@example.com", "valid_password"), do: :passed
|
%User{}
|
||||||
:passed
|
|
||||||
|
|
||||||
iex> get_user_by_email_and_password("foo@example.com", "invalid_password")
|
iex> get_user_by_email_and_password("foo@example.com", "invalid_password")
|
||||||
nil
|
nil
|
||||||
@ -57,15 +55,14 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> get_user!(user_id)
|
||||||
iex> get_user!(user.id)
|
|
||||||
user
|
user
|
||||||
|
|
||||||
> get_user!()
|
iex> get_user!()
|
||||||
** (Ecto.NoResultsError)
|
** (Ecto.NoResultsError)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec get_user!(User.t()) :: User.t()
|
@spec get_user!(User.id()) :: User.t()
|
||||||
def get_user!(id) do
|
def get_user!(id) do
|
||||||
Repo.get!(User, id)
|
Repo.get!(User, id)
|
||||||
end
|
end
|
||||||
@ -75,10 +72,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user1} = register_user(%{email: "foo1@example.com", password: "valid_password"})
|
iex> list_all_users_by_role(user1)
|
||||||
iex> {:ok, user2} = register_user(%{email: "foo2@example.com", password: "valid_password"})
|
%{admin: [%User{role: :admin}], user: [%User{role: :user}]}
|
||||||
iex> with %{admin: [^user1], user: [^user2]} <- list_all_users_by_role(user1), do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec list_all_users_by_role(User.t()) :: %{User.role() => [User.t()]}
|
@spec list_all_users_by_role(User.t()) :: %{User.role() => [User.t()]}
|
||||||
@ -91,9 +86,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> list_users_by_role(:admin)
|
||||||
iex> with [^user] <- list_users_by_role(:admin), do: :passed
|
[%User{role: :admin}]
|
||||||
:passed
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec list_users_by_role(:admin) :: [User.t()]
|
@spec list_users_by_role(:admin) :: [User.t()]
|
||||||
@ -108,13 +102,11 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> with {:ok, %User{email: "foo@example.com"}} <-
|
iex> register_user(%{email: "foo@example.com", password: "valid_password"})
|
||||||
...> register_user(%{email: "foo@example.com", password: "valid_password"}),
|
{:ok, %User{email: "foo@example.com"}}
|
||||||
...> do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
iex> with {:error, %Changeset{}} <- register_user(%{email: "foo@example"}), do: :passed
|
iex> register_user(%{email: "foo@example"})
|
||||||
:passed
|
{:error, %Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec register_user(attrs :: map()) ::
|
@spec register_user(attrs :: map()) ::
|
||||||
@ -149,11 +141,11 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> with %Changeset{} <- change_user_registration(), do: :passed
|
iex> change_user_registration()
|
||||||
:passed
|
%Changeset{}
|
||||||
|
|
||||||
iex> with %Changeset{} <- change_user_registration(%{password: "hi"}), do: :passed
|
iex> change_user_registration(%{password: "hi"}
|
||||||
:passed
|
%Changeset{}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_user_registration() :: User.changeset()
|
@spec change_user_registration() :: User.changeset()
|
||||||
@ -169,8 +161,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> with %Changeset{} <- change_user_email(%User{email: "foo@example.com"}), do: :passed
|
iex> change_user_email(%User{email: "foo@example.com"})
|
||||||
:passed
|
%Changeset{}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_user_email(User.t()) :: User.changeset()
|
@spec change_user_email(User.t()) :: User.changeset()
|
||||||
@ -184,8 +176,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> with %Changeset{} <- change_user_role(%User{}, :user), do: :passed
|
iex> change_user_role(%User{}, :user)
|
||||||
:passed
|
%Changeset{}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_user_role(User.t(), User.role()) :: User.changeset()
|
@spec change_user_role(User.t(), User.role()) :: User.changeset()
|
||||||
@ -199,17 +191,11 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> apply_user_email(user, "valid_password", %{email: "new_email@account.com"})
|
||||||
iex> with {:ok, %User{}} <-
|
{:ok, %User{}}
|
||||||
...> apply_user_email(user, "valid_password", %{email: "new_email@account.com"}),
|
|
||||||
...> do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> apply_user_email(user, "invalid password", %{email: "new_email@account"})
|
||||||
iex> with {:error, %Changeset{}} <-
|
{:error, %Changeset{}}
|
||||||
...> apply_user_email(user, "invalid password", %{email: "new_email@account"}),
|
|
||||||
...> do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec apply_user_email(User.t(), email :: String.t(), attrs :: map()) ::
|
@spec apply_user_email(User.t(), email :: String.t(), attrs :: map()) ::
|
||||||
@ -254,12 +240,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, %{id: user_id} = user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> deliver_update_email_instructions(user, "new_foo@example.com", fn _token -> "example url" end)
|
||||||
iex> with %Oban.Job{
|
%Oban.Job{args: %{email: :update_email, user_id: ^user_id, attrs: %{url: "example url"}}}
|
||||||
...> args: %{email: :update_email, user_id: ^user_id, attrs: %{url: "example url"}}
|
|
||||||
...> } <- deliver_update_email_instructions(user, "new_foo@example.com", fn _token -> "example url" end),
|
|
||||||
...> do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec deliver_update_email_instructions(User.t(), current_email :: String.t(), function) ::
|
@spec deliver_update_email_instructions(User.t(), current_email :: String.t(), function) ::
|
||||||
@ -276,8 +258,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> with %Changeset{} <- change_user_password(%User{}), do: :passed
|
iex> change_user_password(%User{})
|
||||||
:passed
|
%Changeset{}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_user_password(User.t(), attrs :: map()) :: User.changeset()
|
@spec change_user_password(User.t(), attrs :: map()) :: User.changeset()
|
||||||
@ -290,20 +272,14 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> reset_user_password(user, %{
|
||||||
iex> with {:ok, %User{}} <-
|
...> password: "new password",
|
||||||
...> reset_user_password(user, %{
|
...> password_confirmation: "new password"
|
||||||
...> password: "new password",
|
...> })
|
||||||
...> password_confirmation: "new password"
|
{:ok, %User{}}
|
||||||
...> }),
|
|
||||||
...> do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> update_user_password(user, "invalid password", %{password: "123"})
|
||||||
iex> with {:error, %Changeset{}} <-
|
{:error, %Changeset{}}
|
||||||
...> update_user_password(user, "invalid password", %{password: "123"}),
|
|
||||||
...> do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec update_user_password(User.t(), String.t(), attrs :: map()) ::
|
@spec update_user_password(User.t(), String.t(), attrs :: map()) ::
|
||||||
@ -329,8 +305,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> with %Changeset{} <- change_user_locale(%User{}), do: :passed
|
iex> change_user_locale(%User{})
|
||||||
:passed
|
%Changeset{}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_user_locale(User.t()) :: User.changeset()
|
@spec change_user_locale(User.t()) :: User.changeset()
|
||||||
@ -343,9 +319,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> update_user_locale(user, "en_US")
|
||||||
iex> with {:ok, %User{}} <- update_user_locale(user, "en_US"), do: :passed
|
{:ok, %User{}}
|
||||||
:passed
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec update_user_locale(User.t(), locale :: String.t()) ::
|
@spec update_user_locale(User.t(), locale :: String.t()) ::
|
||||||
@ -359,13 +334,11 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> delete_user!(user, %User{id: 123, role: :admin})
|
||||||
iex> with %User{} <- delete_user!(user, %User{id: 123, role: :admin}), do: :passed
|
%User{}
|
||||||
:passed
|
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> delete_user!(user, user)
|
||||||
iex> with %User{} <- delete_user!(user, user), do: :passed
|
%User{}
|
||||||
:passed
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec delete_user!(user_to_delete :: User.t(), User.t()) :: User.t()
|
@spec delete_user!(user_to_delete :: User.t(), User.t()) :: User.t()
|
||||||
@ -421,11 +394,10 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> is_admin?(%User{role: :admin})
|
||||||
iex> is_admin?(user)
|
|
||||||
true
|
true
|
||||||
|
|
||||||
iex> is_admin?(%User{id: Ecto.UUID.generate()})
|
iex> is_admin?(%User{})
|
||||||
false
|
false
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -439,8 +411,7 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> is_already_admin?(%User{role: :admin})
|
||||||
iex> is_already_admin?(user)
|
|
||||||
true
|
true
|
||||||
|
|
||||||
iex> is_already_admin?(%User{})
|
iex> is_already_admin?(%User{})
|
||||||
@ -458,15 +429,9 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, %{id: user_id} = user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> deliver_user_confirmation_instructions(user, fn _token -> "example url" end)
|
||||||
iex> with %Oban.Job{
|
%Oban.Job{args: %{email: :welcome, user_id: ^user_id, attrs: %{url: "example url"}}}
|
||||||
...> args: %{email: :welcome, user_id: ^user_id, attrs: %{url: "example url"}}
|
|
||||||
...> } <- deliver_user_confirmation_instructions(user, fn _token -> "example url" end),
|
|
||||||
...> do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
|
||||||
iex> user = user |> User.confirm_changeset() |> Repo.update!()
|
|
||||||
iex> deliver_user_confirmation_instructions(user, fn _token -> "example url" end)
|
iex> deliver_user_confirmation_instructions(user, fn _token -> "example url" end)
|
||||||
{:error, :already_confirmed}
|
{:error, :already_confirmed}
|
||||||
|
|
||||||
@ -514,12 +479,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, %{id: user_id} = user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> deliver_user_reset_password_instructions(user, fn _token -> "example url" end)
|
||||||
iex> with %Oban.Job{args: %{
|
%Oban.Job{args: %{email: :reset_password, user_id: ^user_id, attrs: %{url: "example url"}}}
|
||||||
...> email: :reset_password, user_id: ^user_id, attrs: %{url: "example url"}}
|
|
||||||
...> } <- deliver_user_reset_password_instructions(user, fn _token -> "example url" end),
|
|
||||||
...> do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec deliver_user_reset_password_instructions(User.t(), function()) :: Job.t()
|
@spec deliver_user_reset_password_instructions(User.t(), function()) :: Job.t()
|
||||||
@ -535,11 +496,8 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> get_user_by_reset_password_token(encoded_token)
|
||||||
iex> {encoded_token, user_token} = UserToken.build_email_token(user, "reset_password")
|
%User{}
|
||||||
iex> Repo.insert!(user_token)
|
|
||||||
iex> with %User{} <- get_user_by_reset_password_token(encoded_token), do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
iex> get_user_by_reset_password_token("invalidtoken")
|
iex> get_user_by_reset_password_token("invalidtoken")
|
||||||
nil
|
nil
|
||||||
@ -560,20 +518,14 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> reset_user_password(user, %{
|
||||||
iex> with {:ok, %User{}} <-
|
...> password: "new password",
|
||||||
...> reset_user_password(user, %{
|
...> password_confirmation: "new password"
|
||||||
...> password: "new password",
|
...> })
|
||||||
...> password_confirmation: "new password"
|
{:ok, %User{}}
|
||||||
...> }),
|
|
||||||
...> do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
iex> {:ok, user} = register_user(%{email: "foo@example.com", password: "valid_password"})
|
iex> reset_user_password(user, %{password: "valid", password_confirmation: "not the same"})
|
||||||
iex> with {:error, %Changeset{}} <-
|
{:error, %Changeset{}}
|
||||||
...> reset_user_password(user, %{password: "valid", password_confirmation: "not the same"}),
|
|
||||||
...> do: :passed
|
|
||||||
:passed
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec reset_user_password(User.t(), attrs :: map()) ::
|
@spec reset_user_password(User.t(), attrs :: map()) ::
|
||||||
|
@ -27,21 +27,21 @@ defmodule Cannery.Email do
|
|||||||
@spec generate_email(key :: String.t(), User.t(), attrs :: map()) :: t()
|
@spec generate_email(key :: String.t(), User.t(), attrs :: map()) :: t()
|
||||||
def generate_email("welcome", user, %{"url" => url}) do
|
def generate_email("welcome", user, %{"url" => url}) do
|
||||||
user
|
user
|
||||||
|> base_email(dgettext("emails", "Confirm your %{name} account", name: "Cannery"))
|
|> base_email(dgettext("emails", "Confirm your Cannery account"))
|
||||||
|> render_body("confirm_email.html", %{user: user, url: url})
|
|> render_body("confirm_email.html", %{user: user, url: url})
|
||||||
|> text_body(EmailView.render("confirm_email.txt", %{user: user, url: url}))
|
|> text_body(EmailView.render("confirm_email.txt", %{user: user, url: url}))
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate_email("reset_password", user, %{"url" => url}) do
|
def generate_email("reset_password", user, %{"url" => url}) do
|
||||||
user
|
user
|
||||||
|> base_email(dgettext("emails", "Reset your %{name} password", name: "Cannery"))
|
|> base_email(dgettext("emails", "Reset your Cannery password"))
|
||||||
|> render_body("reset_password.html", %{user: user, url: url})
|
|> render_body("reset_password.html", %{user: user, url: url})
|
||||||
|> text_body(EmailView.render("reset_password.txt", %{user: user, url: url}))
|
|> text_body(EmailView.render("reset_password.txt", %{user: user, url: url}))
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate_email("update_email", user, %{"url" => url}) do
|
def generate_email("update_email", user, %{"url" => url}) do
|
||||||
user
|
user
|
||||||
|> base_email(dgettext("emails", "Update your %{name} email", name: "Cannery"))
|
|> base_email(dgettext("emails", "Update your Cannery email"))
|
||||||
|> render_body("update_email.html", %{user: user, url: url})
|
|> render_body("update_email.html", %{user: user, url: url})
|
||||||
|> text_body(EmailView.render("update_email.txt", %{user: user, url: url}))
|
|> text_body(EmailView.render("update_email.txt", %{user: user, url: url}))
|
||||||
end
|
end
|
||||||
|
@ -4,7 +4,7 @@ defmodule Cannery.Application do
|
|||||||
@moduledoc false
|
@moduledoc false
|
||||||
|
|
||||||
use Application
|
use Application
|
||||||
alias Cannery.ErrorReporter
|
alias Cannery.Logger
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def start(_type, _args) do
|
def start(_type, _args) do
|
||||||
@ -33,7 +33,7 @@ defmodule Cannery.Application do
|
|||||||
[:oban, :job, :start],
|
[:oban, :job, :start],
|
||||||
[:oban, :job, :stop]
|
[:oban, :job, :stop]
|
||||||
],
|
],
|
||||||
&ErrorReporter.handle_event/4,
|
&Logger.handle_event/4,
|
||||||
[]
|
[]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
defmodule Cannery.ErrorReporter do
|
defmodule Cannery.Logger do
|
||||||
@moduledoc """
|
@moduledoc """
|
||||||
Custom logger for telemetry events
|
Custom logger for telemetry events
|
||||||
|
|
||||||
@ -12,41 +12,47 @@ defmodule Cannery.ErrorReporter do
|
|||||||
data =
|
data =
|
||||||
get_oban_job_data(meta, measure)
|
get_oban_job_data(meta, measure)
|
||||||
|> Map.put(:stacktrace, Exception.format_stacktrace(stacktrace))
|
|> Map.put(:stacktrace, Exception.format_stacktrace(stacktrace))
|
||||||
|
|> pretty_encode()
|
||||||
|
|
||||||
Logger.error(meta.reason, data: pretty_encode(data))
|
Logger.error(meta.reason, data: data)
|
||||||
end
|
end
|
||||||
|
|
||||||
def handle_event([:oban, :job, :start], measure, meta, _config) do
|
def handle_event([:oban, :job, :start], measure, meta, _config) do
|
||||||
Logger.info("Started oban job", data: get_oban_job_data(meta, measure) |> pretty_encode())
|
data = get_oban_job_data(meta, measure) |> pretty_encode()
|
||||||
|
Logger.info("Started oban job", data: data)
|
||||||
end
|
end
|
||||||
|
|
||||||
def handle_event([:oban, :job, :stop], measure, meta, _config) do
|
def handle_event([:oban, :job, :stop], measure, meta, _config) do
|
||||||
Logger.info("Finished oban job", data: get_oban_job_data(meta, measure) |> pretty_encode())
|
data = get_oban_job_data(meta, measure) |> pretty_encode()
|
||||||
|
Logger.info("Finished oban job", data: data)
|
||||||
end
|
end
|
||||||
|
|
||||||
def handle_event([:oban, :job, unhandled_event], measure, meta, _config) do
|
def handle_event([:oban, :job, unhandled_event], measure, meta, _config) do
|
||||||
data =
|
data =
|
||||||
get_oban_job_data(meta, measure)
|
get_oban_job_data(meta, measure)
|
||||||
|> Map.put(:event, unhandled_event)
|
|> Map.put(:event, unhandled_event)
|
||||||
|
|> pretty_encode()
|
||||||
|
|
||||||
Logger.warning("Unhandled oban job event", data: pretty_encode(data))
|
Logger.warning("Unhandled oban job event", data: data)
|
||||||
end
|
end
|
||||||
|
|
||||||
def handle_event(unhandled_event, measure, meta, config) do
|
def handle_event(unhandled_event, measure, meta, config) do
|
||||||
data = %{
|
data =
|
||||||
event: unhandled_event,
|
pretty_encode(%{
|
||||||
meta: meta,
|
event: unhandled_event,
|
||||||
measurements: measure,
|
meta: meta,
|
||||||
config: config
|
measurements: measure,
|
||||||
}
|
config: config
|
||||||
|
})
|
||||||
|
|
||||||
Logger.warning("Unhandled telemetry event", data: pretty_encode(data))
|
Logger.warning("Unhandled telemetry event", data: data)
|
||||||
end
|
end
|
||||||
|
|
||||||
defp get_oban_job_data(%{job: job}, measure) do
|
defp get_oban_job_data(%{job: job}, measure) do
|
||||||
job
|
%{
|
||||||
|> Map.take([:id, :args, :meta, :queue, :worker])
|
job: job |> Map.take([:id, :args, :meta, :queue, :worker]),
|
||||||
|> Map.merge(measure)
|
measurements: measure
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
defp pretty_encode(data) do
|
defp pretty_encode(data) do
|
@ -9,7 +9,9 @@ defmodule Cannery.Release do
|
|||||||
|
|
||||||
def rollback(repo, version) do
|
def rollback(repo, version) do
|
||||||
load_app()
|
load_app()
|
||||||
{:ok, _fun, _opts} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :down, to: version))
|
|
||||||
|
{:ok, _fun_return, _apps} =
|
||||||
|
Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :down, to: version))
|
||||||
end
|
end
|
||||||
|
|
||||||
defp load_app do
|
defp load_app do
|
||||||
@ -20,7 +22,8 @@ defmodule Cannery.Release do
|
|||||||
load_app()
|
load_app()
|
||||||
|
|
||||||
for repo <- Application.fetch_env!(@app, :ecto_repos) do
|
for repo <- Application.fetch_env!(@app, :ecto_repos) do
|
||||||
{:ok, _fun, _opts} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :up, all: true))
|
{:ok, _fun_return, _apps} =
|
||||||
|
Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :up, all: true))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
defmodule Cannery.Repo.Migrator do
|
defmodule Cannery.Repo.Migrator do
|
||||||
@moduledoc """
|
@moduledoc """
|
||||||
Genserver to automatically run migrations in prod env
|
Genserver to automatically perform all migration on app start
|
||||||
"""
|
"""
|
||||||
|
|
||||||
use GenServer
|
use GenServer
|
||||||
|
@ -6,7 +6,7 @@ defmodule CanneryWeb.Components.Topbar do
|
|||||||
use CanneryWeb, :component
|
use CanneryWeb, :component
|
||||||
|
|
||||||
alias Cannery.Accounts
|
alias Cannery.Accounts
|
||||||
alias CanneryWeb.{Endpoint, HomeLive}
|
alias CanneryWeb.HomeLive
|
||||||
|
|
||||||
def topbar(assigns) do
|
def topbar(assigns) do
|
||||||
assigns =
|
assigns =
|
||||||
@ -81,19 +81,17 @@ defmodule CanneryWeb.Components.Topbar do
|
|||||||
<%= gettext("Range") %>
|
<%= gettext("Range") %>
|
||||||
</.link>
|
</.link>
|
||||||
</li>
|
</li>
|
||||||
<%= if @current_user.role == :admin do %>
|
<li :if={@current_user |> Accounts.is_already_admin?()} class="mx-2 my-1">
|
||||||
<li class="mx-2 my-1">
|
<.link
|
||||||
<.link
|
navigate={Routes.invite_index_path(Endpoint, :index)}
|
||||||
navigate={Routes.invite_index_path(Endpoint, :index)}
|
class="text-primary-600 text-white hover:underline"
|
||||||
class="text-primary-600 text-white hover:underline"
|
>
|
||||||
>
|
<%= gettext("Invites") %>
|
||||||
<%= gettext("Invites") %>
|
</.link>
|
||||||
</.link>
|
</li>
|
||||||
</li>
|
|
||||||
<% end %>
|
|
||||||
<li class="mx-2 my-1">
|
<li class="mx-2 my-1">
|
||||||
<.link
|
<.link
|
||||||
navigate={Routes.user_settings_path(Endpoint, :edit)}
|
href={Routes.user_settings_path(Endpoint, :edit)}
|
||||||
class="text-primary-600 text-white hover:underline truncate"
|
class="text-primary-600 text-white hover:underline truncate"
|
||||||
>
|
>
|
||||||
<%= @current_user.email %>
|
<%= @current_user.email %>
|
||||||
@ -108,29 +106,33 @@ defmodule CanneryWeb.Components.Topbar do
|
|||||||
<i class="fas fa-sign-out-alt"></i>
|
<i class="fas fa-sign-out-alt"></i>
|
||||||
</.link>
|
</.link>
|
||||||
</li>
|
</li>
|
||||||
<%= if @current_user.role == :admin and function_exported?(Routes, :live_dashboard_path, 2) do %>
|
<li
|
||||||
<li class="mx-2 my-1">
|
:if={
|
||||||
<.link
|
@current_user |> Accounts.is_already_admin?() and
|
||||||
navigate={Routes.live_dashboard_path(Endpoint, :home)}
|
function_exported?(Routes, :live_dashboard_path, 2)
|
||||||
class="text-primary-600 text-white hover:underline"
|
}
|
||||||
>
|
class="mx-2 my-1"
|
||||||
<i class="fas fa-gauge"></i>
|
>
|
||||||
</.link>
|
<.link
|
||||||
</li>
|
navigate={Routes.live_dashboard_path(Endpoint, :home)}
|
||||||
<% end %>
|
class="text-white text-white hover:underline"
|
||||||
|
>
|
||||||
|
<i class="fas fa-gauge"></i>
|
||||||
|
</.link>
|
||||||
|
</li>
|
||||||
<% else %>
|
<% else %>
|
||||||
<li :if={Accounts.allow_registration?()} class="mx-2 my-1">
|
<li :if={Accounts.allow_registration?()} class="mx-2 my-1">
|
||||||
<.link
|
<.link
|
||||||
navigate={Routes.user_registration_path(Endpoint, :new)}
|
href={Routes.user_registration_path(Endpoint, :new)}
|
||||||
class="text-primary-600 text-white hover:underline truncate"
|
class="text-white hover:underline truncate"
|
||||||
>
|
>
|
||||||
<%= dgettext("actions", "Register") %>
|
<%= dgettext("actions", "Register") %>
|
||||||
</.link>
|
</.link>
|
||||||
</li>
|
</li>
|
||||||
<li class="mx-2 my-1">
|
<li class="mx-2 my-1">
|
||||||
<.link
|
<.link
|
||||||
navigate={Routes.user_session_path(Endpoint, :new)}
|
href={Routes.user_session_path(Endpoint, :new)}
|
||||||
class="text-primary-600 text-white hover:underline truncate"
|
class="text-white hover:underline truncate"
|
||||||
>
|
>
|
||||||
<%= dgettext("actions", "Log in") %>
|
<%= dgettext("actions", "Log in") %>
|
||||||
</.link>
|
</.link>
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
defmodule CanneryWeb.HomeController do
|
defmodule CanneryWeb.HomeController do
|
||||||
|
@moduledoc """
|
||||||
|
Controller for home page
|
||||||
|
"""
|
||||||
|
|
||||||
use CanneryWeb, :controller
|
use CanneryWeb, :controller
|
||||||
|
|
||||||
def index(conn, _params) do
|
def index(conn, _params) do
|
||||||
|
@ -7,7 +7,7 @@ defmodule CanneryWeb.InviteLive.Index do
|
|||||||
import CanneryWeb.Components.{InviteCard, UserCard}
|
import CanneryWeb.Components.{InviteCard, UserCard}
|
||||||
alias Cannery.Accounts
|
alias Cannery.Accounts
|
||||||
alias Cannery.Accounts.{Invite, Invites}
|
alias Cannery.Accounts.{Invite, Invites}
|
||||||
alias CanneryWeb.{Endpoint, HomeLive}
|
alias CanneryWeb.HomeLive
|
||||||
alias Phoenix.LiveView.JS
|
alias Phoenix.LiveView.JS
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<div class="w-full flex flex-col space-y-8 justify-center items-center">
|
<div class="mx-auto flex flex-col justify-center items-center space-y-4 max-w-3xl">
|
||||||
<h1 class="title text-2xl title-primary-500">
|
<h1 class="title text-2xl title-primary-500">
|
||||||
<%= gettext("Invites") %>
|
<%= gettext("Invites") %>
|
||||||
</h1>
|
</h1>
|
||||||
@ -18,7 +18,7 @@
|
|||||||
</.link>
|
</.link>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="w-full flex flex-row flex-wrap justify-center items-stretch">
|
<div class="flex flex-col justify-center items-stretch space-y-4">
|
||||||
<.invite_card :for={invite <- @invites} invite={invite} current_user={@current_user}>
|
<.invite_card :for={invite <- @invites} invite={invite} current_user={@current_user}>
|
||||||
<:code_actions>
|
<:code_actions>
|
||||||
<form phx-submit="copy_to_clipboard">
|
<form phx-submit="copy_to_clipboard">
|
||||||
@ -87,7 +87,7 @@
|
|||||||
<%= gettext("Admins") %>
|
<%= gettext("Admins") %>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class="w-full flex flex-row flex-wrap justify-center items-stretch">
|
<div class="flex flex-col justify-center items-stretch space-y-4">
|
||||||
<.user_card :for={admin <- @admins} user={admin}>
|
<.user_card :for={admin <- @admins} user={admin}>
|
||||||
<.link
|
<.link
|
||||||
href="#"
|
href="#"
|
||||||
@ -115,7 +115,7 @@
|
|||||||
<%= gettext("Users") %>
|
<%= gettext("Users") %>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class="w-full flex flex-row flex-wrap justify-center items-stretch">
|
<div class="flex flex-col justify-center items-stretch space-y-4">
|
||||||
<.user_card :for={user <- @users} user={user}>
|
<.user_card :for={user <- @users} user={user}>
|
||||||
<.link
|
<.link
|
||||||
href="#"
|
href="#"
|
||||||
|
@ -6,7 +6,7 @@ defmodule CanneryWeb.TagLive.Index do
|
|||||||
use CanneryWeb, :live_view
|
use CanneryWeb, :live_view
|
||||||
import CanneryWeb.Components.TagCard
|
import CanneryWeb.Components.TagCard
|
||||||
alias Cannery.{Tags, Tags.Tag}
|
alias Cannery.{Tags, Tags.Tag}
|
||||||
alias CanneryWeb.{Endpoint, ViewHelpers}
|
alias CanneryWeb.ViewHelpers
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def mount(%{"search" => search}, _session, socket) do
|
def mount(%{"search" => search}, _session, socket) do
|
||||||
|
@ -3,23 +3,21 @@
|
|||||||
<%= dgettext("emails", "Hi %{email},", email: @user.email) %>
|
<%= dgettext("emails", "Hi %{email},", email: @user.email) %>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<br/>
|
<br />
|
||||||
|
|
||||||
<span style="margin-bottom: 1em; font-size: 1.25em;">
|
<span style="margin-bottom: 1em; font-size: 1.25em;">
|
||||||
<%= dgettext("emails", "Welcome to %{name}!", name: "Cannery") %>
|
<%= dgettext("emails", "Welcome to Cannery") %>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<br/>
|
<br />
|
||||||
|
|
||||||
<%= dgettext("emails", "You can confirm your account by visiting the URL below:") %>
|
<%= dgettext("emails", "You can confirm your account by visiting the URL below:") %>
|
||||||
|
|
||||||
<br/>
|
<br />
|
||||||
|
|
||||||
<a style="margin: 1em; color: rgb(31, 31, 31);" href="<%= @url %>"><%= @url %></a>
|
<a style="margin: 1em; color: rgb(31, 31, 31);" href={@url}><%= @url %></a>
|
||||||
|
|
||||||
<br/>
|
<br />
|
||||||
|
|
||||||
<%= dgettext("emails",
|
<%= dgettext("emails", "If you didn't create an account at Cannery, please ignore this.") %>
|
||||||
"If you didn't create an account at %{name}, please ignore this.",
|
|
||||||
name: "Cannery") %>
|
|
||||||
</div>
|
</div>
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
<%= dgettext("emails", "Hi %{email},", email: @user.email) %>
|
<%= dgettext("emails", "Hi %{email},", email: @user.email) %>
|
||||||
|
|
||||||
<%= dgettext("emails", "Welcome to %{name}%!", name: "Cannery") %>
|
<%= dgettext("emails", "Welcome to Cannery") %>
|
||||||
|
|
||||||
<%= dgettext("emails", "You can confirm your account by visiting the URL below:") %>
|
<%= dgettext("emails", "You can confirm your account by visiting the URL below:") %>
|
||||||
|
|
||||||
|
@ -3,17 +3,15 @@
|
|||||||
<%= dgettext("emails", "Hi %{email},", email: @user.email) %>
|
<%= dgettext("emails", "Hi %{email},", email: @user.email) %>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<br/>
|
<br />
|
||||||
|
|
||||||
<%= dgettext("emails", "You can reset your password by visiting the URL below:") %>
|
<%= dgettext("emails", "You can reset your password by visiting the URL below:") %>
|
||||||
|
|
||||||
<br/>
|
<br />
|
||||||
|
|
||||||
<a style="margin: 1em; color: rgb(31, 31, 31);" href="<%= @url %>"><%= @url %></a>
|
<a style="margin: 1em; color: rgb(31, 31, 31);" href={@url}><%= @url %></a>
|
||||||
|
|
||||||
<br/>
|
<br />
|
||||||
|
|
||||||
<%= dgettext("emails",
|
<%= dgettext("emails", "If you didn't request this change from Cannery, please ignore this.") %>
|
||||||
"If you didn't request this change from %{name}, please ignore this.",
|
|
||||||
name: "Cannery") %>
|
|
||||||
</div>
|
</div>
|
@ -3,17 +3,18 @@
|
|||||||
<%= dgettext("emails", "Hi %{email},", email: @user.email) %>
|
<%= dgettext("emails", "Hi %{email},", email: @user.email) %>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<br/>
|
<br />
|
||||||
|
|
||||||
<%= dgettext("emails", "You can change your email by visiting the URL below:") %>
|
<%= dgettext("emails", "You can change your email by visiting the URL below:") %>
|
||||||
|
|
||||||
<br/>
|
<br />
|
||||||
|
|
||||||
<a style="margin: 1em; color: rgb(31, 31, 31);" href="<%= @url %>"><%= @url %></a>
|
<a style="margin: 1em; color: rgb(31, 31, 31);" href={@url}><%= @url %></a>
|
||||||
|
|
||||||
<br/>
|
<br />
|
||||||
|
|
||||||
<%= dgettext("emails",
|
<%= dgettext(
|
||||||
"If you didn't request this change from %{name}, please ignore this.",
|
"emails",
|
||||||
name: "Cannery") %>
|
"If you didn't request this change from Cannery, please ignore this."
|
||||||
|
) %>
|
||||||
</div>
|
</div>
|
@ -13,7 +13,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="pb-8 m-0 p-0 w-full h-full">
|
<body class="pb-8 m-0 p-0 w-full h-full">
|
||||||
<header>
|
<header>
|
||||||
<.topbar current_user={assigns[:current_user]}></.topbar>
|
<.topbar current_user={assigns[:current_user]} />
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="pb-8 w-full flex flex-col justify-center items-center text-center">
|
<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">
|
<main role="main" class="min-h-full min-w-full">
|
||||||
<header>
|
<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">
|
<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">
|
<p :if={get_flash(@conn, :info)} class="alert alert-info" role="alert">
|
||||||
|
@ -12,8 +12,7 @@
|
|||||||
<a style="color: rgb(31, 31, 31);" href={Routes.live_url(Endpoint, HomeLive)}>
|
<a style="color: rgb(31, 31, 31);" href={Routes.live_url(Endpoint, HomeLive)}>
|
||||||
<%= dgettext(
|
<%= dgettext(
|
||||||
"emails",
|
"emails",
|
||||||
"This email was sent from %{name}, the self-hosted firearm tracker website.",
|
"This email was sent from Cannery, the self-hosted firearm tracker website."
|
||||||
name: "Cannery"
|
|
||||||
) %>
|
) %>
|
||||||
</a>
|
</a>
|
||||||
</body>
|
</body>
|
||||||
|
@ -7,6 +7,5 @@
|
|||||||
=====================
|
=====================
|
||||||
|
|
||||||
<%= dgettext("emails",
|
<%= dgettext("emails",
|
||||||
"This email was sent from %{name} at %{url}, the self-hosted firearm tracker website.",
|
"This email was sent from Cannery at %{url}, the self-hosted firearm tracker website.",
|
||||||
name: "Cannery",
|
|
||||||
url: Routes.live_url(Endpoint, HomeLive)) %>
|
url: Routes.live_url(Endpoint, HomeLive)) %>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<main class="pb-8 min-w-full">
|
<main class="pb-8 min-w-full">
|
||||||
<header>
|
<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">
|
<div class="mx-8 my-2 flex flex-col space-y-4 text-center">
|
||||||
<p
|
<p
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
action={Routes.user_confirmation_path(@conn, :create)}
|
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"
|
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-600") %>
|
<%= label(f, :email, gettext("Email"), class: "title text-lg text-primary-600") %>
|
||||||
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
|
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
|
||||||
|
|
||||||
<%= submit(dgettext("actions", "Resend confirmation instructions"),
|
<%= submit(dgettext("actions", "Resend confirmation instructions"),
|
||||||
|
@ -17,11 +17,11 @@
|
|||||||
<%= hidden_input(f, :invite_token, value: @invite_token) %>
|
<%= hidden_input(f, :invite_token, value: @invite_token) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= label(f, :email, class: "title text-lg text-primary-600") %>
|
<%= label(f, :email, gettext("Email"), class: "title text-lg text-primary-600") %>
|
||||||
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
|
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
|
||||||
<%= error_tag(f, :email, "col-span-3") %>
|
<%= error_tag(f, :email, "col-span-3") %>
|
||||||
|
|
||||||
<%= label(f, :password, class: "title text-lg text-primary-600") %>
|
<%= label(f, :password, gettext("Password"), class: "title text-lg text-primary-600") %>
|
||||||
<%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %>
|
<%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %>
|
||||||
<%= error_tag(f, :password, "col-span-3") %>
|
<%= error_tag(f, :password, "col-span-3") %>
|
||||||
|
|
||||||
|
@ -9,17 +9,15 @@
|
|||||||
action={Routes.user_reset_password_path(@conn, :update, @token)}
|
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"
|
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 :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.") %>
|
||||||
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
|
</p>
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= label(f, :password, "New password", class: "title text-lg text-primary-600") %>
|
<%= label(f, :password, gettext("New password"), class: "title text-lg text-primary-600") %>
|
||||||
<%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %>
|
<%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %>
|
||||||
<%= error_tag(f, :password, "col-span-3") %>
|
<%= 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-600"
|
class: "title text-lg text-primary-600"
|
||||||
) %>
|
) %>
|
||||||
<%= password_input(f, :password_confirmation,
|
<%= password_input(f, :password_confirmation,
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
action={Routes.user_reset_password_path(@conn, :create)}
|
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"
|
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-600") %>
|
<%= label(f, :email, gettext("Email"), class: "title text-lg text-primary-600") %>
|
||||||
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
|
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
|
||||||
|
|
||||||
<%= submit(dgettext("actions", "Send instructions to reset password"),
|
<%= submit(dgettext("actions", "Send instructions to reset password"),
|
||||||
|
@ -10,16 +10,14 @@
|
|||||||
as="user"
|
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"
|
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 :if={@error_message} class="alert alert-danger col-span-3">
|
||||||
<p>
|
<%= @error_message %>
|
||||||
<%= @error_message %>
|
</p>
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= label(f, :email, class: "title text-lg text-primary-600") %>
|
<%= label(f, :email, gettext("Email"), class: "title text-lg text-primary-600") %>
|
||||||
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
|
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
|
||||||
|
|
||||||
<%= label(f, :password, class: "title text-lg text-primary-600") %>
|
<%= label(f, :password, gettext("Password"), class: "title text-lg text-primary-600") %>
|
||||||
<%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %>
|
<%= 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"),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<div class="mx-auto pb-8 max-w-2xl flex flex-col justify-center items-center text-center space-y-4">
|
<div class="mx-auto pb-8 max-w-3xl flex flex-col justify-center items-center text-right space-y-4">
|
||||||
<h1 class="pb-4 title text-primary-600 text-xl">
|
<h1 class="pb-4 title text-primary-600 text-2xl text-center">
|
||||||
<%= gettext("Settings") %>
|
<%= gettext("Settings") %>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
@ -11,7 +11,7 @@
|
|||||||
action={Routes.user_settings_path(@conn, :update)}
|
action={Routes.user_settings_path(@conn, :update)}
|
||||||
class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
|
class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
|
||||||
>
|
>
|
||||||
<h3 class="title text-primary-600 text-lg col-span-3">
|
<h3 class="title text-primary-600 text-lg text-center col-span-3">
|
||||||
<%= dgettext("actions", "Change email") %>
|
<%= dgettext("actions", "Change email") %>
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
@ -19,14 +19,12 @@
|
|||||||
:if={@email_changeset.action && not @email_changeset.valid?()}
|
:if={@email_changeset.action && not @email_changeset.valid?()}
|
||||||
class="alert alert-danger col-span-3"
|
class="alert alert-danger col-span-3"
|
||||||
>
|
>
|
||||||
<p>
|
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
|
||||||
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<%= hidden_input(f, :action, name: "action", value: "update_email") %>
|
<%= hidden_input(f, :action, name: "action", value: "update_email") %>
|
||||||
|
|
||||||
<%= label(f, :email, class: "title text-lg text-primary-600") %>
|
<%= label(f, :email, gettext("Email"), class: "title text-lg text-primary-600") %>
|
||||||
<%= email_input(f, :email, required: true, class: "mx-2 my-1 input input-primary col-span-2") %>
|
<%= email_input(f, :email, required: true, class: "mx-2 my-1 input input-primary col-span-2") %>
|
||||||
<%= error_tag(f, :email, "col-span-3") %>
|
<%= error_tag(f, :email, "col-span-3") %>
|
||||||
|
|
||||||
@ -55,7 +53,7 @@
|
|||||||
action={Routes.user_settings_path(@conn, :update)}
|
action={Routes.user_settings_path(@conn, :update)}
|
||||||
class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
|
class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
|
||||||
>
|
>
|
||||||
<h3 class="title text-primary-600 text-lg col-span-3">
|
<h3 class="title text-primary-600 text-lg text-center col-span-3">
|
||||||
<%= dgettext("actions", "Change password") %>
|
<%= dgettext("actions", "Change password") %>
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
@ -63,9 +61,7 @@
|
|||||||
:if={@password_changeset.action && not @password_changeset.valid?()}
|
:if={@password_changeset.action && not @password_changeset.valid?()}
|
||||||
class="alert alert-danger col-span-3"
|
class="alert alert-danger col-span-3"
|
||||||
>
|
>
|
||||||
<p>
|
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
|
||||||
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<%= hidden_input(f, :action, name: "action", value: "update_password") %>
|
<%= hidden_input(f, :action, name: "action", value: "update_password") %>
|
||||||
@ -109,19 +105,17 @@
|
|||||||
:let={f}
|
:let={f}
|
||||||
for={@locale_changeset}
|
for={@locale_changeset}
|
||||||
action={Routes.user_settings_path(@conn, :update)}
|
action={Routes.user_settings_path(@conn, :update)}
|
||||||
class="flex flex-col space-y-4 justify-center items-center"
|
class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
|
||||||
>
|
>
|
||||||
<h3 class="title text-primary-600 text-lg">
|
<h3 class="title text-primary-600 text-lg text-center col-span-3">
|
||||||
<%= dgettext("actions", "Change Language") %>
|
<%= dgettext("actions", "Change Language") %>
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
:if={@locale_changeset.action && not @locale_changeset.valid?()}
|
:if={@locale_changeset.action && not @locale_changeset.valid?()}
|
||||||
class="alert alert-danger"
|
class="alert alert-danger col-span-3"
|
||||||
>
|
>
|
||||||
<p>
|
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
|
||||||
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<%= hidden_input(f, :action, name: "action", value: "update_locale") %>
|
<%= hidden_input(f, :action, name: "action", value: "update_locale") %>
|
||||||
@ -135,12 +129,12 @@
|
|||||||
{gettext("French"), "fr"},
|
{gettext("French"), "fr"},
|
||||||
{gettext("Spanish"), "es"}
|
{gettext("Spanish"), "es"}
|
||||||
],
|
],
|
||||||
class: "mx-2 my-1 min-w-md input input-primary"
|
class: "mx-2 my-1 min-w-md input input-primary col-span-3"
|
||||||
) %>
|
) %>
|
||||||
<%= error_tag(f, :locale) %>
|
<%= error_tag(f, :locale, "col-span-3") %>
|
||||||
|
|
||||||
<%= submit(dgettext("actions", "Change language"),
|
<%= submit(dgettext("actions", "Change language"),
|
||||||
class: "whitespace-nowrap mx-auto btn btn-primary",
|
class: "whitespace-nowrap mx-auto btn btn-primary col-span-3",
|
||||||
data: [qa: dgettext("prompts", "Are you sure you want to change your language?")]
|
data: [qa: dgettext("prompts", "Are you sure you want to change your language?")]
|
||||||
) %>
|
) %>
|
||||||
</.form>
|
</.form>
|
||||||
|
@ -3,5 +3,5 @@ defmodule CanneryWeb.EmailView do
|
|||||||
A view for email-related helper functions
|
A view for email-related helper functions
|
||||||
"""
|
"""
|
||||||
use CanneryWeb, :view
|
use CanneryWeb, :view
|
||||||
alias CanneryWeb.{Endpoint, HomeLive}
|
alias CanneryWeb.HomeLive
|
||||||
end
|
end
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
defmodule CanneryWeb.ErrorView do
|
defmodule CanneryWeb.ErrorView do
|
||||||
use CanneryWeb, :view
|
use CanneryWeb, :view
|
||||||
import CanneryWeb.Components.Topbar
|
import CanneryWeb.Components.Topbar
|
||||||
alias CanneryWeb.{Endpoint, HomeLive}
|
alias CanneryWeb.HomeLive
|
||||||
|
|
||||||
def template_not_found(error_path, _assigns) do
|
def template_not_found(error_path, _assigns) do
|
||||||
error_string =
|
error_string =
|
||||||
case error_path do
|
case error_path do
|
||||||
"404.html" -> dgettext("errors", "Not found")
|
"404.html" -> dgettext("errors", "Not found")
|
||||||
"401.html" -> dgettext("errors", "Unauthorized")
|
"401.html" -> dgettext("errors", "Unauthorized")
|
||||||
_other_template -> dgettext("errors", "Internal Server Error")
|
_other_path -> dgettext("errors", "Internal Server Error")
|
||||||
end
|
end
|
||||||
|
|
||||||
render("error.html", %{error_string: error_string})
|
render("error.html", %{error_string: error_string})
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
defmodule CanneryWeb.LayoutView do
|
defmodule CanneryWeb.LayoutView do
|
||||||
use CanneryWeb, :view
|
use CanneryWeb, :view
|
||||||
import CanneryWeb.Components.Topbar
|
import CanneryWeb.Components.Topbar
|
||||||
alias CanneryWeb.{Endpoint, HomeLive}
|
alias CanneryWeb.HomeLive
|
||||||
|
|
||||||
# Phoenix LiveDashboard is available only in development by default,
|
# Phoenix LiveDashboard is available only in development by default,
|
||||||
# so we instruct Elixir to not warn if the dashboard route is missing.
|
# so we instruct Elixir to not warn if the dashboard route is missing.
|
||||||
|
2
mix.exs
2
mix.exs
@ -4,7 +4,7 @@ defmodule Cannery.MixProject do
|
|||||||
def project do
|
def project do
|
||||||
[
|
[
|
||||||
app: :cannery,
|
app: :cannery,
|
||||||
version: "0.8.2",
|
version: "0.8.3",
|
||||||
elixir: "1.14.1",
|
elixir: "1.14.1",
|
||||||
elixirc_paths: elixirc_paths(Mix.env()),
|
elixirc_paths: elixirc_paths(Mix.env()),
|
||||||
compilers: Mix.compilers(),
|
compilers: Mix.compilers(),
|
||||||
|
@ -33,13 +33,13 @@ msgid "Add your first type!"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:45
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change email"
|
msgid "Change email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:59
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:57
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:101
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:97
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change password"
|
msgid "Change password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -49,14 +49,14 @@ msgstr ""
|
|||||||
msgid "Create Invite"
|
msgid "Create Invite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:165
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:159
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Delete User"
|
msgid "Delete User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:44
|
#: lib/cannery_web/templates/user_session/new.html.heex:42
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -66,13 +66,13 @@ msgstr ""
|
|||||||
msgid "Invite someone new!"
|
msgid "Invite someone new!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:135
|
#: lib/cannery_web/components/topbar.ex:137
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:47
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:30
|
#: lib/cannery_web/templates/user_session/new.html.heex:28
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -97,13 +97,13 @@ msgstr ""
|
|||||||
msgid "New Tag"
|
msgid "New Tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:127
|
#: lib/cannery_web/components/topbar.ex:129
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:44
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:42
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:41
|
#: lib/cannery_web/templates/user_session/new.html.heex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -115,7 +115,7 @@ msgid "Resend confirmation instructions"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reset password"
|
msgid "Reset password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -193,12 +193,12 @@ msgstr ""
|
|||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:115
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change Language"
|
msgid "Change Language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:142
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change language"
|
msgid "Change language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -235,7 +235,7 @@ msgstr ""
|
|||||||
msgid "Unstage from range"
|
msgid "Unstage from range"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:156
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:150
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Export Data as JSON"
|
msgid "Export Data as JSON"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -46,13 +46,13 @@ msgid "Add your first type!"
|
|||||||
msgstr "Fügen Sie ihre erste Munitionsart hinzu!"
|
msgstr "Fügen Sie ihre erste Munitionsart hinzu!"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:45
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change email"
|
msgid "Change email"
|
||||||
msgstr "Mailadresse ändern"
|
msgstr "Mailadresse ändern"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:59
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:57
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:101
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:97
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change password"
|
msgid "Change password"
|
||||||
msgstr "Passwort ändern"
|
msgstr "Passwort ändern"
|
||||||
@ -62,14 +62,14 @@ msgstr "Passwort ändern"
|
|||||||
msgid "Create Invite"
|
msgid "Create Invite"
|
||||||
msgstr "Einladung erstellen"
|
msgstr "Einladung erstellen"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:165
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:159
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Delete User"
|
msgid "Delete User"
|
||||||
msgstr "Benutzer löschen"
|
msgstr "Benutzer löschen"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:44
|
#: lib/cannery_web/templates/user_session/new.html.heex:42
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr "Passwort vergessen?"
|
msgstr "Passwort vergessen?"
|
||||||
@ -79,13 +79,13 @@ msgstr "Passwort vergessen?"
|
|||||||
msgid "Invite someone new!"
|
msgid "Invite someone new!"
|
||||||
msgstr "Laden Sie jemanden ein!"
|
msgstr "Laden Sie jemanden ein!"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:135
|
#: lib/cannery_web/components/topbar.ex:137
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:47
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:30
|
#: lib/cannery_web/templates/user_session/new.html.heex:28
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Einloggen"
|
msgstr "Einloggen"
|
||||||
@ -110,13 +110,13 @@ msgstr "Neuer Behälter"
|
|||||||
msgid "New Tag"
|
msgid "New Tag"
|
||||||
msgstr "Neuer Tag"
|
msgstr "Neuer Tag"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:127
|
#: lib/cannery_web/components/topbar.ex:129
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:44
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:42
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:41
|
#: lib/cannery_web/templates/user_session/new.html.heex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "Registrieren"
|
msgstr "Registrieren"
|
||||||
@ -128,7 +128,7 @@ msgid "Resend confirmation instructions"
|
|||||||
msgstr "Bestätigungsmail erneut senden"
|
msgstr "Bestätigungsmail erneut senden"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reset password"
|
msgid "Reset password"
|
||||||
msgstr "Passwort zurücksetzen"
|
msgstr "Passwort zurücksetzen"
|
||||||
@ -206,12 +206,12 @@ msgstr "Zuerst einen Behälter hinzufügen"
|
|||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Erstellen"
|
msgstr "Erstellen"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:115
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change Language"
|
msgid "Change Language"
|
||||||
msgstr "Sprache wechseln"
|
msgstr "Sprache wechseln"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:142
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change language"
|
msgid "Change language"
|
||||||
msgstr "Sprache wechseln"
|
msgstr "Sprache wechseln"
|
||||||
@ -248,7 +248,7 @@ msgstr ""
|
|||||||
msgid "Unstage from range"
|
msgid "Unstage from range"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:156
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:150
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Export Data as JSON"
|
msgid "Export Data as JSON"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -188,14 +188,14 @@ msgstr "Einladung deaktiviert"
|
|||||||
msgid "Invite Only"
|
msgid "Invite Only"
|
||||||
msgstr "Nur mit Einladung"
|
msgstr "Nur mit Einladung"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:90
|
#: lib/cannery_web/components/topbar.ex:89
|
||||||
#: lib/cannery_web/live/invite_live/index.ex:42
|
#: lib/cannery_web/live/invite_live/index.ex:42
|
||||||
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Invites"
|
msgid "Invites"
|
||||||
msgstr "Einladungen"
|
msgstr "Einladungen"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:25
|
#: lib/cannery_web/templates/user_session/new.html.heex:23
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Keep me logged in for 60 days"
|
msgid "Keep me logged in for 60 days"
|
||||||
msgstr "Für 60 Tage eingeloggt bleiben"
|
msgstr "Für 60 Tage eingeloggt bleiben"
|
||||||
@ -574,18 +574,20 @@ msgstr "Pulverart"
|
|||||||
msgid "UPC"
|
msgid "UPC"
|
||||||
msgstr "UPC"
|
msgstr "UPC"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:80
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:76
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Confirm new password"
|
msgid "Confirm new password"
|
||||||
msgstr "Passwort bestätigen"
|
msgstr "Passwort bestätigen"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:33
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:89
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:85
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Current password"
|
msgid "Current password"
|
||||||
msgstr "Derzeitiges Passwort"
|
msgstr "Derzeitiges Passwort"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:73
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:69
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New password"
|
msgid "New password"
|
||||||
msgstr "Neues Passwort"
|
msgstr "Neues Passwort"
|
||||||
@ -709,17 +711,17 @@ msgid "Added on:"
|
|||||||
msgstr "Hinzugefügt am:"
|
msgstr "Hinzugefügt am:"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:133
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:127
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Englisch"
|
msgstr "Englisch"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:135
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:129
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Französisch"
|
msgstr "Französisch"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:134
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:128
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Deutsch"
|
msgstr "Deutsch"
|
||||||
@ -1109,7 +1111,7 @@ msgstr ""
|
|||||||
msgid "Search shot records"
|
msgid "Search shot records"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:130
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1197,3 +1199,18 @@ msgstr "Verbleibende Nutzung:"
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Uses: %{uses_count}"
|
msgid "Uses: %{uses_count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:17
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:27
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:24
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:20
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
@ -14,25 +14,11 @@ msgstr ""
|
|||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 4.11.2\n"
|
"X-Generator: Weblate 4.11.2\n"
|
||||||
|
|
||||||
## This file is a PO Template file.
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:3
|
||||||
##
|
|
||||||
## "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/cannery/accounts/email.ex:30
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Confirm your %{name} account"
|
|
||||||
msgstr "Bestätigen Sie ihr %{name} Nutzerkonto"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:3
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:3
|
#: lib/cannery_web/templates/email/reset_password.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:3
|
#: lib/cannery_web/templates/email/update_email.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Hi %{email},"
|
msgid "Hi %{email},"
|
||||||
@ -53,69 +39,79 @@ msgstr ""
|
|||||||
"Falls Sie diese Änderung von %{url} nicht angefordert haben, ignorieren Sie "
|
"Falls Sie diese Änderung von %{url} nicht angefordert haben, ignorieren Sie "
|
||||||
"bitte diese Nachricht."
|
"bitte diese Nachricht."
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:37
|
#: lib/cannery_web/templates/email/update_email.html.heex:8
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset your %{name} password"
|
|
||||||
msgstr "Passwort für %{name} zurücksetzen"
|
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:44
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Update your %{name} email"
|
|
||||||
msgstr "Aktualisieren Sie %{name} Mailadresse"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}!"
|
|
||||||
msgstr "Willkommen %{name}!"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}%!"
|
|
||||||
msgstr "Willkommen %{name}%!"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:8
|
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can change your email by visiting the URL below:"
|
msgid "You can change your email by visiting the URL below:"
|
||||||
msgstr "Sie können Ihre Mailadresse unter folgender URL ändern:"
|
msgstr "Sie können Ihre Mailadresse unter folgender URL ändern:"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:14
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can confirm your account by visiting the URL below:"
|
msgid "You can confirm your account by visiting the URL below:"
|
||||||
msgstr "Sie können Ihr Nutzerkonto unter folgender URL bestätigen:"
|
msgstr "Sie können Ihr Nutzerkonto unter folgender URL bestätigen:"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:8
|
#: lib/cannery_web/templates/email/reset_password.html.heex:8
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can reset your password by visiting the URL below:"
|
msgid "You can reset your password by visiting the URL below:"
|
||||||
msgstr "Sie können ihr Passwort unter folgender URL zurücksetzen:"
|
msgstr "Sie können ihr Passwort unter folgender URL zurücksetzen:"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
|
## This file is a PO Template file.
|
||||||
#, elixir-autogen, elixir-format
|
##
|
||||||
msgid "If you didn't create an account at %{name}, please ignore this."
|
## "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/cannery/accounts/email.ex:30
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Confirm your Cannery account"
|
||||||
|
msgstr "Bestätigen Sie ihr %{name} Nutzerkonto"
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:22
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "If you didn't create an account at Cannery, please ignore this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Falls SIe dieses Nutzerkonto unter %{name}, nicht erstellt haben, ignorieren "
|
"Falls SIe dieses Nutzerkonto unter %{name}, nicht erstellt haben, ignorieren "
|
||||||
"Sie diese Nachricht bitte."
|
"Sie diese Nachricht bitte."
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:16
|
#: lib/cannery_web/templates/email/reset_password.html.heex:16
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:16
|
#: lib/cannery_web/templates/email/update_email.html.heex:16
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "If you didn't request this change from %{name}, please ignore this."
|
msgid "If you didn't request this change from Cannery, please ignore this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Falls Sie die Änderung von %{name} nicht angefragt haben, ignorieren Sie "
|
"Falls Sie die Änderung von %{name} nicht angefragt haben, ignorieren Sie "
|
||||||
"diese Nachricht bitte."
|
"diese Nachricht bitte."
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:37
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Reset your Cannery password"
|
||||||
|
msgstr "Passwort für %{name} zurücksetzen"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "This email was sent from %{name} at %{url}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery at %{url}, the self-hosted firearm tracker website."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Diese Nachricht wurde von %{name} unter %{url} gesandt, einem selbst-"
|
"Diese Nachricht wurde von %{name} unter %{url} gesandt, einem selbst-"
|
||||||
"gehosteten Schusswaffenmanager."
|
"gehosteten Schusswaffenmanager."
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.html.heex:13
|
#: lib/cannery_web/templates/layout/email.html.heex:13
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "This email was sent from %{name}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Diese Nachricht wurde von %{name} gesandt, einem selbst-gehosteten "
|
"Diese Nachricht wurde von %{name} gesandt, einem selbst-gehosteten "
|
||||||
"Schusswaffenmanager."
|
"Schusswaffenmanager."
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:44
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Update your Cannery email"
|
||||||
|
msgstr "Aktualisieren Sie %{name} Mailadresse"
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:9
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Welcome to Cannery"
|
||||||
|
msgstr "Willkommen %{name}!"
|
||||||
|
@ -70,10 +70,10 @@ msgid "Not found"
|
|||||||
msgstr "Nicht gefunden"
|
msgstr "Nicht gefunden"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:14
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:23
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:22
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:67
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:64
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:123
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:118
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Oops, something went wrong! Please check the errors below."
|
msgid "Oops, something went wrong! Please check the errors below."
|
||||||
msgstr "Oops, etwas ist schiefgegangen. Bitte beachten Sie den Fehler unten."
|
msgstr "Oops, etwas ist schiefgegangen. Bitte beachten Sie den Fehler unten."
|
||||||
|
@ -79,12 +79,12 @@ msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"
|
|||||||
msgid "Are you sure you want to delete this ammo?"
|
msgid "Are you sure you want to delete this ammo?"
|
||||||
msgstr "Sind Sie sicher, dass sie diese Munition löschen möchten?"
|
msgstr "Sind Sie sicher, dass sie diese Munition löschen möchten?"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:163
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:157
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete your account?"
|
msgid "Are you sure you want to delete your account?"
|
||||||
msgstr "Sind Sie sicher, dass sie Ihren Account löschen möchten?"
|
msgstr "Sind Sie sicher, dass sie Ihren Account löschen möchten?"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:106
|
#: lib/cannery_web/components/topbar.ex:104
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to log out?"
|
msgid "Are you sure you want to log out?"
|
||||||
msgstr "Wirklich ausloggen?"
|
msgstr "Wirklich ausloggen?"
|
||||||
@ -224,7 +224,7 @@ msgstr "Sie müssen"
|
|||||||
msgid "Creating..."
|
msgid "Creating..."
|
||||||
msgstr "Erstellen..."
|
msgstr "Erstellen..."
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:144
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:138
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to change your language?"
|
msgid "Are you sure you want to change your language?"
|
||||||
msgstr "Möchten Sie die Sprache wechseln?"
|
msgstr "Möchten Sie die Sprache wechseln?"
|
||||||
|
@ -184,14 +184,14 @@ msgstr ""
|
|||||||
msgid "Invite Only"
|
msgid "Invite Only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:90
|
#: lib/cannery_web/components/topbar.ex:89
|
||||||
#: lib/cannery_web/live/invite_live/index.ex:42
|
#: lib/cannery_web/live/invite_live/index.ex:42
|
||||||
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Invites"
|
msgid "Invites"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:25
|
#: lib/cannery_web/templates/user_session/new.html.heex:23
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Keep me logged in for 60 days"
|
msgid "Keep me logged in for 60 days"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -568,18 +568,20 @@ msgstr ""
|
|||||||
msgid "UPC"
|
msgid "UPC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:80
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:76
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Confirm new password"
|
msgid "Confirm new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:33
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:89
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:85
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Current password"
|
msgid "Current password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:73
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:69
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New password"
|
msgid "New password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -703,17 +705,17 @@ msgid "Added on:"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:133
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:127
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:135
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:129
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:134
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:128
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1103,7 +1105,7 @@ msgstr ""
|
|||||||
msgid "Search shot records"
|
msgid "Search shot records"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:130
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1180,3 +1182,18 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Uses: %{uses_count}"
|
msgid "Uses: %{uses_count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:17
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:27
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:24
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:20
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
@ -10,16 +10,11 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:30
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:3
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Confirm your %{name} account"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:3
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:3
|
#: lib/cannery_web/templates/email/reset_password.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:3
|
#: lib/cannery_web/templates/email/update_email.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Hi %{email},"
|
msgid "Hi %{email},"
|
||||||
@ -36,61 +31,62 @@ msgstr ""
|
|||||||
msgid "If you didn't request this change from %{url}, please ignore this."
|
msgid "If you didn't request this change from %{url}, please ignore this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:37
|
#: lib/cannery_web/templates/email/update_email.html.heex:8
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset your %{name} password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:44
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Update your %{name} email"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}%!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:8
|
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can change your email by visiting the URL below:"
|
msgid "You can change your email by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:14
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can confirm your account by visiting the URL below:"
|
msgid "You can confirm your account by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:8
|
#: lib/cannery_web/templates/email/reset_password.html.heex:8
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can reset your password by visiting the URL below:"
|
msgid "You can reset your password by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
|
#: lib/cannery/accounts/email.ex:30
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "If you didn't create an account at %{name}, please ignore this."
|
msgid "Confirm your Cannery account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:16
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:22
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:16
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "If you didn't request this change from %{name}, please ignore this."
|
msgid "If you didn't create an account at Cannery, please ignore this."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/reset_password.html.heex:16
|
||||||
|
#: lib/cannery_web/templates/email/update_email.html.heex:16
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "If you didn't request this change from Cannery, please ignore this."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:37
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Reset your Cannery password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "This email was sent from %{name} at %{url}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery at %{url}, the self-hosted firearm tracker website."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.html.heex:13
|
#: lib/cannery_web/templates/layout/email.html.heex:13
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "This email was sent from %{name}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:44
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Update your Cannery email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:9
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Welcome to Cannery"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -33,13 +33,13 @@ msgid "Add your first type!"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:45
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change email"
|
msgid "Change email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:59
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:57
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:101
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:97
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change password"
|
msgid "Change password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -49,14 +49,14 @@ msgstr ""
|
|||||||
msgid "Create Invite"
|
msgid "Create Invite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:165
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:159
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Delete User"
|
msgid "Delete User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:44
|
#: lib/cannery_web/templates/user_session/new.html.heex:42
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -66,13 +66,13 @@ msgstr ""
|
|||||||
msgid "Invite someone new!"
|
msgid "Invite someone new!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:135
|
#: lib/cannery_web/components/topbar.ex:137
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:47
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:30
|
#: lib/cannery_web/templates/user_session/new.html.heex:28
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -97,13 +97,13 @@ msgstr ""
|
|||||||
msgid "New Tag"
|
msgid "New Tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:127
|
#: lib/cannery_web/components/topbar.ex:129
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:44
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:42
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:41
|
#: lib/cannery_web/templates/user_session/new.html.heex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -115,7 +115,7 @@ msgid "Resend confirmation instructions"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reset password"
|
msgid "Reset password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -193,12 +193,12 @@ msgstr ""
|
|||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:115
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change Language"
|
msgid "Change Language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:142
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change language"
|
msgid "Change language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -235,7 +235,7 @@ msgstr ""
|
|||||||
msgid "Unstage from range"
|
msgid "Unstage from range"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:156
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:150
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Export Data as JSON"
|
msgid "Export Data as JSON"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -184,14 +184,14 @@ msgstr ""
|
|||||||
msgid "Invite Only"
|
msgid "Invite Only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:90
|
#: lib/cannery_web/components/topbar.ex:89
|
||||||
#: lib/cannery_web/live/invite_live/index.ex:42
|
#: lib/cannery_web/live/invite_live/index.ex:42
|
||||||
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Invites"
|
msgid "Invites"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:25
|
#: lib/cannery_web/templates/user_session/new.html.heex:23
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Keep me logged in for 60 days"
|
msgid "Keep me logged in for 60 days"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -568,18 +568,20 @@ msgstr ""
|
|||||||
msgid "UPC"
|
msgid "UPC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:80
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:76
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Confirm new password"
|
msgid "Confirm new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:33
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:89
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:85
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Current password"
|
msgid "Current password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:73
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:69
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New password"
|
msgid "New password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -703,17 +705,17 @@ msgid "Added on:"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:133
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:127
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:135
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:129
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:134
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:128
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1103,7 +1105,7 @@ msgstr ""
|
|||||||
msgid "Search shot records"
|
msgid "Search shot records"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:130
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1180,3 +1182,18 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Uses: %{uses_count}"
|
msgid "Uses: %{uses_count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:17
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:27
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:24
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:20
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
@ -10,16 +10,11 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Language: en\n"
|
"Language: en\n"
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:30
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:3
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Confirm your %{name} account"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:3
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:3
|
#: lib/cannery_web/templates/email/reset_password.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:3
|
#: lib/cannery_web/templates/email/update_email.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Hi %{email},"
|
msgid "Hi %{email},"
|
||||||
@ -36,61 +31,62 @@ msgstr ""
|
|||||||
msgid "If you didn't request this change from %{url}, please ignore this."
|
msgid "If you didn't request this change from %{url}, please ignore this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:37
|
#: lib/cannery_web/templates/email/update_email.html.heex:8
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset your %{name} password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:44
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Update your %{name} email"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}%!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:8
|
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can change your email by visiting the URL below:"
|
msgid "You can change your email by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:14
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can confirm your account by visiting the URL below:"
|
msgid "You can confirm your account by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:8
|
#: lib/cannery_web/templates/email/reset_password.html.heex:8
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can reset your password by visiting the URL below:"
|
msgid "You can reset your password by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
|
#: lib/cannery/accounts/email.ex:30
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "If you didn't create an account at %{name}, please ignore this."
|
msgid "Confirm your Cannery account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:16
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:22
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:16
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
#, elixir-autogen, elixir-format
|
msgid "If you didn't create an account at Cannery, please ignore this."
|
||||||
msgid "If you didn't request this change from %{name}, please ignore this."
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/reset_password.html.heex:16
|
||||||
|
#: lib/cannery_web/templates/email/update_email.html.heex:16
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "If you didn't request this change from Cannery, please ignore this."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:37
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Reset your Cannery password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "This email was sent from %{name} at %{url}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery at %{url}, the self-hosted firearm tracker website."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.html.heex:13
|
#: lib/cannery_web/templates/layout/email.html.heex:13
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "This email was sent from %{name}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:44
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Update your Cannery email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:9
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Welcome to Cannery"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -57,10 +57,10 @@ msgid "Not found"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:14
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:23
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:22
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:67
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:64
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:123
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:118
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Oops, something went wrong! Please check the errors below."
|
msgid "Oops, something went wrong! Please check the errors below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -64,12 +64,12 @@ msgstr ""
|
|||||||
msgid "Are you sure you want to delete this ammo?"
|
msgid "Are you sure you want to delete this ammo?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:163
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:157
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete your account?"
|
msgid "Are you sure you want to delete your account?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:106
|
#: lib/cannery_web/components/topbar.ex:104
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to log out?"
|
msgid "Are you sure you want to log out?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -203,7 +203,7 @@ msgstr ""
|
|||||||
msgid "Creating..."
|
msgid "Creating..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:144
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:138
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to change your language?"
|
msgid "Are you sure you want to change your language?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -57,10 +57,10 @@ msgid "Not found"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:14
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:23
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:22
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:67
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:64
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:123
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:118
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Oops, something went wrong! Please check the errors below."
|
msgid "Oops, something went wrong! Please check the errors below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -46,13 +46,13 @@ msgid "Add your first type!"
|
|||||||
msgstr "¡Añade tu primer tipo!"
|
msgstr "¡Añade tu primer tipo!"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:45
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change email"
|
msgid "Change email"
|
||||||
msgstr "Cambiar correo electrónico"
|
msgstr "Cambiar correo electrónico"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:59
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:57
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:101
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:97
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change password"
|
msgid "Change password"
|
||||||
msgstr "Cambiar contraseña"
|
msgstr "Cambiar contraseña"
|
||||||
@ -62,14 +62,14 @@ msgstr "Cambiar contraseña"
|
|||||||
msgid "Create Invite"
|
msgid "Create Invite"
|
||||||
msgstr "Crear Invitación"
|
msgstr "Crear Invitación"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:165
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:159
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Delete User"
|
msgid "Delete User"
|
||||||
msgstr "Eliminar cuenta de Usuario"
|
msgstr "Eliminar cuenta de Usuario"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:44
|
#: lib/cannery_web/templates/user_session/new.html.heex:42
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr "¿Has olvidado tu contraseña?"
|
msgstr "¿Has olvidado tu contraseña?"
|
||||||
@ -79,13 +79,13 @@ msgstr "¿Has olvidado tu contraseña?"
|
|||||||
msgid "Invite someone new!"
|
msgid "Invite someone new!"
|
||||||
msgstr "¡Invita a alguien nuevo!"
|
msgstr "¡Invita a alguien nuevo!"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:135
|
#: lib/cannery_web/components/topbar.ex:137
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:47
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:30
|
#: lib/cannery_web/templates/user_session/new.html.heex:28
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Entrar"
|
msgstr "Entrar"
|
||||||
@ -110,13 +110,13 @@ msgstr "Nuevo Contenedor"
|
|||||||
msgid "New Tag"
|
msgid "New Tag"
|
||||||
msgstr "Nueva Etiqueta"
|
msgstr "Nueva Etiqueta"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:127
|
#: lib/cannery_web/components/topbar.ex:129
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:44
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:42
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:41
|
#: lib/cannery_web/templates/user_session/new.html.heex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "Registrarse"
|
msgstr "Registrarse"
|
||||||
@ -128,7 +128,7 @@ msgid "Resend confirmation instructions"
|
|||||||
msgstr "Reenviar instrucciones de confirmación"
|
msgstr "Reenviar instrucciones de confirmación"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reset password"
|
msgid "Reset password"
|
||||||
msgstr "Resetear contraseña"
|
msgstr "Resetear contraseña"
|
||||||
@ -206,12 +206,12 @@ msgstr "añade primero un contenedor"
|
|||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Crear"
|
msgstr "Crear"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:115
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change Language"
|
msgid "Change Language"
|
||||||
msgstr "Cambiar Lenguaje"
|
msgstr "Cambiar Lenguaje"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:142
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change language"
|
msgid "Change language"
|
||||||
msgstr "Cambiar lenguaje"
|
msgstr "Cambiar lenguaje"
|
||||||
@ -248,7 +248,7 @@ msgstr "Preparar para el campo de tiro"
|
|||||||
msgid "Unstage from range"
|
msgid "Unstage from range"
|
||||||
msgstr "Desmontar del campo de tiro"
|
msgstr "Desmontar del campo de tiro"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:156
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:150
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Export Data as JSON"
|
msgid "Export Data as JSON"
|
||||||
msgstr "Exportar datos como JSON"
|
msgstr "Exportar datos como JSON"
|
||||||
|
@ -188,14 +188,14 @@ msgstr "Invitación Desactivada"
|
|||||||
msgid "Invite Only"
|
msgid "Invite Only"
|
||||||
msgstr "Solo Invitación"
|
msgstr "Solo Invitación"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:90
|
#: lib/cannery_web/components/topbar.ex:89
|
||||||
#: lib/cannery_web/live/invite_live/index.ex:42
|
#: lib/cannery_web/live/invite_live/index.ex:42
|
||||||
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Invites"
|
msgid "Invites"
|
||||||
msgstr "Invitaciones"
|
msgstr "Invitaciones"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:25
|
#: lib/cannery_web/templates/user_session/new.html.heex:23
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Keep me logged in for 60 days"
|
msgid "Keep me logged in for 60 days"
|
||||||
msgstr "Mantener registrado durante 60 días"
|
msgstr "Mantener registrado durante 60 días"
|
||||||
@ -575,18 +575,20 @@ msgstr "Tipo de polvora"
|
|||||||
msgid "UPC"
|
msgid "UPC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:80
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:76
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Confirm new password"
|
msgid "Confirm new password"
|
||||||
msgstr "Confirme contraseña nueva"
|
msgstr "Confirme contraseña nueva"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:33
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:89
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:85
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Current password"
|
msgid "Current password"
|
||||||
msgstr "Contraseña actual"
|
msgstr "Contraseña actual"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:73
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:69
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New password"
|
msgid "New password"
|
||||||
msgstr "Nueva contraseña"
|
msgstr "Nueva contraseña"
|
||||||
@ -710,17 +712,17 @@ msgid "Added on:"
|
|||||||
msgstr "Añadido en:"
|
msgstr "Añadido en:"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:133
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:127
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Inglés"
|
msgstr "Inglés"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:135
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:129
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francés"
|
msgstr "Francés"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:134
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:128
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Alemán"
|
msgstr "Alemán"
|
||||||
@ -1111,7 +1113,7 @@ msgstr ""
|
|||||||
msgid "Search shot records"
|
msgid "Search shot records"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:130
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1199,3 +1201,18 @@ msgstr "Usos Restantes:"
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Uses: %{uses_count}"
|
msgid "Uses: %{uses_count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:17
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:27
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:24
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:20
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
@ -14,25 +14,11 @@ msgstr ""
|
|||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 4.14.2\n"
|
"X-Generator: Weblate 4.14.2\n"
|
||||||
|
|
||||||
## This file is a PO Template file.
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:3
|
||||||
##
|
|
||||||
## "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/cannery/accounts/email.ex:30
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Confirm your %{name} account"
|
|
||||||
msgstr "Confirma el %{name} de la cuenta"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:3
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:3
|
#: lib/cannery_web/templates/email/reset_password.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:3
|
#: lib/cannery_web/templates/email/update_email.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Hi %{email},"
|
msgid "Hi %{email},"
|
||||||
@ -49,27 +35,7 @@ msgstr "Si no creó un usuario en %{url}, por favor, ignore este mensaje."
|
|||||||
msgid "If you didn't request this change from %{url}, please ignore this."
|
msgid "If you didn't request this change from %{url}, please ignore this."
|
||||||
msgstr "Si no pidió este cambio desde %{url}, por favor, ignore este mensaje."
|
msgstr "Si no pidió este cambio desde %{url}, por favor, ignore este mensaje."
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:37
|
#: lib/cannery_web/templates/email/update_email.html.heex:8
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset your %{name} password"
|
|
||||||
msgstr "Reseteé su contraseña en %{name}"
|
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:44
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Update your %{name} email"
|
|
||||||
msgstr "Actualice su correo en &{url}"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}!"
|
|
||||||
msgstr "¡Bienvenide a %{name}!"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}%!"
|
|
||||||
msgstr "¡Bienvenide a %{name}%!"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:8
|
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can change your email by visiting the URL below:"
|
msgid "You can change your email by visiting the URL below:"
|
||||||
@ -77,14 +43,14 @@ msgstr ""
|
|||||||
"Puede cambiar su correo electrónico visitando el enlace que se muestra a "
|
"Puede cambiar su correo electrónico visitando el enlace que se muestra a "
|
||||||
"continuación:"
|
"continuación:"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:14
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can confirm your account by visiting the URL below:"
|
msgid "You can confirm your account by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Puede confirmar su cuenta visitando el enlace que se muestra a continuación:"
|
"Puede confirmar su cuenta visitando el enlace que se muestra a continuación:"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:8
|
#: lib/cannery_web/templates/email/reset_password.html.heex:8
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can reset your password by visiting the URL below:"
|
msgid "You can reset your password by visiting the URL below:"
|
||||||
@ -92,29 +58,59 @@ msgstr ""
|
|||||||
"Puede reestablecer su contraseña visitando el enlace que se muestra a "
|
"Puede reestablecer su contraseña visitando el enlace que se muestra a "
|
||||||
"continuación:"
|
"continuación:"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
|
## This file is a PO Template file.
|
||||||
#, elixir-autogen, elixir-format
|
##
|
||||||
msgid "If you didn't create an account at %{name}, please ignore this."
|
## "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/cannery/accounts/email.ex:30
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Confirm your Cannery account"
|
||||||
|
msgstr "Confirma el %{name} de la cuenta"
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:22
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "If you didn't create an account at Cannery, please ignore this."
|
||||||
msgstr "Si no ha creado una cuenta en %{name}, por favor, ignore este mensaje."
|
msgstr "Si no ha creado una cuenta en %{name}, por favor, ignore este mensaje."
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:16
|
#: lib/cannery_web/templates/email/reset_password.html.heex:16
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:16
|
#: lib/cannery_web/templates/email/update_email.html.heex:16
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "If you didn't request this change from %{name}, please ignore this."
|
msgid "If you didn't request this change from Cannery, please ignore this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si no ha solicitado este cambio desde %{name}, por favor, ignore este "
|
"Si no ha solicitado este cambio desde %{name}, por favor, ignore este "
|
||||||
"mensaje."
|
"mensaje."
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:37
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Reset your Cannery password"
|
||||||
|
msgstr "Reseteé su contraseña en %{name}"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "This email was sent from %{name} at %{url}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery at %{url}, the self-hosted firearm tracker website."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Este correo se mandó por %{name} desde %{url}, la página de seguimiento de "
|
"Este correo se mandó por %{name} desde %{url}, la página de seguimiento de "
|
||||||
"armas autogestionada."
|
"armas autogestionada."
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.html.heex:13
|
#: lib/cannery_web/templates/layout/email.html.heex:13
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "This email was sent from %{name}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Este correo se mandó por %{name}, la página de seguimiento de armas "
|
"Este correo se mandó por %{name}, la página de seguimiento de armas "
|
||||||
"autogestionada."
|
"autogestionada."
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:44
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Update your Cannery email"
|
||||||
|
msgstr "Actualice su correo en &{url}"
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:9
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Welcome to Cannery"
|
||||||
|
msgstr "¡Bienvenide a %{name}!"
|
||||||
|
@ -70,10 +70,10 @@ msgid "Not found"
|
|||||||
msgstr "No se encontró"
|
msgstr "No se encontró"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:14
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:23
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:22
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:67
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:64
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:123
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:118
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Oops, something went wrong! Please check the errors below."
|
msgid "Oops, something went wrong! Please check the errors below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -79,12 +79,12 @@ msgstr "Está seguro que desea eliminar %{name}?"
|
|||||||
msgid "Are you sure you want to delete this ammo?"
|
msgid "Are you sure you want to delete this ammo?"
|
||||||
msgstr "Está seguro que desea eliminar esta munición?"
|
msgstr "Está seguro que desea eliminar esta munición?"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:163
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:157
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete your account?"
|
msgid "Are you sure you want to delete your account?"
|
||||||
msgstr "Está seguro que desea eliminar su cuenta?"
|
msgstr "Está seguro que desea eliminar su cuenta?"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:106
|
#: lib/cannery_web/components/topbar.ex:104
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to log out?"
|
msgid "Are you sure you want to log out?"
|
||||||
msgstr "Está seguro que desea cerrar sesión?"
|
msgstr "Está seguro que desea cerrar sesión?"
|
||||||
@ -223,7 +223,7 @@ msgstr "Necesitará hacerlo"
|
|||||||
msgid "Creating..."
|
msgid "Creating..."
|
||||||
msgstr "Creando..."
|
msgstr "Creando..."
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:144
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:138
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to change your language?"
|
msgid "Are you sure you want to change your language?"
|
||||||
msgstr "¿Está segure de que quiere cambiar el idioma?"
|
msgstr "¿Está segure de que quiere cambiar el idioma?"
|
||||||
|
@ -46,13 +46,13 @@ msgid "Add your first type!"
|
|||||||
msgstr "Ajoutez votre premier type !"
|
msgstr "Ajoutez votre premier type !"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:45
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change email"
|
msgid "Change email"
|
||||||
msgstr "Changer le mél"
|
msgstr "Changer le mél"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:59
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:57
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:101
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:97
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change password"
|
msgid "Change password"
|
||||||
msgstr "Changer le mot de passe"
|
msgstr "Changer le mot de passe"
|
||||||
@ -62,14 +62,14 @@ msgstr "Changer le mot de passe"
|
|||||||
msgid "Create Invite"
|
msgid "Create Invite"
|
||||||
msgstr "Créer une invitation"
|
msgstr "Créer une invitation"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:165
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:159
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Delete User"
|
msgid "Delete User"
|
||||||
msgstr "Supprimer utilisateur"
|
msgstr "Supprimer utilisateur"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:44
|
#: lib/cannery_web/templates/user_session/new.html.heex:42
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr "Mot de passe oublié ?"
|
msgstr "Mot de passe oublié ?"
|
||||||
@ -79,13 +79,13 @@ msgstr "Mot de passe oublié ?"
|
|||||||
msgid "Invite someone new!"
|
msgid "Invite someone new!"
|
||||||
msgstr "Invitez une nouvelle personne !"
|
msgstr "Invitez une nouvelle personne !"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:135
|
#: lib/cannery_web/components/topbar.ex:137
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:47
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:30
|
#: lib/cannery_web/templates/user_session/new.html.heex:28
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Se connecter"
|
msgstr "Se connecter"
|
||||||
@ -110,13 +110,13 @@ msgstr "Nouveau conteneur"
|
|||||||
msgid "New Tag"
|
msgid "New Tag"
|
||||||
msgstr "Nouveau tag"
|
msgstr "Nouveau tag"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:127
|
#: lib/cannery_web/components/topbar.ex:129
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:44
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:42
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:41
|
#: lib/cannery_web/templates/user_session/new.html.heex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "S’enregistrer"
|
msgstr "S’enregistrer"
|
||||||
@ -128,7 +128,7 @@ msgid "Resend confirmation instructions"
|
|||||||
msgstr "Renvoyer les instructions de confirmation"
|
msgstr "Renvoyer les instructions de confirmation"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reset password"
|
msgid "Reset password"
|
||||||
msgstr "Réinitialisé le mot de passe"
|
msgstr "Réinitialisé le mot de passe"
|
||||||
@ -206,12 +206,12 @@ msgstr "ajouter un conteneur en premier"
|
|||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Créer"
|
msgstr "Créer"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:115
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change Language"
|
msgid "Change Language"
|
||||||
msgstr "Changer la langue"
|
msgstr "Changer la langue"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:142
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change language"
|
msgid "Change language"
|
||||||
msgstr "Changer la langue"
|
msgstr "Changer la langue"
|
||||||
@ -248,7 +248,7 @@ msgstr ""
|
|||||||
msgid "Unstage from range"
|
msgid "Unstage from range"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:156
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:150
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Export Data as JSON"
|
msgid "Export Data as JSON"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -188,14 +188,14 @@ msgstr "Invitation désactivée"
|
|||||||
msgid "Invite Only"
|
msgid "Invite Only"
|
||||||
msgstr "Uniquement sur invitation"
|
msgstr "Uniquement sur invitation"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:90
|
#: lib/cannery_web/components/topbar.ex:89
|
||||||
#: lib/cannery_web/live/invite_live/index.ex:42
|
#: lib/cannery_web/live/invite_live/index.ex:42
|
||||||
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Invites"
|
msgid "Invites"
|
||||||
msgstr "Invitations"
|
msgstr "Invitations"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:25
|
#: lib/cannery_web/templates/user_session/new.html.heex:23
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Keep me logged in for 60 days"
|
msgid "Keep me logged in for 60 days"
|
||||||
msgstr "Me garder authentifié durant 60 jours"
|
msgstr "Me garder authentifié durant 60 jours"
|
||||||
@ -576,18 +576,20 @@ msgstr "Type de poudre"
|
|||||||
msgid "UPC"
|
msgid "UPC"
|
||||||
msgstr "UPC"
|
msgstr "UPC"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:80
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:76
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Confirm new password"
|
msgid "Confirm new password"
|
||||||
msgstr "Confirmez le nouveau mot de passe"
|
msgstr "Confirmez le nouveau mot de passe"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:33
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:89
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:85
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Current password"
|
msgid "Current password"
|
||||||
msgstr "Mot de passe actuel"
|
msgstr "Mot de passe actuel"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:73
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:69
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New password"
|
msgid "New password"
|
||||||
msgstr "Nouveau mot de passe"
|
msgstr "Nouveau mot de passe"
|
||||||
@ -711,17 +713,17 @@ msgid "Added on:"
|
|||||||
msgstr "Ajouté le :"
|
msgstr "Ajouté le :"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:133
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:127
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Anglais"
|
msgstr "Anglais"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:135
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:129
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Français"
|
msgstr "Français"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:134
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:128
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Allemand"
|
msgstr "Allemand"
|
||||||
@ -1112,7 +1114,7 @@ msgstr ""
|
|||||||
msgid "Search shot records"
|
msgid "Search shot records"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:130
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1200,3 +1202,18 @@ msgstr "Utilisations restantes :"
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Uses: %{uses_count}"
|
msgid "Uses: %{uses_count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:17
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:27
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:24
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:20
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
@ -14,25 +14,11 @@ msgstr ""
|
|||||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||||
"X-Generator: Weblate 4.11.2\n"
|
"X-Generator: Weblate 4.11.2\n"
|
||||||
|
|
||||||
## This file is a PO Template file.
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:3
|
||||||
##
|
|
||||||
## "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/cannery/accounts/email.ex:30
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Confirm your %{name} account"
|
|
||||||
msgstr "Confirmer votre compte %{name}"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:3
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:3
|
#: lib/cannery_web/templates/email/reset_password.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:3
|
#: lib/cannery_web/templates/email/update_email.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Hi %{email},"
|
msgid "Hi %{email},"
|
||||||
@ -51,66 +37,76 @@ msgstr ""
|
|||||||
"Si vous n’avez pas demandé ce changement depuis %{url}, veuillez ignorer "
|
"Si vous n’avez pas demandé ce changement depuis %{url}, veuillez ignorer "
|
||||||
"ceci."
|
"ceci."
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:37
|
#: lib/cannery_web/templates/email/update_email.html.heex:8
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset your %{name} password"
|
|
||||||
msgstr "Réinitialiser votre mot de passe %{name}"
|
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:44
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Update your %{name} email"
|
|
||||||
msgstr "Mettre à jour votre mél %{name}"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}!"
|
|
||||||
msgstr "Bienvenue à %{name} !"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}%!"
|
|
||||||
msgstr "Bienvenue à %{name}% !"
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:8
|
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can change your email by visiting the URL below:"
|
msgid "You can change your email by visiting the URL below:"
|
||||||
msgstr "Vous pouvez changer votre mél en consultant l’URL ci-dessous :"
|
msgstr "Vous pouvez changer votre mél en consultant l’URL ci-dessous :"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:14
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can confirm your account by visiting the URL below:"
|
msgid "You can confirm your account by visiting the URL below:"
|
||||||
msgstr "Vous pouvez confirmer votre compte en consultant l’URL ci-dessous :"
|
msgstr "Vous pouvez confirmer votre compte en consultant l’URL ci-dessous :"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:8
|
#: lib/cannery_web/templates/email/reset_password.html.heex:8
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can reset your password by visiting the URL below:"
|
msgid "You can reset your password by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous pouvez réinitialiser votre mot de passe en visitant l’URL ci-dessous :"
|
"Vous pouvez réinitialiser votre mot de passe en visitant l’URL ci-dessous :"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
|
## This file is a PO Template file.
|
||||||
#, elixir-autogen, elixir-format
|
##
|
||||||
msgid "If you didn't create an account at %{name}, please ignore this."
|
## "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/cannery/accounts/email.ex:30
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Confirm your Cannery account"
|
||||||
|
msgstr "Confirmer votre compte %{name}"
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:22
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "If you didn't create an account at Cannery, please ignore this."
|
||||||
msgstr "Si vous n’avez pas créé de compte à %{name}, veuillez ignorer ceci."
|
msgstr "Si vous n’avez pas créé de compte à %{name}, veuillez ignorer ceci."
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:16
|
#: lib/cannery_web/templates/email/reset_password.html.heex:16
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:16
|
#: lib/cannery_web/templates/email/update_email.html.heex:16
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "If you didn't request this change from %{name}, please ignore this."
|
msgid "If you didn't request this change from Cannery, please ignore this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si vous n’avez pas demandé ce changement depuis %{name}, veuillez ignorer "
|
"Si vous n’avez pas demandé ce changement depuis %{name}, veuillez ignorer "
|
||||||
"ceci."
|
"ceci."
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:37
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Reset your Cannery password"
|
||||||
|
msgstr "Réinitialiser votre mot de passe %{name}"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "This email was sent from %{name} at %{url}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery at %{url}, the self-hosted firearm tracker website."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ce mél a été envoyé depuis %{name} à %{url}, le site web de suivi d’arme à "
|
"Ce mél a été envoyé depuis %{name} à %{url}, le site web de suivi d’arme à "
|
||||||
"feux."
|
"feux."
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.html.heex:13
|
#: lib/cannery_web/templates/layout/email.html.heex:13
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "This email was sent from %{name}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
|
||||||
msgstr "Ce mél a été envoyé depuis %{name}, le site web de suivi d’arme à feu."
|
msgstr "Ce mél a été envoyé depuis %{name}, le site web de suivi d’arme à feu."
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:44
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Update your Cannery email"
|
||||||
|
msgstr "Mettre à jour votre mél %{name}"
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:9
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Welcome to Cannery"
|
||||||
|
msgstr "Bienvenue à %{name} !"
|
||||||
|
@ -70,10 +70,10 @@ msgid "Not found"
|
|||||||
msgstr "Pas trouvé"
|
msgstr "Pas trouvé"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:14
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:23
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:22
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:67
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:64
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:123
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:118
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Oops, something went wrong! Please check the errors below."
|
msgid "Oops, something went wrong! Please check the errors below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -80,12 +80,12 @@ msgstr "Êtes-vous certain·e de supprimer %{name} ?"
|
|||||||
msgid "Are you sure you want to delete this ammo?"
|
msgid "Are you sure you want to delete this ammo?"
|
||||||
msgstr "Êtes-vous certain·e de supprimer cette munition ?"
|
msgstr "Êtes-vous certain·e de supprimer cette munition ?"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:163
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:157
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete your account?"
|
msgid "Are you sure you want to delete your account?"
|
||||||
msgstr "Êtes-vous certain·e de supprimer votre compte ?"
|
msgstr "Êtes-vous certain·e de supprimer votre compte ?"
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:106
|
#: lib/cannery_web/components/topbar.ex:104
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to log out?"
|
msgid "Are you sure you want to log out?"
|
||||||
msgstr "Êtes-vous certain·e de vouloir vous déconnecter ?"
|
msgstr "Êtes-vous certain·e de vouloir vous déconnecter ?"
|
||||||
@ -225,7 +225,7 @@ msgstr "Vous aurez besoin de"
|
|||||||
msgid "Creating..."
|
msgid "Creating..."
|
||||||
msgstr "Création en cours…"
|
msgstr "Création en cours…"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:144
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:138
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to change your language?"
|
msgid "Are you sure you want to change your language?"
|
||||||
msgstr "Êtes-vous certain·e de vouloir changer votre langue ?"
|
msgstr "Êtes-vous certain·e de vouloir changer votre langue ?"
|
||||||
|
@ -44,13 +44,13 @@ msgid "Add your first type!"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:45
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change email"
|
msgid "Change email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:59
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:57
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:101
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:97
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change password"
|
msgid "Change password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -60,14 +60,14 @@ msgstr ""
|
|||||||
msgid "Create Invite"
|
msgid "Create Invite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:165
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:159
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Delete User"
|
msgid "Delete User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
#: lib/cannery_web/templates/user_registration/new.html.heex:47
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:44
|
#: lib/cannery_web/templates/user_session/new.html.heex:42
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -77,13 +77,13 @@ msgstr ""
|
|||||||
msgid "Invite someone new!"
|
msgid "Invite someone new!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:135
|
#: lib/cannery_web/components/topbar.ex:137
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
#: lib/cannery_web/templates/user_registration/new.html.heex:44
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:47
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
#: lib/cannery_web/templates/user_session/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:30
|
#: lib/cannery_web/templates/user_session/new.html.heex:28
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -108,13 +108,13 @@ msgstr ""
|
|||||||
msgid "New Tag"
|
msgid "New Tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:127
|
#: lib/cannery_web/components/topbar.ex:129
|
||||||
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
#: lib/cannery_web/templates/user_registration/new.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
#: lib/cannery_web/templates/user_registration/new.html.heex:37
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:44
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:42
|
||||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:28
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:41
|
#: lib/cannery_web/templates/user_session/new.html.heex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -126,7 +126,7 @@ msgid "Resend confirmation instructions"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:31
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reset password"
|
msgid "Reset password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -204,12 +204,12 @@ msgstr ""
|
|||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:115
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change Language"
|
msgid "Change Language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:142
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change language"
|
msgid "Change language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -246,7 +246,7 @@ msgstr ""
|
|||||||
msgid "Unstage from range"
|
msgid "Unstage from range"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:156
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:150
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Export Data as JSON"
|
msgid "Export Data as JSON"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -186,14 +186,14 @@ msgstr ""
|
|||||||
msgid "Invite Only"
|
msgid "Invite Only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:90
|
#: lib/cannery_web/components/topbar.ex:89
|
||||||
#: lib/cannery_web/live/invite_live/index.ex:42
|
#: lib/cannery_web/live/invite_live/index.ex:42
|
||||||
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
#: lib/cannery_web/live/invite_live/index.html.heex:3
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Invites"
|
msgid "Invites"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_session/new.html.heex:25
|
#: lib/cannery_web/templates/user_session/new.html.heex:23
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Keep me logged in for 60 days"
|
msgid "Keep me logged in for 60 days"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -570,18 +570,20 @@ msgstr ""
|
|||||||
msgid "UPC"
|
msgid "UPC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:80
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:76
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Confirm new password"
|
msgid "Confirm new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:33
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:31
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:89
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:85
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Current password"
|
msgid "Current password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:73
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:69
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New password"
|
msgid "New password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -705,17 +707,17 @@ msgid "Added on:"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
#: lib/cannery_web/templates/user_registration/new.html.heex:32
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:133
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:127
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:135
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:129
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:134
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:128
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1105,7 +1107,7 @@ msgstr ""
|
|||||||
msgid "Search shot records"
|
msgid "Search shot records"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:130
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1191,3 +1193,18 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Uses: %{uses_count}"
|
msgid "Uses: %{uses_count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_confirmation/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:20
|
||||||
|
#: lib/cannery_web/templates/user_reset_password/new.html.heex:12
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:17
|
||||||
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:27
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/user_registration/new.html.heex:24
|
||||||
|
#: lib/cannery_web/templates/user_session/new.html.heex:20
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
@ -12,25 +12,11 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Translate Toolkit 3.7.3\n"
|
"X-Generator: Translate Toolkit 3.7.3\n"
|
||||||
|
|
||||||
## This file is a PO Template file.
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:3
|
||||||
##
|
|
||||||
## "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/cannery/accounts/email.ex:30
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Confirm your %{name} account"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:3
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:3
|
#: lib/cannery_web/templates/email/reset_password.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:3
|
#: lib/cannery_web/templates/email/update_email.html.heex:3
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Hi %{email},"
|
msgid "Hi %{email},"
|
||||||
@ -47,61 +33,71 @@ msgstr ""
|
|||||||
msgid "If you didn't request this change from %{url}, please ignore this."
|
msgid "If you didn't request this change from %{url}, please ignore this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:37
|
#: lib/cannery_web/templates/email/update_email.html.heex:8
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Reset your %{name} password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery/accounts/email.ex:44
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Update your %{name} email"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Welcome to %{name}%!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:8
|
|
||||||
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can change your email by visiting the URL below:"
|
msgid "You can change your email by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:14
|
||||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can confirm your account by visiting the URL below:"
|
msgid "You can confirm your account by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:8
|
#: lib/cannery_web/templates/email/reset_password.html.heex:8
|
||||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "You can reset your password by visiting the URL below:"
|
msgid "You can reset your password by visiting the URL below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
|
## This file is a PO Template file.
|
||||||
#, elixir-autogen, elixir-format
|
##
|
||||||
msgid "If you didn't create an account at %{name}, please ignore this."
|
## "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/cannery/accounts/email.ex:30
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Confirm your Cannery account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/email/reset_password.html.eex:16
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:22
|
||||||
#: lib/cannery_web/templates/email/update_email.html.eex:16
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
#, elixir-autogen, elixir-format
|
msgid "If you didn't create an account at Cannery, please ignore this."
|
||||||
msgid "If you didn't request this change from %{name}, please ignore this."
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/reset_password.html.heex:16
|
||||||
|
#: lib/cannery_web/templates/email/update_email.html.heex:16
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "If you didn't request this change from Cannery, please ignore this."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:37
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Reset your Cannery password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
#: lib/cannery_web/templates/layout/email.txt.eex:9
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "This email was sent from %{name} at %{url}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery at %{url}, the self-hosted firearm tracker website."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/layout/email.html.heex:13
|
#: lib/cannery_web/templates/layout/email.html.heex:13
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "This email was sent from %{name}, the self-hosted firearm tracker website."
|
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery/accounts/email.ex:44
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Update your Cannery email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.html.heex:9
|
||||||
|
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Welcome to Cannery"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -71,10 +71,10 @@ msgid "Not found"
|
|||||||
msgstr "Ní feidir é a fáil"
|
msgstr "Ní feidir é a fáil"
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
#: lib/cannery_web/templates/user_registration/new.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:14
|
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:13
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:23
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:22
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:67
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:64
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:123
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:118
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Oops, something went wrong! Please check the errors below."
|
msgid "Oops, something went wrong! Please check the errors below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -75,12 +75,12 @@ msgstr ""
|
|||||||
msgid "Are you sure you want to delete this ammo?"
|
msgid "Are you sure you want to delete this ammo?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:163
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:157
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete your account?"
|
msgid "Are you sure you want to delete your account?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:106
|
#: lib/cannery_web/components/topbar.ex:104
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to log out?"
|
msgid "Are you sure you want to log out?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -214,7 +214,7 @@ msgstr ""
|
|||||||
msgid "Creating..."
|
msgid "Creating..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:144
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:138
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to change your language?"
|
msgid "Are you sure you want to change your language?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -64,12 +64,12 @@ msgstr ""
|
|||||||
msgid "Are you sure you want to delete this ammo?"
|
msgid "Are you sure you want to delete this ammo?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:163
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:157
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to delete your account?"
|
msgid "Are you sure you want to delete your account?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/components/topbar.ex:106
|
#: lib/cannery_web/components/topbar.ex:104
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to log out?"
|
msgid "Are you sure you want to log out?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -203,7 +203,7 @@ msgstr ""
|
|||||||
msgid "Creating..."
|
msgid "Creating..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:144
|
#: lib/cannery_web/templates/user_settings/edit.html.heex:138
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure you want to change your language?"
|
msgid "Are you sure you want to change your language?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -10,8 +10,6 @@ defmodule Cannery.AccountsTest do
|
|||||||
|
|
||||||
@moduletag :accounts_test
|
@moduletag :accounts_test
|
||||||
|
|
||||||
doctest Accounts, import: true
|
|
||||||
|
|
||||||
describe "get_user_by_email/1" do
|
describe "get_user_by_email/1" do
|
||||||
test "does not return the user if the email does not exist" do
|
test "does not return the user if the email does not exist" do
|
||||||
refute Accounts.get_user_by_email("unknown@example.com")
|
refute Accounts.get_user_by_email("unknown@example.com")
|
||||||
|
@ -116,7 +116,7 @@ defmodule CanneryWeb.UserAuthTest do
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "does not authenticate if data is missing", %{conn: conn, current_user: current_user} do
|
test "does not authenticate if data is missing", %{conn: conn, current_user: current_user} do
|
||||||
_token = Accounts.generate_user_session_token(current_user)
|
_session_token = Accounts.generate_user_session_token(current_user)
|
||||||
conn = UserAuth.fetch_current_user(conn, [])
|
conn = UserAuth.fetch_current_user(conn, [])
|
||||||
refute get_session(conn, :user_token)
|
refute get_session(conn, :user_token)
|
||||||
refute conn.assigns.current_user
|
refute conn.assigns.current_user
|
||||||
|
Loading…
Reference in New Issue
Block a user