112 Commits

Author SHA1 Message Date
f4c7f22460 fix error message in ga locale
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-17 21:10:34 -04:00
a01d97e360 use better domain for gettexts
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-17 21:00:24 -04:00
a53b352cf7 Translated using Weblate (Irish)
All checks were successful
continuous-integration/drone/push Build is passing
Currently translated at 100.0% (14 of 14 strings)

Translation: cannery/emails
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/emails/ga/
2023-03-18 00:52:59 +00:00
ce07cc2569 use live navigation to update state
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-16 17:53:49 -04:00
3acecb9a93 remove extra @impl true
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-16 17:41:25 -04:00
ab8561fcf0 use component macros for live_helper components
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-15 00:48:07 -04:00
8163b906a2 remove data-qa 2023-03-15 00:47:15 -04:00
b29a5cce7b bump version
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-10 16:58:49 -05:00
9205a04ac5 tweak invite and settings pages
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-26 18:21:14 -05:00
632a9e1379 remove extraneous aliases
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-26 14:22:54 -05:00
92cc49630d merge base project into cannery
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-26 00:40:55 -05:00
a778f5a61f rename to cannery 2023-02-25 16:02:08 -05:00
07ff796553 fix more gettexts
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-25 00:59:05 -05:00
07b31fcc86 remove doctests 2023-02-25 00:59:05 -05:00
bc034c0361 remove doctests 2023-02-25 00:58:33 -05:00
eb9280fa7e fix missing gettexts 2023-02-25 00:39:02 -05:00
ad1e44fd42 improve user settings 2023-02-14 01:06:50 -05:00
4e9f66f006 bump version 2023-02-14 01:06:00 -05:00
81350f9898 improve user settings page 2023-02-14 00:06:43 -05:00
9c4a32896f improve logger
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-07 00:18:16 -05:00
56dae6cdfe improve logger 2023-02-07 00:14:20 -05:00
8ef3bd65a3 remove search from topbar 2023-02-07 00:06:25 -05:00
c8cadd6246 remove phoenix logo 2023-02-07 00:03:10 -05:00
3f143262d4 improve ci
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-05 10:37:05 -05:00
ebe09bcf84 improve ci 2023-02-05 10:24:47 -05:00
fd0b2c455a fix tests 2023-02-04 21:50:43 -05:00
f1139d0ec4 improve oban logging 2023-02-04 20:47:47 -05:00
cd6bb6fbc3 fix padding on chrome 2023-02-04 20:40:46 -05:00
5c05f3b6fe use credo style 2023-02-04 17:32:40 -05:00
30d3f76fe1 record invites 2023-02-04 16:11:58 -05:00
ed8c20e967 improve invites 2023-02-04 15:05:00 -05:00
7b60938a75 improve templates 2023-02-04 13:01:11 -05:00
f19d024d8a fix bug with public registration being disabled 2023-02-04 11:35:32 -05:00
1fbed50b0f add crypto to extra applications 2023-02-01 22:39:38 -05:00
737484c36e add accounts doctests 2023-01-29 15:24:14 -05:00
6dbadc58ae fix runtime config 2023-01-26 19:55:59 -05:00
f155a43ee8 add qr code for invite link 2023-01-26 00:46:21 -05:00
bbaa1dfd6b update to liveview 0.18 2023-01-26 00:31:13 -05:00
2c2b9fefc9 use list for classes 2023-01-25 23:13:18 -05:00
bafc824a32 add subpixel antialiasing 2023-01-25 22:15:18 -05:00
8c2f7e0509 fix padding at bottom of page in chrome 2023-01-25 22:14:17 -05:00
22abc7a8d0 improve locale 2023-01-25 21:50:14 -05:00
5a685ac00e use topbar through npm 2023-01-25 21:18:00 -05:00
a5c12b3e17 fix webpack 2023-01-25 21:14:55 -05:00
27af5acf8b minimize disconnection modal 2023-01-25 21:00:34 -05:00
469428c007 add topbar.js on form submit and page navigate 2023-01-25 20:31:36 -05:00
1cd28e43b8 update elixir and npm versions 2023-01-22 23:20:02 -05:00
695002c9d9 don't override core aliases 2023-01-22 22:41:42 -05:00
dde60d71d1 update gettext 2023-01-22 22:37:49 -05:00
91794ddc55 upgrade dependencies 2023-01-22 22:36:20 -05:00
1e3cec95fe update drone config 2023-01-07 21:00:15 -05:00
f0a8c515f9 update deps 2023-01-07 21:00:15 -05:00
e99775eef2 fix gettext merge command 2023-01-07 21:00:15 -05:00
6760f83ca0 add gettext changes 2023-01-07 21:00:15 -05:00
10877bb754 rename page path to home path 2023-01-07 21:00:15 -05:00
38a581b639 add registered on date to user card 2023-01-07 21:00:15 -05:00
9408705430 update deps 2023-01-07 21:00:14 -05:00
302aa7eeda add locale to user settings 2023-01-07 21:00:14 -05:00
fd4fdcc36b add table component 2023-01-07 21:00:14 -05:00
3cb723b9e4 update build settings 2023-01-07 21:00:14 -05:00
1f92c452d1 fix tests 2023-01-07 21:00:14 -05:00
c10cff63ea add invites route 2023-01-07 21:00:14 -05:00
70faed71d0 style disconnection and loading screens 2023-01-07 21:00:14 -05:00
b5c46c09ec fix oban 2023-01-07 21:00:14 -05:00
7745765fc0 update npm 2023-01-07 21:00:14 -05:00
e16fbba810 gettext page_live 2023-01-07 21:00:14 -05:00
e35bdf101b update components 2023-01-07 21:00:14 -05:00
aa314e5ca1 update main routes 2023-01-07 21:00:14 -05:00
616de3c117 update tests 2023-01-07 21:00:14 -05:00
74bcec6cfe update controllers and auth 2023-01-07 21:00:14 -05:00
41090c46d0 add invites 2023-01-07 21:00:14 -05:00
c3f5744ad6 fix layout 2023-01-07 21:00:14 -05:00
95a339fe02 add random script 2023-01-07 21:00:14 -05:00
1e3b027367 fix docker files 2023-01-07 21:00:14 -05:00
dd46e1795f add credo 2023-01-07 21:00:14 -05:00
9e517e6477 add emails 2023-01-07 21:00:14 -05:00
34118299e9 add exdoc 2022-02-25 21:13:50 -05:00
97a9b6d51a prevent unconfirmed users from logging in 2022-02-16 22:16:19 -05:00
059004ba78 mix format 2022-02-16 22:15:47 -05:00
5d02ed6369 update deps 2022-02-16 22:15:16 -05:00
ec6acdbb5d update swoosh 2022-02-15 19:12:35 -05:00
33d82a902d add exdoc configs 2022-02-15 18:57:06 -05:00
fc5b03d680 enable live dashboard os monitoring 2022-02-15 18:57:01 -05:00
c918dbe4bf improve changeset errors 2022-02-15 18:22:58 -05:00
23b60e032d add datetime helper 2022-02-15 02:50:36 -05:00
7283932d85 use topbar component 2022-02-13 21:28:20 -05:00
8ff1fd0276 add gettext step to docker file 2022-02-13 15:50:48 -05:00
4ef09f5279 heex templates 2022-02-12 23:26:29 -05:00
9734be4966 add oban 2022-02-12 23:24:11 -05:00
485965d9c9 npm audit 2022-02-12 23:23:09 -05:00
e9cdb0f717 add dockerhub build and publish step 2022-02-12 02:38:29 -05:00
1c07449b54 add alpine.js 2022-02-12 02:37:10 -05:00
b64e85f65c add drone ci 2022-01-23 00:27:43 -05:00
9387756109 mix format 2022-01-23 00:00:53 -05:00
f1f3082368 add MaintainAttrs hook 2022-01-22 23:59:58 -05:00
50a8a79596 update readme and docker-compose.yml 2022-01-22 23:44:47 -05:00
67b48e1a3f format with standard js 2022-01-22 22:56:53 -05:00
67c30d7f88 add standard js 2022-01-22 22:56:38 -05:00
728728a5a4 fix tests 2022-01-22 20:44:38 -05:00
a64d92a6cf add dialyzer and credo to tests 2022-01-22 20:44:34 -05:00
6227d64072 set generator settings 2022-01-22 20:13:53 -05:00
46eed25a94 only start automigrator in prod env 2022-01-22 20:12:32 -05:00
3674eeaf5a fix tests 2022-01-22 15:24:04 -05:00
f0676a2433 add mix format to tests 2022-01-22 15:24:04 -05:00
a72a4b0cbe add heex_formatter 2022-01-22 15:24:04 -05:00
a2dea04668 update to 1.6 2022-01-22 14:25:37 -05:00
3dc255b7c2 add touchless docker deploys 2021-09-04 16:19:23 -04:00
bde1cff7a4 add font awesome 2021-09-02 23:32:53 -04:00
66cc11e9eb add liveview helpers 2021-09-02 23:32:53 -04:00
81a250206e update npm 2021-09-02 23:32:52 -04:00
6d5f7f68df style registration pages 2021-09-02 23:32:52 -04:00
5b5f1ce1e5 run phx.new and add phx.gen.auth 2021-08-15 19:11:09 -04:00
95 changed files with 2357 additions and 1476 deletions

View File

@ -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
View File

@ -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/,

View File

@ -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

View File

@ -1,3 +1,11 @@
# v0.8.4
- Improve accessibility
# 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

View File

@ -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`

View File

@ -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!

View File

@ -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;
} }

View File

@ -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",

View File

@ -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{}} <-
...> reset_user_password(user, %{
...> password: "new password", ...> password: "new password",
...> password_confirmation: "new password" ...> password_confirmation: "new password"
...> }), ...> })
...> do: :passed {:ok, %User{}}
: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{}} <-
...> reset_user_password(user, %{
...> password: "new password", ...> password: "new password",
...> password_confirmation: "new password" ...> password_confirmation: "new password"
...> }), ...> })
...> do: :passed {:ok, %User{}}
: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()) ::

View File

@ -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

View File

@ -79,7 +79,9 @@ defmodule Cannery.ActivityLog.ShotGroup do
defp validate_create_shot_group_count(changeset, %AmmoGroup{count: ammo_group_count}) do defp validate_create_shot_group_count(changeset, %AmmoGroup{count: ammo_group_count}) do
if changeset |> Changeset.get_field(:count) > ammo_group_count do if changeset |> Changeset.get_field(:count) > ammo_group_count do
error = dgettext("errors", "Count must be less than %{count}", count: ammo_group_count) error =
dgettext("errors", "Count must be less than %{count} shots", count: ammo_group_count)
changeset |> Changeset.add_error(:count, error) changeset |> Changeset.add_error(:count, error)
else else
changeset changeset
@ -115,7 +117,9 @@ defmodule Cannery.ActivityLog.ShotGroup do
cond do cond do
shot_diff_to_add > ammo_group_count -> shot_diff_to_add > ammo_group_count ->
error = dgettext("errors", "Count must be less than %{count}", count: ammo_group_count) error =
dgettext("errors", "Count must be less than %{count} shots", count: ammo_group_count)
changeset |> Changeset.add_error(:count, error) changeset |> Changeset.add_error(:count, error)
new_shot_group_count <= 0 -> new_shot_group_count <= 0 ->

View File

@ -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,
[] []
) )

View File

@ -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 =
pretty_encode(%{
event: unhandled_event, event: unhandled_event,
meta: meta, meta: meta,
measurements: measure, measurements: measure,
config: config 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

View File

@ -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

View File

@ -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

View File

@ -185,11 +185,7 @@ defmodule CanneryWeb.Components.AmmoTypeTableComponent do
assigns = %{ammo_type: ammo_type} assigns = %{ammo_type: ammo_type}
~H""" ~H"""
<.link <.link navigate={Routes.ammo_type_show_path(Endpoint, :show, @ammo_type)} class="link">
navigate={Routes.ammo_type_show_path(Endpoint, :show, @ammo_type)}
class="link"
data-qa={"view-name-#{@ammo_type.id}"}
>
<%= @ammo_type.name %> <%= @ammo_type.name %>
</.link> </.link>
""" """

View File

@ -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,8 +81,7 @@ 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"
@ -90,10 +89,9 @@ defmodule CanneryWeb.Components.Topbar do
<%= 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={
@current_user |> Accounts.is_already_admin?() and
function_exported?(Routes, :live_dashboard_path, 2)
}
class="mx-2 my-1"
>
<.link <.link
navigate={Routes.live_dashboard_path(Endpoint, :home)} navigate={Routes.live_dashboard_path(Endpoint, :home)}
class="text-primary-600 text-white hover:underline" class="text-white text-white hover:underline"
> >
<i class="fas fa-gauge"></i> <i class="fas fa-gauge"></i>
</.link> </.link>
</li> </li>
<% end %>
<% 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>

View File

@ -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

View File

@ -91,7 +91,6 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
{:noreply, socket |> put_flash(:info, prompt) |> display_ammo_groups()} {:noreply, socket |> put_flash(:info, prompt) |> display_ammo_groups()}
end end
@impl true
def handle_event( def handle_event(
"toggle_staged", "toggle_staged",
%{"ammo_group_id" => id}, %{"ammo_group_id" => id},
@ -105,12 +104,10 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
{:noreply, socket |> display_ammo_groups()} {:noreply, socket |> display_ammo_groups()}
end end
@impl true
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_groups()} {:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_groups()}
end end
@impl true
def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do
{:noreply, socket |> push_patch(to: Routes.ammo_group_index_path(Endpoint, :index))} {:noreply, socket |> push_patch(to: Routes.ammo_group_index_path(Endpoint, :index))}
end end

View File

@ -49,7 +49,6 @@
phx-change="search" phx-change="search"
phx-submit="search" phx-submit="search"
class="grow self-stretch flex flex-col items-stretch" class="grow self-stretch flex flex-col items-stretch"
data-qa="ammo_group_search"
> >
<%= text_input(f, :search_term, <%= text_input(f, :search_term,
class: "input input-primary", class: "input input-primary",
@ -91,7 +90,9 @@
phx-click="toggle_staged" phx-click="toggle_staged"
phx-value-ammo_group_id={ammo_group.id} phx-value-ammo_group_id={ammo_group.id}
> >
<%= if ammo_group.staged, do: gettext("Unstage"), else: gettext("Stage") %> <%= if ammo_group.staged,
do: dgettext("actions", "Unstage"),
else: dgettext("actions", "Stage") %>
</button> </button>
<.link <.link
@ -124,7 +125,11 @@
<.link <.link
navigate={Routes.ammo_group_show_path(Endpoint, :show, ammo_group)} navigate={Routes.ammo_group_show_path(Endpoint, :show, ammo_group)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"view-#{ammo_group.id}"} aria-label={
gettext("View ammo group of %{ammo_group_count} bullets",
ammo_group_count: ammo_group.count
)
}
> >
<i class="fa-fw fa-lg fas fa-eye"></i> <i class="fa-fw fa-lg fas fa-eye"></i>
</.link> </.link>
@ -132,7 +137,11 @@
<.link <.link
patch={Routes.ammo_group_index_path(Endpoint, :edit, ammo_group)} patch={Routes.ammo_group_index_path(Endpoint, :edit, ammo_group)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"edit-#{ammo_group.id}"} aria-label={
gettext("Edit ammo group of %{ammo_group_count} bullets",
ammo_group_count: ammo_group.count
)
}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -140,7 +149,11 @@
<.link <.link
patch={Routes.ammo_group_index_path(Endpoint, :clone, ammo_group)} patch={Routes.ammo_group_index_path(Endpoint, :clone, ammo_group)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"clone-#{ammo_group.id}"} aria-label={
gettext("Clone ammo group of %{ammo_group_count} bullets",
ammo_group_count: ammo_group.count
)
}
> >
<i class="fa-fw fa-lg fas fa-copy"></i> <i class="fa-fw fa-lg fas fa-copy"></i>
</.link> </.link>
@ -151,7 +164,11 @@
phx-click="delete" phx-click="delete"
phx-value-id={ammo_group.id} phx-value-id={ammo_group.id}
data-confirm={dgettext("prompts", "Are you sure you want to delete this ammo?")} data-confirm={dgettext("prompts", "Are you sure you want to delete this ammo?")}
data-qa={"delete-#{ammo_group.id}"} aria-label={
gettext("Delete ammo group of %{ammo_group_count} bullets",
ammo_group_count: ammo_group.count
)
}
> >
<i class="fa-fw fa-lg fas fa-trash"></i> <i class="fa-fw fa-lg fas fa-trash"></i>
</.link> </.link>

View File

@ -28,7 +28,6 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
{:noreply, socket} {:noreply, socket}
end end
@impl true
def handle_params(%{"id" => id}, _url, %{assigns: %{live_action: live_action}} = socket) do def handle_params(%{"id" => id}, _url, %{assigns: %{live_action: live_action}} = socket) do
socket = socket =
socket socket
@ -58,7 +57,6 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
{:noreply, socket |> put_flash(:info, prompt) |> push_navigate(to: redirect_to)} {:noreply, socket |> put_flash(:info, prompt) |> push_navigate(to: redirect_to)}
end end
@impl true
def handle_event( def handle_event(
"toggle_staged", "toggle_staged",
_params, _params,
@ -70,7 +68,6 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
{:noreply, socket |> display_ammo_group(ammo_group)} {:noreply, socket |> display_ammo_group(ammo_group)}
end end
@impl true
def handle_event( def handle_event(
"delete_shot_group", "delete_shot_group",
%{"id" => id}, %{"id" => id},
@ -129,7 +126,11 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
<.link <.link
patch={Routes.ammo_group_show_path(Endpoint, :edit_shot_group, @ammo_group, @shot_group)} patch={Routes.ammo_group_show_path(Endpoint, :edit_shot_group, @ammo_group, @shot_group)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"edit-#{@shot_group.id}"} aria-label={
dgettext("actions", "Edit shot group of %{shot_group_count} shots",
shot_group_count: @shot_group.count
)
}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -140,7 +141,11 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
phx-click="delete_shot_group" phx-click="delete_shot_group"
phx-value-id={@shot_group.id} phx-value-id={@shot_group.id}
data-confirm={dgettext("prompts", "Are you sure you want to delete this shot record?")} data-confirm={dgettext("prompts", "Are you sure you want to delete this shot record?")}
data-qa={"delete-#{@shot_group.id}"} aria-label={
dgettext("actions", "Delete shot record of %{shot_group_count} shots",
shot_group_count: @shot_group.count
)
}
> >
<i class="fa-fw fa-lg fas fa-trash"></i> <i class="fa-fw fa-lg fas fa-trash"></i>
</.link> </.link>

View File

@ -55,7 +55,6 @@
<.link <.link
navigate={Routes.ammo_type_show_path(Endpoint, :show, @ammo_group.ammo_type)} navigate={Routes.ammo_type_show_path(Endpoint, :show, @ammo_group.ammo_type)}
class="mx-4 my-2 btn btn-primary" class="mx-4 my-2 btn btn-primary"
data-qa="details"
> >
<%= dgettext("actions", "View in Catalog") %> <%= dgettext("actions", "View in Catalog") %>
</.link> </.link>
@ -63,7 +62,11 @@
<.link <.link
patch={Routes.ammo_group_show_path(Endpoint, :edit, @ammo_group)} patch={Routes.ammo_group_show_path(Endpoint, :edit, @ammo_group)}
class="mx-4 my-2 text-primary-600 link" class="mx-4 my-2 text-primary-600 link"
data-qa="edit" aria-label={
dgettext("actions", "Edit ammo group of %{ammo_group_count} bullets",
ammo_group_count: @ammo_group.count
)
}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -73,7 +76,11 @@
class="mx-4 my-2 text-primary-600 link" class="mx-4 my-2 text-primary-600 link"
phx-click="delete" phx-click="delete"
data-confirm={dgettext("prompts", "Are you sure you want to delete this ammo?")} data-confirm={dgettext("prompts", "Are you sure you want to delete this ammo?")}
data-qa="delete" aria-label={
gettext("Delete ammo group of %{ammo_group_count} bullets",
ammo_group_count: @ammo_group.count
)
}
> >
<i class="fa-fw fa-lg fas fa-trash"></i> <i class="fa-fw fa-lg fas fa-trash"></i>
</.link> </.link>
@ -89,7 +96,6 @@
<.link <.link
patch={Routes.ammo_group_show_path(Endpoint, :move, @ammo_group)} patch={Routes.ammo_group_show_path(Endpoint, :move, @ammo_group)}
class="btn btn-primary" class="btn btn-primary"
data-qa="move"
> >
<%= dgettext("actions", "Move containers") %> <%= dgettext("actions", "Move containers") %>
</.link> </.link>

View File

@ -75,12 +75,10 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
{:noreply, socket |> put_flash(:info, prompt) |> list_ammo_types()} {:noreply, socket |> put_flash(:info, prompt) |> list_ammo_types()}
end end
@impl true
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> list_ammo_types()} {:noreply, socket |> assign(:show_used, !show_used) |> list_ammo_types()}
end end
@impl true
def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do
{:noreply, socket |> push_patch(to: Routes.ammo_type_index_path(Endpoint, :index))} {:noreply, socket |> push_patch(to: Routes.ammo_type_index_path(Endpoint, :index))}
end end

View File

@ -24,7 +24,6 @@
phx-change="search" phx-change="search"
phx-submit="search" phx-submit="search"
class="grow self-stretch flex flex-col items-stretch" class="grow self-stretch flex flex-col items-stretch"
data-qa="ammo_type_search"
> >
<%= text_input(f, :search_term, <%= text_input(f, :search_term,
class: "input input-primary", class: "input input-primary",
@ -60,7 +59,9 @@
<.link <.link
navigate={Routes.ammo_type_show_path(Endpoint, :show, ammo_type)} navigate={Routes.ammo_type_show_path(Endpoint, :show, ammo_type)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"view-#{ammo_type.id}"} aria-label={
dgettext("actions", "View %{ammo_type_name}", ammo_type_name: ammo_type.name)
}
> >
<i class="fa-fw fa-lg fas fa-eye"></i> <i class="fa-fw fa-lg fas fa-eye"></i>
</.link> </.link>
@ -68,7 +69,9 @@
<.link <.link
patch={Routes.ammo_type_index_path(Endpoint, :edit, ammo_type)} patch={Routes.ammo_type_index_path(Endpoint, :edit, ammo_type)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"edit-#{ammo_type.id}"} aria-label={
dgettext("actions", "Edit %{ammo_type_name}", ammo_type_name: ammo_type.name)
}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -76,7 +79,9 @@
<.link <.link
patch={Routes.ammo_type_index_path(Endpoint, :clone, ammo_type)} patch={Routes.ammo_type_index_path(Endpoint, :clone, ammo_type)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"clone-#{ammo_type.id}"} aria-label={
dgettext("actions", "Clone %{ammo_type_name}", ammo_type_name: ammo_type.name)
}
> >
<i class="fa-fw fa-lg fas fa-copy"></i> <i class="fa-fw fa-lg fas fa-copy"></i>
</.link> </.link>
@ -93,7 +98,9 @@
name: ammo_type.name name: ammo_type.name
) )
} }
data-qa={"delete-#{ammo_type.id}"} aria-label={
dgettext("actions", "Delete %{ammo_type_name}", ammo_type_name: ammo_type.name)
}
> >
<i class="fa-lg fas fa-trash"></i> <i class="fa-lg fas fa-trash"></i>
</.link> </.link>

View File

@ -58,12 +58,10 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
{:noreply, socket |> put_flash(:info, prompt) |> push_navigate(to: redirect_to)} {:noreply, socket |> put_flash(:info, prompt) |> push_navigate(to: redirect_to)}
end end
@impl true
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_type()} {:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_type()}
end end
@impl true
def handle_event( def handle_event(
"toggle_table", "toggle_table",
_params, _params,

View File

@ -16,7 +16,7 @@
<.link <.link
patch={Routes.ammo_type_show_path(Endpoint, :edit, @ammo_type)} patch={Routes.ammo_type_show_path(Endpoint, :edit, @ammo_type)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa="edit" aria-label={dgettext("actions", "Edit %{ammo_type_name}", ammo_type_name: @ammo_type.name)}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -32,7 +32,9 @@
name: @ammo_type.name name: @ammo_type.name
) )
} }
data-qa="delete" aria-label={
dgettext("actions", "Delete %{ammo_type_name}", ammo_type_name: @ammo_type.name)
}
> >
<i class="fa-fw fa-lg fas fa-trash"></i> <i class="fa-fw fa-lg fas fa-trash"></i>
</.link> </.link>

View File

@ -4,25 +4,40 @@ defmodule CanneryWeb.ContainerLive.EditTagsComponent do
""" """
use CanneryWeb, :live_component use CanneryWeb, :live_component
alias Cannery.{Accounts.User, Containers, Containers.Container, Repo, Tags, Tags.Tag} alias Cannery.{Accounts.User, Containers, Containers.Container, Tags, Tags.Tag}
alias Phoenix.LiveView.Socket alias Phoenix.LiveView.Socket
@impl true @impl true
@spec update( @spec update(
%{:container => Container.t(), :current_user => User.t(), optional(any) => any}, %{
:container => Container.t(),
:current_path => String.t(),
:current_user => User.t(),
optional(any) => any
},
Socket.t() Socket.t()
) :: {:ok, Socket.t()} ) :: {:ok, Socket.t()}
def update(%{container: container, current_user: current_user} = assigns, socket) do def update(
%{container: _container, current_path: _current_path, current_user: current_user} =
assigns,
socket
) do
tags = Tags.list_tags(current_user) tags = Tags.list_tags(current_user)
container = container |> Repo.preload(:tags) {:ok, socket |> assign(assigns) |> assign(:tags, tags)}
{:ok, socket |> assign(assigns) |> assign(tags: tags, container: container)}
end end
@impl true @impl true
def handle_event( def handle_event(
"save", "save",
%{"tag" => %{"tag_id" => tag_id}}, %{"tag" => %{"tag_id" => tag_id}},
%{assigns: %{tags: tags, container: container, current_user: current_user}} = socket %{
assigns: %{
tags: tags,
container: container,
current_user: current_user,
current_path: current_path
}
} = socket
) do ) do
socket = socket =
case tags |> Enum.find(fn %{id: id} -> tag_id == id end) do case tags |> Enum.find(fn %{id: id} -> tag_id == id end) do
@ -32,19 +47,24 @@ defmodule CanneryWeb.ContainerLive.EditTagsComponent do
%{name: tag_name} = tag -> %{name: tag_name} = tag ->
_container_tag = Containers.add_tag!(container, tag, current_user) _container_tag = Containers.add_tag!(container, tag, current_user)
container = container |> Repo.preload(:tags, force: true)
prompt = dgettext("prompts", "%{name} added successfully", name: tag_name) prompt = dgettext("prompts", "%{name} added successfully", name: tag_name)
socket |> put_flash(:info, prompt) |> assign(container: container) socket |> put_flash(:info, prompt) |> push_patch(to: current_path)
end end
{:noreply, socket} {:noreply, socket}
end end
@impl true
def handle_event( def handle_event(
"delete", "delete",
%{"tag-id" => tag_id}, %{"tag-id" => tag_id},
%{assigns: %{tags: tags, container: container, current_user: current_user}} = socket %{
assigns: %{
tags: tags,
container: container,
current_user: current_user,
current_path: current_path
}
} = socket
) do ) do
socket = socket =
case tags |> Enum.find(fn %{id: id} -> tag_id == id end) do case tags |> Enum.find(fn %{id: id} -> tag_id == id end) do
@ -54,9 +74,8 @@ defmodule CanneryWeb.ContainerLive.EditTagsComponent do
%{name: tag_name} = tag -> %{name: tag_name} = tag ->
_container_tag = Containers.remove_tag!(container, tag, current_user) _container_tag = Containers.remove_tag!(container, tag, current_user)
container = container |> Repo.preload(:tags, force: true)
prompt = dgettext("prompts", "%{name} removed successfully", name: tag_name) prompt = dgettext("prompts", "%{name} removed successfully", name: tag_name)
socket |> put_flash(:info, prompt) |> assign(container: container) socket |> put_flash(:info, prompt) |> push_patch(to: current_path)
end end
{:noreply, socket} {:noreply, socket}

View File

@ -106,12 +106,10 @@ defmodule CanneryWeb.ContainerLive.Index do
{:noreply, socket} {:noreply, socket}
end end
@impl true
def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do
{:noreply, socket |> assign(:view_table, !view_table) |> display_containers()} {:noreply, socket |> assign(:view_table, !view_table) |> display_containers()}
end end
@impl true
def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do
{:noreply, socket |> push_patch(to: Routes.container_index_path(Endpoint, :index))} {:noreply, socket |> push_patch(to: Routes.container_index_path(Endpoint, :index))}
end end

View File

@ -24,7 +24,6 @@
phx-change="search" phx-change="search"
phx-submit="search" phx-submit="search"
class="grow self-stretch flex flex-col items-stretch" class="grow self-stretch flex flex-col items-stretch"
data-qa="container_search"
> >
<%= text_input(f, :search_term, <%= text_input(f, :search_term,
class: "input input-primary", class: "input input-primary",
@ -61,6 +60,9 @@
<.link <.link
patch={Routes.container_index_path(Endpoint, :edit_tags, container)} patch={Routes.container_index_path(Endpoint, :edit_tags, container)}
class="text-primary-600 link" class="text-primary-600 link"
aria-label={
dgettext("actions", "Tag %{container_name}", container_name: container.name)
}
> >
<i class="fa-fw fa-lg fas fa-tags"></i> <i class="fa-fw fa-lg fas fa-tags"></i>
</.link> </.link>
@ -70,7 +72,9 @@
<.link <.link
patch={Routes.container_index_path(Endpoint, :edit, container)} patch={Routes.container_index_path(Endpoint, :edit, container)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"edit-#{container.id}"} aria-label={
dgettext("actions", "Edit %{container_name}", container_name: container.name)
}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -78,7 +82,9 @@
<.link <.link
patch={Routes.container_index_path(Endpoint, :clone, container)} patch={Routes.container_index_path(Endpoint, :clone, container)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"clone-#{container.id}"} aria-label={
dgettext("actions", "Clone %{container_name}", container_name: container.name)
}
> >
<i class="fa-fw fa-lg fas fa-copy"></i> <i class="fa-fw fa-lg fas fa-copy"></i>
</.link> </.link>
@ -91,7 +97,9 @@
data-confirm={ data-confirm={
dgettext("prompts", "Are you sure you want to delete %{name}?", name: container.name) dgettext("prompts", "Are you sure you want to delete %{name}?", name: container.name)
} }
data-qa={"delete-#{container.id}"} aria-label={
dgettext("actions", "Delete %{container_name}", container_name: container.name)
}
> >
<i class="fa-fw fa-lg fas fa-trash"></i> <i class="fa-fw fa-lg fas fa-trash"></i>
</.link> </.link>
@ -105,6 +113,9 @@
<.link <.link
patch={Routes.container_index_path(Endpoint, :edit_tags, container)} patch={Routes.container_index_path(Endpoint, :edit_tags, container)}
class="text-primary-600 link" class="text-primary-600 link"
aria-label={
dgettext("actions", "Tag %{container_name}", container_name: container.name)
}
> >
<i class="fa-fw fa-lg fas fa-tags"></i> <i class="fa-fw fa-lg fas fa-tags"></i>
</.link> </.link>
@ -113,7 +124,9 @@
<.link <.link
patch={Routes.container_index_path(Endpoint, :edit, container)} patch={Routes.container_index_path(Endpoint, :edit, container)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"edit-#{container.id}"} aria-label={
dgettext("actions", "Edit %{container_name}", container_name: container.name)
}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -121,7 +134,9 @@
<.link <.link
patch={Routes.container_index_path(Endpoint, :clone, container)} patch={Routes.container_index_path(Endpoint, :clone, container)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"clone-#{container.id}"} aria-label={
dgettext("actions", "Clone %{container_name}", container_name: container.name)
}
> >
<i class="fa-fw fa-lg fas fa-copy"></i> <i class="fa-fw fa-lg fas fa-copy"></i>
</.link> </.link>
@ -134,7 +149,9 @@
data-confirm={ data-confirm={
dgettext("prompts", "Are you sure you want to delete %{name}?", name: container.name) dgettext("prompts", "Are you sure you want to delete %{name}?", name: container.name)
} }
data-qa={"delete-#{container.id}"} aria-label={
dgettext("actions", "Delete %{container_name}", container_name: container.name)
}
> >
<i class="fa-fw fa-lg fas fa-trash"></i> <i class="fa-fw fa-lg fas fa-trash"></i>
</.link> </.link>
@ -166,6 +183,7 @@
title={@page_title} title={@page_title}
action={@live_action} action={@live_action}
container={@container} container={@container}
current_path={Routes.container_index_path(Endpoint, :edit_tags, @container)}
current_user={@current_user} current_user={@current_user}
/> />
</.modal> </.modal>

View File

@ -50,7 +50,6 @@ defmodule CanneryWeb.ContainerLive.Show do
{:noreply, socket} {:noreply, socket}
end end
@impl true
def handle_event( def handle_event(
"delete_container", "delete_container",
_params, _params,
@ -84,12 +83,10 @@ defmodule CanneryWeb.ContainerLive.Show do
{:noreply, socket} {:noreply, socket}
end end
@impl true
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> render_container()} {:noreply, socket |> assign(:show_used, !show_used) |> render_container()}
end end
@impl true
def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do
{:noreply, socket |> assign(:view_table, !view_table) |> render_container()} {:noreply, socket |> assign(:view_table, !view_table) |> render_container()}
end end

View File

@ -42,7 +42,7 @@
<.link <.link
patch={Routes.container_show_path(Endpoint, :edit, @container)} patch={Routes.container_show_path(Endpoint, :edit, @container)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa="edit" aria-label={dgettext("actions", "Edit %{container_name}", container_name: @container.name)}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -54,7 +54,9 @@
data-confirm={ data-confirm={
dgettext("prompts", "Are you sure you want to delete %{name}?", name: @container.name) dgettext("prompts", "Are you sure you want to delete %{name}?", name: @container.name)
} }
data-qa="delete" aria-label={
dgettext("actions", "Delete %{container_name}", container_name: @container.name)
}
> >
<i class="fa-fw fa-lg fas fa-trash"></i> <i class="fa-fw fa-lg fas fa-trash"></i>
</.link> </.link>
@ -161,6 +163,7 @@
action={@live_action} action={@live_action}
container={@container} container={@container}
return_to={Routes.container_show_path(Endpoint, :show, @container)} return_to={Routes.container_show_path(Endpoint, :show, @container)}
current_path={Routes.container_show_path(Endpoint, :edit_tags, @container)}
current_user={@current_user} current_user={@current_user}
/> />
</.modal> </.modal>

View File

@ -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
@ -123,13 +123,11 @@ defmodule CanneryWeb.InviteLive.Index do
{:noreply, socket} {:noreply, socket}
end end
@impl true
def handle_event("copy_to_clipboard", _params, socket) do def handle_event("copy_to_clipboard", _params, socket) do
prompt = dgettext("prompts", "Copied to clipboard") prompt = dgettext("prompts", "Copied to clipboard")
{:noreply, socket |> put_flash(:info, prompt)} {:noreply, socket |> put_flash(:info, prompt)}
end end
@impl true
def handle_event( def handle_event(
"delete_user", "delete_user",
%{"id" => id}, %{"id" => id},

View File

@ -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">
@ -26,6 +26,9 @@
type="submit" type="submit"
class="mx-2 my-1 btn btn-primary" class="mx-2 my-1 btn btn-primary"
phx-click={JS.dispatch("cannery:clipcopy", to: "#code-#{invite.id}")} phx-click={JS.dispatch("cannery:clipcopy", to: "#code-#{invite.id}")}
aria-label={
dgettext("actions", "Copy invite link for %{invite_name}", invite_name: invite.name)
}
> >
<%= dgettext("actions", "Copy to clipboard") %> <%= dgettext("actions", "Copy to clipboard") %>
</button> </button>
@ -34,7 +37,9 @@
<.link <.link
patch={Routes.invite_index_path(Endpoint, :edit, invite)} patch={Routes.invite_index_path(Endpoint, :edit, invite)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"edit-#{invite.id}"} aria-label={
dgettext("actions", "Edit invite for %{invite_name}", invite_name: invite.name)
}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -49,7 +54,9 @@
invite_name: invite.name invite_name: invite.name
) )
} }
data-qa={"delete-#{invite.id}"} aria-label={
dgettext("actions", "Delete invite for %{invite_name}", invite_name: invite.name)
}
> >
<i class="fa-fw fa-lg fas fa-trash"></i> <i class="fa-fw fa-lg fas fa-trash"></i>
</.link> </.link>
@ -87,7 +94,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 +122,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="#"

View File

@ -3,9 +3,12 @@ defmodule CanneryWeb.LiveHelpers do
Contains common helper functions for liveviews Contains common helper functions for liveviews
""" """
import Phoenix.Component use Phoenix.Component
alias Phoenix.LiveView.JS alias Phoenix.LiveView.JS
attr :return_to, :string, required: true
slot(:inner_block)
@doc """ @doc """
Renders a live component inside a modal. Renders a live component inside a modal.
@ -79,6 +82,11 @@ defmodule CanneryWeb.LiveHelpers do
|> JS.hide(to: "#modal-content", transition: "fade-out-scale") |> JS.hide(to: "#modal-content", transition: "fade-out-scale")
end end
attr :action, :string, required: true
attr :value, :boolean, required: true
attr :id, :string
slot(:inner_block)
@doc """ @doc """
A toggle button element that can be directed to a liveview or a A toggle button element that can be directed to a liveview or a
live_component's `handle_event/3`. live_component's `handle_event/3`.
@ -103,7 +111,7 @@ defmodule CanneryWeb.LiveHelpers do
value={@value} value={@value}
checked={@value} checked={@value}
class="sr-only peer" class="sr-only peer"
data-qa={@id} aria-labelledby={"#{@id}-label"}
{ {
if assigns |> Map.has_key?(:target), if assigns |> Map.has_key?(:target),
do: %{"phx-click": @action, "phx-value-value": @value, "phx-target": @target}, do: %{"phx-click": @action, "phx-value-value": @value, "phx-target": @target},
@ -119,7 +127,7 @@ defmodule CanneryWeb.LiveHelpers do
after:transition-all after:duration-250 after:ease-in-out after:transition-all after:duration-250 after:ease-in-out
transition-colors duration-250 ease-in-out"> transition-colors duration-250 ease-in-out">
</div> </div>
<span class="ml-3 text-sm font-medium text-gray-900 dark:text-gray-300"> <span id={"#{@id}-label"} class="ml-3 text-sm font-medium text-gray-900 dark:text-gray-300">
<%= render_slot(@inner_block) %> <%= render_slot(@inner_block) %>
</span> </span>
</label> </label>

View File

@ -81,7 +81,6 @@ defmodule CanneryWeb.RangeLive.Index do
{:noreply, socket |> put_flash(:info, prompt) |> display_shot_groups()} {:noreply, socket |> put_flash(:info, prompt) |> display_shot_groups()}
end end
@impl true
def handle_event( def handle_event(
"toggle_staged", "toggle_staged",
%{"ammo_group_id" => ammo_group_id}, %{"ammo_group_id" => ammo_group_id},
@ -96,7 +95,6 @@ defmodule CanneryWeb.RangeLive.Index do
{:noreply, socket |> put_flash(:info, prompt) |> display_shot_groups()} {:noreply, socket |> put_flash(:info, prompt) |> display_shot_groups()}
end end
@impl true
def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do
{:noreply, socket |> push_patch(to: Routes.range_index_path(Endpoint, :index))} {:noreply, socket |> push_patch(to: Routes.range_index_path(Endpoint, :index))}
end end

View File

@ -74,7 +74,6 @@
phx-change="search" phx-change="search"
phx-submit="search" phx-submit="search"
class="grow self-stretch flex flex-col items-stretch" class="grow self-stretch flex flex-col items-stretch"
data-qa="shot_group_search"
> >
<%= text_input(f, :search_term, <%= text_input(f, :search_term,
class: "input input-primary", class: "input input-primary",
@ -102,7 +101,11 @@
<.link <.link
patch={Routes.range_index_path(Endpoint, :edit, shot_group)} patch={Routes.range_index_path(Endpoint, :edit, shot_group)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"edit-#{shot_group.id}"} aria-label={
dgettext("actions", "Edit shot record of %{shot_group_count} shots",
shot_group_count: shot_group.count
)
}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -115,7 +118,11 @@
data-confirm={ data-confirm={
dgettext("prompts", "Are you sure you want to delete this shot record?") dgettext("prompts", "Are you sure you want to delete this shot record?")
} }
data-qa={"delete-#{shot_group.id}"} aria-label={
dgettext("actions", "Delete shot record of %{shot_group_count} shots",
shot_group_count: shot_group.count
)
}
> >
<i class="fa-fw fa-lg fas fa-trash"></i> <i class="fa-fw fa-lg fas fa-trash"></i>
</.link> </.link>

View File

@ -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
@ -65,7 +65,6 @@ defmodule CanneryWeb.TagLive.Index do
{:noreply, socket |> put_flash(:info, prompt) |> display_tags()} {:noreply, socket |> put_flash(:info, prompt) |> display_tags()}
end end
@impl true
def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do def handle_event("search", %{"search" => %{"search_term" => ""}}, socket) do
{:noreply, socket |> push_patch(to: Routes.tag_index_path(Endpoint, :index))} {:noreply, socket |> push_patch(to: Routes.tag_index_path(Endpoint, :index))}
end end

View File

@ -27,7 +27,6 @@
phx-change="search" phx-change="search"
phx-submit="search" phx-submit="search"
class="grow self-stretch flex flex-col items-stretch" class="grow self-stretch flex flex-col items-stretch"
data-qa="tag_search"
> >
<%= text_input(f, :search_term, <%= text_input(f, :search_term,
class: "input input-primary", class: "input input-primary",
@ -49,7 +48,7 @@
<.link <.link
patch={Routes.tag_index_path(Endpoint, :edit, tag)} patch={Routes.tag_index_path(Endpoint, :edit, tag)}
class="text-primary-600 link" class="text-primary-600 link"
data-qa={"edit-#{tag.id}"} aria-label={dgettext("actions", "Edit %{tag_name}", tag_name: tag.name)}
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
@ -62,7 +61,7 @@
data-confirm={ data-confirm={
dgettext("prompts", "Are you sure you want to delete %{name}?", name: tag.name) dgettext("prompts", "Are you sure you want to delete %{name}?", name: tag.name)
} }
data-qa={"delete-#{tag.id}"} aria-label={dgettext("actions", "Delete %{tag_name}", tag_name: tag.name)}
> >
<i class="fa-fw fa-lg fas fa-trash"></i> <i class="fa-fw fa-lg fas fa-trash"></i>
</.link> </.link>

View File

@ -6,7 +6,7 @@
<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 />
@ -15,11 +15,9 @@
<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>

View File

@ -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:") %>

View File

@ -9,11 +9,9 @@
<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>

View File

@ -9,11 +9,12 @@
<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>

View File

@ -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">

View File

@ -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">

View File

@ -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>

View File

@ -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)) %>

View File

@ -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

View File

@ -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"),

View File

@ -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") %>

View File

@ -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,

View File

@ -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"),

View File

@ -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"),

View File

@ -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>

View File

@ -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

View File

@ -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})

View File

@ -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.

View File

@ -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.4",
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(),

View File

@ -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 ""
@ -136,7 +136,7 @@ msgstr ""
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:76 #: lib/cannery_web/live/container_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "" msgstr ""
@ -156,8 +156,8 @@ msgstr ""
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:101 #: lib/cannery_web/live/ammo_group_live/index.html.heex:102
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:107
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record shots" msgid "Record shots"
@ -168,7 +168,7 @@ msgstr ""
msgid "Add another container!" msgid "Add another container!"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:94 #: lib/cannery_web/live/ammo_group_live/show.html.heex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move containers" msgid "Move containers"
msgstr "" msgstr ""
@ -178,7 +178,7 @@ msgstr ""
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:30 #: lib/cannery_web/live/invite_live/index.html.heex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "" msgstr ""
@ -193,17 +193,17 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:60 #: lib/cannery_web/live/ammo_group_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View in Catalog" msgid "View in Catalog"
msgstr "" msgstr ""
@ -218,24 +218,128 @@ msgstr ""
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:78 #: lib/cannery_web/live/invite_live/index.html.heex:85
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:93
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage for range" msgid "Stage for range"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85 #: lib/cannery_web/live/ammo_group_live/show.html.heex:92
#: lib/cannery_web/live/range_live/index.html.heex:30 #: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:86
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:102
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:153
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:145
#: lib/cannery_web/live/range_live/index.html.heex:122
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:76
#: lib/cannery_web/live/container_live/index.html.heex:128
#: lib/cannery_web/live/container_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:51
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:66
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:41
#, elixir-autogen, elixir-format
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:105
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:64
#: lib/cannery_web/live/container_live/index.html.heex:117
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""

View File

@ -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"
@ -149,7 +149,7 @@ msgstr "Speichern"
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "Anleitung zum Passwort zurücksetzen zusenden" msgstr "Anleitung zum Passwort zurücksetzen zusenden"
#: lib/cannery_web/live/container_live/show.html.heex:76 #: lib/cannery_web/live/container_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "Warum fügen Sie keine hinzu?" msgstr "Warum fügen Sie keine hinzu?"
@ -169,8 +169,8 @@ msgstr "Munition markieren"
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "Warum nicht einige für den Schießstand auswählen?" msgstr "Warum nicht einige für den Schießstand auswählen?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:101 #: lib/cannery_web/live/ammo_group_live/index.html.heex:102
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:107
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record shots" msgid "Record shots"
@ -181,7 +181,7 @@ msgstr "Schüsse dokumentieren"
msgid "Add another container!" msgid "Add another container!"
msgstr "Einen weiteren Behälter hinzufügen!" msgstr "Einen weiteren Behälter hinzufügen!"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:94 #: lib/cannery_web/live/ammo_group_live/show.html.heex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move containers" msgid "Move containers"
msgstr "Behälter verschieben" msgstr "Behälter verschieben"
@ -191,7 +191,7 @@ msgstr "Behälter verschieben"
msgid "Select" msgid "Select"
msgstr "Markieren" msgstr "Markieren"
#: lib/cannery_web/live/invite_live/index.html.heex:30 #: lib/cannery_web/live/invite_live/index.html.heex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "In die Zwischenablage kopieren" msgstr "In die Zwischenablage kopieren"
@ -206,17 +206,17 @@ 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"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:60 #: lib/cannery_web/live/ammo_group_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View in Catalog" msgid "View in Catalog"
msgstr "" msgstr ""
@ -231,24 +231,128 @@ msgstr ""
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:78 #: lib/cannery_web/live/invite_live/index.html.heex:85
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:93
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage for range" msgid "Stage for range"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85 #: lib/cannery_web/live/ammo_group_live/show.html.heex:92
#: lib/cannery_web/live/range_live/index.html.heex:30 #: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:86
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:102
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:153
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:145
#: lib/cannery_web/live/range_live/index.html.heex:122
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:76
#: lib/cannery_web/live/container_live/index.html.heex:128
#: lib/cannery_web/live/container_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:51
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:66
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:41
#, elixir-autogen, elixir-format
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:105
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr "Munition markieren"
#: lib/cannery_web/live/container_live/index.html.heex:64
#: lib/cannery_web/live/container_live/index.html.heex:117
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""

View File

@ -19,7 +19,7 @@ msgstr ""
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "Zugriff von jedem Internet-fähigen Gerät" msgstr "Zugriff von jedem Internet-fähigen Gerät"
#: lib/cannery_web/live/invite_live/index.html.heex:87 #: lib/cannery_web/live/invite_live/index.html.heex:94
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins" msgid "Admins"
msgstr "Admins" msgstr "Admins"
@ -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"
@ -267,18 +267,18 @@ msgid "New Tag"
msgstr "Neuer Tag" msgstr "Neuer Tag"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10 #: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71 #: lib/cannery_web/live/ammo_group_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No Ammo" msgid "No Ammo"
msgstr "Keine Munition" msgstr "Keine Munition"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167 #: lib/cannery_web/live/ammo_type_live/show.html.heex:169
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "Keine Munition dieser Art" msgstr "Keine Munition dieser Art"
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47 #: lib/cannery_web/live/container_live/index.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No containers" msgid "No containers"
msgstr "Kein Behälter" msgstr "Kein Behälter"
@ -290,7 +290,7 @@ msgstr "Keine Einladung"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29 #: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10 #: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43 #: lib/cannery_web/live/tag_live/index.html.heex:42
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags" msgid "No tags"
msgstr "Keine Tags" msgstr "Keine Tags"
@ -299,7 +299,7 @@ msgstr "Keine Tags"
#: lib/cannery_web/components/ammo_group_table_component.ex:81 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43 #: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:93 #: lib/cannery_web/live/ammo_group_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30 #: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
@ -372,7 +372,7 @@ msgstr "Einfach:"
msgid "Steel" msgid "Steel"
msgstr "Stahl" msgstr "Stahl"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:111 #: lib/cannery_web/live/ammo_group_live/show.html.heex:117
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stored in" msgid "Stored in"
msgstr "Gelagert in" msgstr "Gelagert in"
@ -420,7 +420,7 @@ msgstr "Art"
msgid "Type:" msgid "Type:"
msgstr "Art:" msgstr "Art:"
#: lib/cannery_web/live/invite_live/index.html.heex:115 #: lib/cannery_web/live/invite_live/index.html.heex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Users" msgid "Users"
msgstr "Benutzer" msgstr "Benutzer"
@ -435,7 +435,7 @@ msgstr "Verbleibende Nutzung"
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "Ihre Daten bleiben bei Ihnen, Punkt" msgstr "Ihre Daten bleiben bei Ihnen, Punkt"
#: lib/cannery_web/live/container_live/show.html.heex:68 #: lib/cannery_web/live/container_live/show.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "Keine Tags für diesen Behälter" msgstr "Keine Tags für diesen Behälter"
@ -453,7 +453,7 @@ msgstr "Range Day"
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:46
#: lib/cannery_web/components/shot_group_table_component.ex:44 #: lib/cannery_web/components/shot_group_table_component.ex:44
#: lib/cannery_web/live/ammo_group_live/show.ex:94 #: lib/cannery_web/live/ammo_group_live/show.ex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:37 #: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -475,7 +475,7 @@ msgstr "Keine Munition selektiert"
msgid "Record shots" msgid "Record shots"
msgstr "Schüsse dokumentieren" msgstr "Schüsse dokumentieren"
#: lib/cannery_web/live/ammo_group_live/show.ex:42 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:41 #: lib/cannery_web/live/range_live/index.ex:41
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -487,7 +487,7 @@ msgid "New Shot Records"
msgstr "Neue Schießkladde" msgstr "Neue Schießkladde"
#: lib/cannery_web/live/range_live/index.html.heex:48 #: lib/cannery_web/live/range_live/index.html.heex:48
#: lib/cannery_web/live/range_live/index.html.heex:90 #: lib/cannery_web/live/range_live/index.html.heex:89
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No shots recorded" msgid "No shots recorded"
msgstr "Keine Schüsse dokumentiert" msgstr "Keine Schüsse dokumentiert"
@ -499,7 +499,7 @@ msgid "Rounds left"
msgstr "Patronen verbleibend" msgstr "Patronen verbleibend"
#: lib/cannery_web/components/shot_group_table_component.ex:42 #: lib/cannery_web/components/shot_group_table_component.ex:42
#: lib/cannery_web/live/ammo_group_live/show.ex:92 #: lib/cannery_web/live/ammo_group_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:62 #: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
@ -512,7 +512,7 @@ msgid "Shot Records"
msgstr "Schießkladde" msgstr "Schießkladde"
#: lib/cannery_web/live/ammo_group_live/index.ex:38 #: lib/cannery_web/live/ammo_group_live/index.ex:38
#: lib/cannery_web/live/ammo_group_live/index.html.heex:118 #: lib/cannery_web/live/ammo_group_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "Munition verschieben" msgstr "Munition verschieben"
@ -534,7 +534,7 @@ msgstr "Schießkladde"
#: lib/cannery_web/components/ammo_type_table_component.ex:180 #: lib/cannery_web/components/ammo_type_table_component.ex:180
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/show.html.heex:137 #: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "$%{amount}" msgstr "$%{amount}"
@ -574,32 +574,24 @@ 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"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr "Markiert"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr "Demarkiert"
#: lib/cannery_web/components/ammo_type_table_component.ex:62 #: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -612,19 +604,19 @@ msgid "Reconnecting..."
msgstr "Neu verbinden..." msgstr "Neu verbinden..."
#: lib/cannery_web/live/container_live/index.ex:32 #: lib/cannery_web/live/container_live/index.ex:32
#: lib/cannery_web/live/container_live/show.ex:113 #: lib/cannery_web/live/container_live/show.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "%{name} bearbeiten" msgstr "%{name} bearbeiten"
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:69
#: lib/cannery_web/live/container_live/show.ex:114 #: lib/cannery_web/live/container_live/show.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "Editiere %{name} Tags" msgstr "Editiere %{name} Tags"
#: lib/cannery_web/components/container_card.ex:60 #: lib/cannery_web/components/container_card.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:68 #: lib/cannery_web/live/ammo_type_live/show.html.heex:70
#: lib/cannery_web/live/container_live/show.html.heex:35 #: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
@ -632,7 +624,7 @@ msgstr "Patronen:"
#: lib/cannery_web/components/ammo_group_table_component.ex:222 #: lib/cannery_web/components/ammo_group_table_component.ex:222
#: lib/cannery_web/components/ammo_type_table_component.ex:179 #: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143 #: lib/cannery_web/live/ammo_type_live/show.html.heex:145
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "Keine Preisinformationen" msgstr "Keine Preisinformationen"
@ -662,7 +654,7 @@ msgstr "Ursprüngliche Anzahl:"
msgid "Percentage left:" msgid "Percentage left:"
msgstr "Prozent verbleibend:" msgstr "Prozent verbleibend:"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:124 #: lib/cannery_web/live/ammo_group_live/show.html.heex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds used" msgid "Rounds used"
msgstr "Patronen verbraucht" msgstr "Patronen verbraucht"
@ -692,7 +684,7 @@ msgstr "Registrieren"
msgid "Reset your password" msgid "Reset your password"
msgstr "Passwort zurücksetzen" msgstr "Passwort zurücksetzen"
#: lib/cannery_web/live/ammo_group_live/show.ex:41 #: lib/cannery_web/live/ammo_group_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:33 #: lib/cannery_web/live/range_live/index.ex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record Shots" msgid "Record Shots"
@ -703,23 +695,23 @@ msgstr "Schüsse dokumentieren"
msgid "Copies" msgid "Copies"
msgstr "Kopien" msgstr "Kopien"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:124 #: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" 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"
@ -757,33 +749,33 @@ msgstr "Quellcode ansehen"
msgid "Catalog" msgid "Catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:45 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "Munitionstyp bearbeiten" msgstr "Munitionstyp bearbeiten"
#: lib/cannery_web/live/ammo_group_live/show.ex:43 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Move Ammo" msgid "Move Ammo"
msgstr "Munition verschieben" msgstr "Munition verschieben"
#: lib/cannery_web/live/container_live/show.html.heex:113 #: lib/cannery_web/live/container_live/show.html.heex:115
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "Keine Munitionsgruppe in diesem Behälter" msgstr "Keine Munitionsgruppe in diesem Behälter"
#: lib/cannery_web/live/ammo_group_live/show.ex:44 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Show Ammo" msgid "Show Ammo"
msgstr "Zeige Munitionsarten" msgstr "Zeige Munitionsarten"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:116 #: lib/cannery_web/live/ammo_group_live/show.html.heex:122
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "This ammo is not in a container" msgid "This ammo is not in a container"
msgstr "Diese Munitionsgruppe ist nicht in einem Behälter" msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
#: lib/cannery_web/components/container_card.ex:55 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96 #: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:26 #: lib/cannery_web/live/container_live/show.html.heex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -810,10 +802,10 @@ msgstr ""
msgid "Container:" msgid "Container:"
msgstr "Behälter" msgstr "Behälter"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64 #: lib/cannery_web/live/ammo_group_live/index.html.heex:63
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39 #: lib/cannery_web/live/ammo_type_live/index.html.heex:38
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153 #: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/show.html.heex:99 #: lib/cannery_web/live/container_live/show.html.heex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
@ -824,7 +816,7 @@ msgstr ""
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:136 #: lib/cannery_web/live/range_live/index.ex:134
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "Patronen abgefeuert" msgstr "Patronen abgefeuert"
@ -841,9 +833,9 @@ msgstr ""
msgid "Rounds" msgid "Rounds"
msgstr "Patronen:" msgstr "Patronen:"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159 #: lib/cannery_web/live/ammo_type_live/show.html.heex:161
#: lib/cannery_web/live/container_live/index.html.heex:39 #: lib/cannery_web/live/container_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -853,7 +845,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:112 #: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -863,7 +855,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "Summe aller Patronen" msgstr "Summe aller Patronen"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:84 #: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "Summe abgegebener Schüsse:" msgstr "Summe abgegebener Schüsse:"
@ -873,7 +865,7 @@ msgstr "Summe abgegebener Schüsse:"
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -883,7 +875,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:76 #: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -994,13 +986,13 @@ msgid "UPC:"
msgstr "UPC" msgstr "UPC"
#: lib/cannery_web/components/ammo_type_table_component.ex:120 #: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:133 #: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average CPR" msgid "Average CPR"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28 #: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:120 #: lib/cannery_web/live/ammo_type_live/show.ex:118
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}" msgid "Edit %{ammo_type_name}"
msgstr "%{name} bearbeiten" msgstr "%{name} bearbeiten"
@ -1079,37 +1071,37 @@ msgid "Edit ammo"
msgstr "Munitionstyp bearbeiten" msgstr "Munitionstyp bearbeiten"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8 #: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46 #: lib/cannery_web/live/ammo_type_live/index.html.heex:45
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types" msgid "No Ammo types"
msgstr "Keine Munitionsarten" msgstr "Keine Munitionsarten"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33 #: lib/cannery_web/live/ammo_type_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search catalog" msgid "Search catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58 #: lib/cannery_web/live/ammo_group_live/index.html.heex:57
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo" msgid "Search ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33 #: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search containers" msgid "Search containers"
msgstr "" msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36 #: lib/cannery_web/live/tag_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Search tags" msgid "Search tags"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:83 #: lib/cannery_web/live/range_live/index.html.heex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
@ -1178,12 +1170,12 @@ msgstr ""
msgid "Welcome to Cannery" msgid "Welcome to Cannery"
msgstr "Willkommen %{name}" msgstr "Willkommen %{name}"
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
@ -1197,3 +1189,39 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153
#, elixir-autogen, elixir-format
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:168
#: lib/cannery_web/live/ammo_group_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:141
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:129
#, elixir-autogen, elixir-format
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -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}!"

View File

@ -29,7 +29,7 @@ msgid "Container must be empty before deleting"
msgstr "Behälter muss vor dem Löschen leer sein" msgstr "Behälter muss vor dem Löschen leer sein"
#: lib/cannery_web/live/container_live/index.ex:92 #: lib/cannery_web/live/container_live/index.ex:92
#: lib/cannery_web/live/container_live/show.ex:73 #: lib/cannery_web/live/container_live/show.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "Konnte %{name} nicht löschen: %{error}" msgstr "Konnte %{name} nicht löschen: %{error}"
@ -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."
@ -147,22 +147,16 @@ msgstr "Muss ein @ Zeichen und keine Leerzeichen haben"
msgid "Tag not found" msgid "Tag not found"
msgstr "Tag nicht gefunden" msgstr "Tag nicht gefunden"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30 #: lib/cannery_web/live/container_live/edit_tags_component.ex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be added" msgid "Tag could not be added"
msgstr "Tag konnte nicht hinzugefügt werden" msgstr "Tag konnte nicht hinzugefügt werden"
#: lib/cannery/activity_log/shot_group.ex:122 #: lib/cannery/activity_log/shot_group.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "Anzahl muss mindestens 1 sein" msgstr "Anzahl muss mindestens 1 sein"
#: lib/cannery/activity_log/shot_group.ex:82
#: lib/cannery/activity_log/shot_group.ex:118
#, elixir-autogen, elixir-format
msgid "Count must be less than %{count}"
msgstr "Anzahl muss weniger als %{count} betragen"
#: lib/cannery_web/controllers/user_auth.ex:39 #: lib/cannery_web/controllers/user_auth.ex:39
#: lib/cannery_web/controllers/user_auth.ex:161 #: lib/cannery_web/controllers/user_auth.ex:161
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -171,7 +165,7 @@ msgstr ""
"Sie müssen ihr Nutzerkonto bestätigen und einloggen, um diese Seite " "Sie müssen ihr Nutzerkonto bestätigen und einloggen, um diese Seite "
"anzuzeigen." "anzuzeigen."
#: lib/cannery_web/live/container_live/edit_tags_component.ex:52 #: lib/cannery_web/live/container_live/edit_tags_component.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "Tag konnte nicht gelöscht werden" msgstr "Tag konnte nicht gelöscht werden"
@ -207,3 +201,9 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack" msgid "Please select a valid user and ammo pack"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:83
#: lib/cannery/activity_log/shot_group.ex:121
#, elixir-autogen, elixir-format, fuzzy
msgid "Count must be less than %{count} shots"
msgstr "Anzahl muss weniger als %{count} betragen"

View File

@ -39,7 +39,7 @@ msgid "%{name} deleted succesfully"
msgstr "%{name} erfolgreich gelöscht" msgstr "%{name} erfolgreich gelöscht"
#: lib/cannery_web/live/container_live/index.ex:85 #: lib/cannery_web/live/container_live/index.ex:85
#: lib/cannery_web/live/container_live/show.ex:63 #: lib/cannery_web/live/container_live/show.ex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "%{name} wurde gelöscht" msgstr "%{name} wurde gelöscht"
@ -57,34 +57,34 @@ msgstr "%{name} erfolgreich aktualisiert"
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "Eine Mail zum Bestätigen ihre Mailadresse wurde Ihnen zugesandt." msgstr "Eine Mail zum Bestätigen ihre Mailadresse wurde Ihnen zugesandt."
#: lib/cannery_web/live/invite_live/index.html.heex:98 #: lib/cannery_web/live/invite_live/index.html.heex:105
#: lib/cannery_web/live/invite_live/index.html.heex:126 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
"Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht " "Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht "
"zurückgenommen werden!" "zurückgenommen werden!"
#: lib/cannery_web/live/container_live/index.html.heex:92 #: lib/cannery_web/live/container_live/index.html.heex:98
#: lib/cannery_web/live/container_live/index.html.heex:135 #: lib/cannery_web/live/container_live/index.html.heex:150
#: lib/cannery_web/live/container_live/show.html.heex:55 #: lib/cannery_web/live/container_live/show.html.heex:55
#: lib/cannery_web/live/tag_live/index.html.heex:63 #: lib/cannery_web/live/tag_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?" msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153 #: lib/cannery_web/live/ammo_group_live/index.html.heex:166
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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?"
@ -151,7 +151,7 @@ msgstr ""
"Sind Sie sicher, dass sie %{tag_name} Tag von %{container_name} entfernen " "Sind Sie sicher, dass sie %{tag_name} Tag von %{container_name} entfernen "
"wollen?" "wollen?"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:36 #: lib/cannery_web/live/container_live/edit_tags_component.ex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "%{name} erfolgreich hinzugefügt" msgstr "%{name} erfolgreich hinzugefügt"
@ -176,13 +176,13 @@ msgstr "Schüsse erfolgreich dokumentiert"
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?" msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?"
#: lib/cannery_web/live/ammo_group_live/show.ex:142 #: lib/cannery_web/live/ammo_group_live/show.ex:143
#: lib/cannery_web/live/range_live/index.html.heex:116 #: lib/cannery_web/live/range_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?" msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?"
#: lib/cannery_web/live/ammo_group_live/show.ex:83 #: lib/cannery_web/live/ammo_group_live/show.ex:80
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -203,12 +203,12 @@ msgstr "%{email} erfolgreich bestätigt."
msgid "Ammo moved to %{name} successfully" msgid "Ammo moved to %{name} successfully"
msgstr "Munition erfolgreich zu %{name} verschoben" msgstr "Munition erfolgreich zu %{name} verschoben"
#: lib/cannery_web/live/invite_live/index.ex:128 #: lib/cannery_web/live/invite_live/index.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copied to clipboard" msgid "Copied to clipboard"
msgstr "Der Zwischenablage hinzugefügt" msgstr "Der Zwischenablage hinzugefügt"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:58 #: lib/cannery_web/live/container_live/edit_tags_component.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} removed successfully" msgid "%{name} removed successfully"
msgstr "%{name} erfolgreich entfernt" msgstr "%{name} erfolgreich entfernt"
@ -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?"
@ -235,12 +235,12 @@ msgid "Language updated successfully."
msgstr "Spracheinstellung gespeichert." msgstr "Spracheinstellung gespeichert."
#: lib/cannery_web/live/ammo_group_live/index.ex:89 #: lib/cannery_web/live/ammo_group_live/index.ex:89
#: lib/cannery_web/live/ammo_group_live/show.ex:55 #: lib/cannery_web/live/ammo_group_live/show.ex:54
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "Munitionsgruppe erfolgreich gelöscht" msgstr "Munitionsgruppe erfolgreich gelöscht"
#: lib/cannery_web/live/range_live/index.ex:95 #: lib/cannery_web/live/range_live/index.ex:94
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo unstaged succesfully" msgid "Ammo unstaged succesfully"
msgstr "Munition erfolgreich demarkiert" msgstr "Munition erfolgreich demarkiert"
@ -257,7 +257,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] "Munitionsgruppe erfolgreich aktualisiert" msgstr[0] "Munitionsgruppe erfolgreich aktualisiert"
msgstr[1] "Munitionsgruppe erfolgreich aktualisiert" msgstr[1] "Munitionsgruppe erfolgreich aktualisiert"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:90 #: lib/cannery_web/live/ammo_type_live/index.html.heex:95
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29 #: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -288,17 +288,17 @@ msgstr "%{name} erfolgreich aktiviert"
msgid "%{invite_name} updated succesfully" msgid "%{invite_name} updated succesfully"
msgstr "%{name} erfolgreich aktualisiert" msgstr "%{name} erfolgreich aktualisiert"
#: lib/cannery_web/live/invite_live/index.ex:140 #: lib/cannery_web/live/invite_live/index.ex:138
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully" msgid "%{user_email} deleted succesfully"
msgstr "%{name} erfolgreich gelöscht" msgstr "%{name} erfolgreich gelöscht"
#: lib/cannery_web/live/invite_live/index.html.heex:48 #: lib/cannery_web/live/invite_live/index.html.heex:53
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete the invite for %{invite_name}?" msgid "Are you sure you want to delete the invite for %{invite_name}?"
msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?" msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?"
#: lib/cannery_web/live/invite_live/index.html.heex:73 #: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to make %{invite_name} unlimited?" msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr "Sind Sie sicher, dass sie %{name} auf unbegrenzt setzen möchten?" msgstr "Sind Sie sicher, dass sie %{name} auf unbegrenzt setzen möchten?"

View File

@ -15,7 +15,7 @@ msgstr ""
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:87 #: lib/cannery_web/live/invite_live/index.html.heex:94
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins" msgid "Admins"
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 ""
@ -263,18 +263,18 @@ msgid "New Tag"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10 #: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71 #: lib/cannery_web/live/ammo_group_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No Ammo" msgid "No Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167 #: lib/cannery_web/live/ammo_type_live/show.html.heex:169
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47 #: lib/cannery_web/live/container_live/index.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No containers" msgid "No containers"
msgstr "" msgstr ""
@ -286,7 +286,7 @@ msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29 #: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10 #: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43 #: lib/cannery_web/live/tag_live/index.html.heex:42
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
@ -295,7 +295,7 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:81 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43 #: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:93 #: lib/cannery_web/live/ammo_group_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30 #: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
@ -366,7 +366,7 @@ msgstr ""
msgid "Steel" msgid "Steel"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:111 #: lib/cannery_web/live/ammo_group_live/show.html.heex:117
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stored in" msgid "Stored in"
msgstr "" msgstr ""
@ -414,7 +414,7 @@ msgstr ""
msgid "Type:" msgid "Type:"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:115 #: lib/cannery_web/live/invite_live/index.html.heex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -429,7 +429,7 @@ msgstr ""
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:68 #: lib/cannery_web/live/container_live/show.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "" msgstr ""
@ -447,7 +447,7 @@ msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:46
#: lib/cannery_web/components/shot_group_table_component.ex:44 #: lib/cannery_web/components/shot_group_table_component.ex:44
#: lib/cannery_web/live/ammo_group_live/show.ex:94 #: lib/cannery_web/live/ammo_group_live/show.ex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:37 #: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -469,7 +469,7 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:42 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:41 #: lib/cannery_web/live/range_live/index.ex:41
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -481,7 +481,7 @@ msgid "New Shot Records"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:48 #: lib/cannery_web/live/range_live/index.html.heex:48
#: lib/cannery_web/live/range_live/index.html.heex:90 #: lib/cannery_web/live/range_live/index.html.heex:89
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No shots recorded" msgid "No shots recorded"
msgstr "" msgstr ""
@ -493,7 +493,7 @@ msgid "Rounds left"
msgstr "" msgstr ""
#: lib/cannery_web/components/shot_group_table_component.ex:42 #: lib/cannery_web/components/shot_group_table_component.ex:42
#: lib/cannery_web/live/ammo_group_live/show.ex:92 #: lib/cannery_web/live/ammo_group_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:62 #: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
@ -506,7 +506,7 @@ msgid "Shot Records"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38 #: lib/cannery_web/live/ammo_group_live/index.ex:38
#: lib/cannery_web/live/ammo_group_live/index.html.heex:118 #: lib/cannery_web/live/ammo_group_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -528,7 +528,7 @@ msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:180 #: lib/cannery_web/components/ammo_type_table_component.ex:180
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/show.html.heex:137 #: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -568,32 +568,24 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:62 #: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -606,19 +598,19 @@ msgid "Reconnecting..."
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:32 #: lib/cannery_web/live/container_live/index.ex:32
#: lib/cannery_web/live/container_live/show.ex:113 #: lib/cannery_web/live/container_live/show.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:69
#: lib/cannery_web/live/container_live/show.ex:114 #: lib/cannery_web/live/container_live/show.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:60 #: lib/cannery_web/components/container_card.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:68 #: lib/cannery_web/live/ammo_type_live/show.html.heex:70
#: lib/cannery_web/live/container_live/show.html.heex:35 #: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
@ -626,7 +618,7 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:222 #: lib/cannery_web/components/ammo_group_table_component.ex:222
#: lib/cannery_web/components/ammo_type_table_component.ex:179 #: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143 #: lib/cannery_web/live/ammo_type_live/show.html.heex:145
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
@ -656,7 +648,7 @@ msgstr ""
msgid "Percentage left:" msgid "Percentage left:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:124 #: lib/cannery_web/live/ammo_group_live/show.html.heex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds used" msgid "Rounds used"
msgstr "" msgstr ""
@ -686,7 +678,7 @@ msgstr ""
msgid "Reset your password" msgid "Reset your password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:41 #: lib/cannery_web/live/ammo_group_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:33 #: lib/cannery_web/live/range_live/index.ex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record Shots" msgid "Record Shots"
@ -697,23 +689,23 @@ msgstr ""
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:124 #: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" 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 ""
@ -751,33 +743,33 @@ msgstr ""
msgid "Catalog" msgid "Catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:45 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:43 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move Ammo" msgid "Move Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:113 #: lib/cannery_web/live/container_live/show.html.heex:115
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:44 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show Ammo" msgid "Show Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:116 #: lib/cannery_web/live/ammo_group_live/show.html.heex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "This ammo is not in a container" msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:55 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96 #: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:26 #: lib/cannery_web/live/container_live/show.html.heex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -804,10 +796,10 @@ msgstr ""
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64 #: lib/cannery_web/live/ammo_group_live/index.html.heex:63
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39 #: lib/cannery_web/live/ammo_type_live/index.html.heex:38
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153 #: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/show.html.heex:99 #: lib/cannery_web/live/container_live/show.html.heex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
@ -818,7 +810,7 @@ msgstr ""
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:136 #: lib/cannery_web/live/range_live/index.ex:134
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
@ -835,9 +827,9 @@ msgstr ""
msgid "Rounds" msgid "Rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159 #: lib/cannery_web/live/ammo_type_live/show.html.heex:161
#: lib/cannery_web/live/container_live/index.html.heex:39 #: lib/cannery_web/live/container_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -847,7 +839,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:112 #: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -857,7 +849,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:84 #: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "" msgstr ""
@ -867,7 +859,7 @@ msgstr ""
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -877,7 +869,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:76 #: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -988,13 +980,13 @@ msgid "UPC:"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:120 #: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:133 #: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average CPR" msgid "Average CPR"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28 #: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:120 #: lib/cannery_web/live/ammo_type_live/show.ex:118
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}" msgid "Edit %{ammo_type_name}"
msgstr "" msgstr ""
@ -1073,37 +1065,37 @@ msgid "Edit ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8 #: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46 #: lib/cannery_web/live/ammo_type_live/index.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No Ammo types" msgid "No Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33 #: lib/cannery_web/live/ammo_type_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search catalog" msgid "Search catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58 #: lib/cannery_web/live/ammo_group_live/index.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search ammo" msgid "Search ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33 #: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search containers" msgid "Search containers"
msgstr "" msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36 #: lib/cannery_web/live/tag_live/index.html.heex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search tags" msgid "Search tags"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:83 #: lib/cannery_web/live/range_live/index.html.heex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
@ -1161,12 +1153,12 @@ msgstr ""
msgid "Welcome to Cannery" msgid "Welcome to Cannery"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
@ -1180,3 +1172,39 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153
#, elixir-autogen, elixir-format
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:168
#: lib/cannery_web/live/ammo_group_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:141
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:129
#, elixir-autogen, elixir-format
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -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 ""

View File

@ -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 ""
@ -136,7 +136,7 @@ msgstr ""
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:76 #: lib/cannery_web/live/container_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "" msgstr ""
@ -156,8 +156,8 @@ msgstr ""
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:101 #: lib/cannery_web/live/ammo_group_live/index.html.heex:102
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:107
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record shots" msgid "Record shots"
@ -168,7 +168,7 @@ msgstr ""
msgid "Add another container!" msgid "Add another container!"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:94 #: lib/cannery_web/live/ammo_group_live/show.html.heex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move containers" msgid "Move containers"
msgstr "" msgstr ""
@ -178,7 +178,7 @@ msgstr ""
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:30 #: lib/cannery_web/live/invite_live/index.html.heex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "" msgstr ""
@ -193,17 +193,17 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:60 #: lib/cannery_web/live/ammo_group_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View in Catalog" msgid "View in Catalog"
msgstr "" msgstr ""
@ -218,24 +218,128 @@ msgstr ""
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:78 #: lib/cannery_web/live/invite_live/index.html.heex:85
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:93
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage for range" msgid "Stage for range"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85 #: lib/cannery_web/live/ammo_group_live/show.html.heex:92
#: lib/cannery_web/live/range_live/index.html.heex:30 #: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:86
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:102
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:153
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:145
#: lib/cannery_web/live/range_live/index.html.heex:122
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:76
#: lib/cannery_web/live/container_live/index.html.heex:128
#: lib/cannery_web/live/container_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:51
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:66
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:41
#, elixir-autogen, elixir-format
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:105
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:64
#: lib/cannery_web/live/container_live/index.html.heex:117
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""

View File

@ -15,7 +15,7 @@ msgstr ""
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:87 #: lib/cannery_web/live/invite_live/index.html.heex:94
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins" msgid "Admins"
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 ""
@ -263,18 +263,18 @@ msgid "New Tag"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10 #: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71 #: lib/cannery_web/live/ammo_group_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No Ammo" msgid "No Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167 #: lib/cannery_web/live/ammo_type_live/show.html.heex:169
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47 #: lib/cannery_web/live/container_live/index.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No containers" msgid "No containers"
msgstr "" msgstr ""
@ -286,7 +286,7 @@ msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29 #: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10 #: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43 #: lib/cannery_web/live/tag_live/index.html.heex:42
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
@ -295,7 +295,7 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:81 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43 #: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:93 #: lib/cannery_web/live/ammo_group_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30 #: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
@ -366,7 +366,7 @@ msgstr ""
msgid "Steel" msgid "Steel"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:111 #: lib/cannery_web/live/ammo_group_live/show.html.heex:117
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stored in" msgid "Stored in"
msgstr "" msgstr ""
@ -414,7 +414,7 @@ msgstr ""
msgid "Type:" msgid "Type:"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:115 #: lib/cannery_web/live/invite_live/index.html.heex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -429,7 +429,7 @@ msgstr ""
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:68 #: lib/cannery_web/live/container_live/show.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "" msgstr ""
@ -447,7 +447,7 @@ msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:46
#: lib/cannery_web/components/shot_group_table_component.ex:44 #: lib/cannery_web/components/shot_group_table_component.ex:44
#: lib/cannery_web/live/ammo_group_live/show.ex:94 #: lib/cannery_web/live/ammo_group_live/show.ex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:37 #: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -469,7 +469,7 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:42 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:41 #: lib/cannery_web/live/range_live/index.ex:41
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -481,7 +481,7 @@ msgid "New Shot Records"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:48 #: lib/cannery_web/live/range_live/index.html.heex:48
#: lib/cannery_web/live/range_live/index.html.heex:90 #: lib/cannery_web/live/range_live/index.html.heex:89
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No shots recorded" msgid "No shots recorded"
msgstr "" msgstr ""
@ -493,7 +493,7 @@ msgid "Rounds left"
msgstr "" msgstr ""
#: lib/cannery_web/components/shot_group_table_component.ex:42 #: lib/cannery_web/components/shot_group_table_component.ex:42
#: lib/cannery_web/live/ammo_group_live/show.ex:92 #: lib/cannery_web/live/ammo_group_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:62 #: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
@ -506,7 +506,7 @@ msgid "Shot Records"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38 #: lib/cannery_web/live/ammo_group_live/index.ex:38
#: lib/cannery_web/live/ammo_group_live/index.html.heex:118 #: lib/cannery_web/live/ammo_group_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -528,7 +528,7 @@ msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:180 #: lib/cannery_web/components/ammo_type_table_component.ex:180
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/show.html.heex:137 #: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -568,32 +568,24 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:62 #: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -606,19 +598,19 @@ msgid "Reconnecting..."
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:32 #: lib/cannery_web/live/container_live/index.ex:32
#: lib/cannery_web/live/container_live/show.ex:113 #: lib/cannery_web/live/container_live/show.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:69
#: lib/cannery_web/live/container_live/show.ex:114 #: lib/cannery_web/live/container_live/show.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:60 #: lib/cannery_web/components/container_card.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:68 #: lib/cannery_web/live/ammo_type_live/show.html.heex:70
#: lib/cannery_web/live/container_live/show.html.heex:35 #: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds:" msgid "Rounds:"
@ -626,7 +618,7 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:222 #: lib/cannery_web/components/ammo_group_table_component.ex:222
#: lib/cannery_web/components/ammo_type_table_component.ex:179 #: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143 #: lib/cannery_web/live/ammo_type_live/show.html.heex:145
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
@ -656,7 +648,7 @@ msgstr ""
msgid "Percentage left:" msgid "Percentage left:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:124 #: lib/cannery_web/live/ammo_group_live/show.html.heex:130
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds used" msgid "Rounds used"
msgstr "" msgstr ""
@ -686,7 +678,7 @@ msgstr ""
msgid "Reset your password" msgid "Reset your password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:41 #: lib/cannery_web/live/ammo_group_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:33 #: lib/cannery_web/live/range_live/index.ex:33
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Record Shots" msgid "Record Shots"
@ -697,23 +689,23 @@ msgstr ""
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:124 #: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" 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 ""
@ -751,33 +743,33 @@ msgstr ""
msgid "Catalog" msgid "Catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:45 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:43 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Move Ammo" msgid "Move Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:113 #: lib/cannery_web/live/container_live/show.html.heex:115
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:44 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Show Ammo" msgid "Show Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:116 #: lib/cannery_web/live/ammo_group_live/show.html.heex:122
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "This ammo is not in a container" msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:55 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96 #: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:26 #: lib/cannery_web/live/container_live/show.html.heex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -804,10 +796,10 @@ msgstr ""
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64 #: lib/cannery_web/live/ammo_group_live/index.html.heex:63
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39 #: lib/cannery_web/live/ammo_type_live/index.html.heex:38
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153 #: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/show.html.heex:99 #: lib/cannery_web/live/container_live/show.html.heex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
@ -818,7 +810,7 @@ msgstr ""
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:136 #: lib/cannery_web/live/range_live/index.ex:134
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
@ -835,9 +827,9 @@ msgstr ""
msgid "Rounds" msgid "Rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159 #: lib/cannery_web/live/ammo_type_live/show.html.heex:161
#: lib/cannery_web/live/container_live/index.html.heex:39 #: lib/cannery_web/live/container_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -847,7 +839,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:112 #: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -857,7 +849,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:84 #: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "" msgstr ""
@ -867,7 +859,7 @@ msgstr ""
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -877,7 +869,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:76 #: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -988,13 +980,13 @@ msgid "UPC:"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:120 #: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:133 #: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average CPR" msgid "Average CPR"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28 #: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:120 #: lib/cannery_web/live/ammo_type_live/show.ex:118
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}" msgid "Edit %{ammo_type_name}"
msgstr "" msgstr ""
@ -1073,37 +1065,37 @@ msgid "Edit ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8 #: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46 #: lib/cannery_web/live/ammo_type_live/index.html.heex:45
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types" msgid "No Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33 #: lib/cannery_web/live/ammo_type_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search catalog" msgid "Search catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58 #: lib/cannery_web/live/ammo_group_live/index.html.heex:57
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo" msgid "Search ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33 #: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search containers" msgid "Search containers"
msgstr "" msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36 #: lib/cannery_web/live/tag_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Search tags" msgid "Search tags"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:83 #: lib/cannery_web/live/range_live/index.html.heex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
@ -1161,12 +1153,12 @@ msgstr ""
msgid "Welcome to Cannery" msgid "Welcome to Cannery"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
@ -1180,3 +1172,39 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153
#, elixir-autogen, elixir-format
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:168
#: lib/cannery_web/live/ammo_group_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:141
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:129
#, elixir-autogen, elixir-format
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -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 ""

View File

@ -16,7 +16,7 @@ msgid "Container must be empty before deleting"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:92 #: lib/cannery_web/live/container_live/index.ex:92
#: lib/cannery_web/live/container_live/show.ex:73 #: lib/cannery_web/live/container_live/show.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
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 ""
@ -134,29 +134,23 @@ msgstr ""
msgid "Tag not found" msgid "Tag not found"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30 #: lib/cannery_web/live/container_live/edit_tags_component.ex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be added" msgid "Tag could not be added"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:122 #: lib/cannery/activity_log/shot_group.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:82
#: lib/cannery/activity_log/shot_group.ex:118
#, elixir-autogen, elixir-format
msgid "Count must be less than %{count}"
msgstr ""
#: lib/cannery_web/controllers/user_auth.ex:39 #: lib/cannery_web/controllers/user_auth.ex:39
#: lib/cannery_web/controllers/user_auth.ex:161 #: lib/cannery_web/controllers/user_auth.ex:161
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You must confirm your account and log in to access this page." msgid "You must confirm your account and log in to access this page."
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:52 #: lib/cannery_web/live/container_live/edit_tags_component.ex:72
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "" msgstr ""
@ -190,3 +184,9 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack" msgid "Please select a valid user and ammo pack"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:83
#: lib/cannery/activity_log/shot_group.ex:121
#, elixir-autogen, elixir-format, fuzzy
msgid "Count must be less than %{count} shots"
msgstr ""

View File

@ -26,7 +26,7 @@ msgid "%{name} deleted succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:85 #: lib/cannery_web/live/container_live/index.ex:85
#: lib/cannery_web/live/container_live/show.ex:63 #: lib/cannery_web/live/container_live/show.ex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "" msgstr ""
@ -44,32 +44,32 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:98 #: lib/cannery_web/live/invite_live/index.html.heex:105
#: lib/cannery_web/live/invite_live/index.html.heex:126 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:92 #: lib/cannery_web/live/container_live/index.html.heex:98
#: lib/cannery_web/live/container_live/index.html.heex:135 #: lib/cannery_web/live/container_live/index.html.heex:150
#: lib/cannery_web/live/container_live/show.html.heex:55 #: lib/cannery_web/live/container_live/show.html.heex:55
#: lib/cannery_web/live/tag_live/index.html.heex:63 #: lib/cannery_web/live/tag_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153 #: lib/cannery_web/live/ammo_group_live/index.html.heex:166
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
@ -130,7 +130,7 @@ msgstr ""
msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?" msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:36 #: lib/cannery_web/live/container_live/edit_tags_component.ex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "" msgstr ""
@ -155,13 +155,13 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:142 #: lib/cannery_web/live/ammo_group_live/show.ex:143
#: lib/cannery_web/live/range_live/index.html.heex:116 #: lib/cannery_web/live/range_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:83 #: lib/cannery_web/live/ammo_group_live/show.ex:80
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -182,12 +182,12 @@ msgstr ""
msgid "Ammo moved to %{name} successfully" msgid "Ammo moved to %{name} successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:128 #: lib/cannery_web/live/invite_live/index.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copied to clipboard" msgid "Copied to clipboard"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:58 #: lib/cannery_web/live/container_live/edit_tags_component.ex:77
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "%{name} removed successfully" msgid "%{name} removed successfully"
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 ""
@ -214,12 +214,12 @@ msgid "Language updated successfully."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:89 #: lib/cannery_web/live/ammo_group_live/index.ex:89
#: lib/cannery_web/live/ammo_group_live/show.ex:55 #: lib/cannery_web/live/ammo_group_live/show.ex:54
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:95 #: lib/cannery_web/live/range_live/index.ex:94
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo unstaged succesfully" msgid "Ammo unstaged succesfully"
msgstr "" msgstr ""
@ -236,7 +236,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:90 #: lib/cannery_web/live/ammo_type_live/index.html.heex:95
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29 #: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -267,17 +267,17 @@ msgstr ""
msgid "%{invite_name} updated succesfully" msgid "%{invite_name} updated succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:140 #: lib/cannery_web/live/invite_live/index.ex:138
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully" msgid "%{user_email} deleted succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:48 #: lib/cannery_web/live/invite_live/index.html.heex:53
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete the invite for %{invite_name}?" msgid "Are you sure you want to delete the invite for %{invite_name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:73 #: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to make %{invite_name} unlimited?" msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr "" msgstr ""

View File

@ -16,7 +16,7 @@ msgid "Container must be empty before deleting"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:92 #: lib/cannery_web/live/container_live/index.ex:92
#: lib/cannery_web/live/container_live/show.ex:73 #: lib/cannery_web/live/container_live/show.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
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 ""
@ -133,29 +133,23 @@ msgstr ""
msgid "Tag not found" msgid "Tag not found"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30 #: lib/cannery_web/live/container_live/edit_tags_component.ex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be added" msgid "Tag could not be added"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:122 #: lib/cannery/activity_log/shot_group.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:82
#: lib/cannery/activity_log/shot_group.ex:118
#, elixir-autogen, elixir-format
msgid "Count must be less than %{count}"
msgstr ""
#: lib/cannery_web/controllers/user_auth.ex:39 #: lib/cannery_web/controllers/user_auth.ex:39
#: lib/cannery_web/controllers/user_auth.ex:161 #: lib/cannery_web/controllers/user_auth.ex:161
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You must confirm your account and log in to access this page." msgid "You must confirm your account and log in to access this page."
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:52 #: lib/cannery_web/live/container_live/edit_tags_component.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "" msgstr ""
@ -189,3 +183,9 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo pack" msgid "Please select a valid user and ammo pack"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:83
#: lib/cannery/activity_log/shot_group.ex:121
#, elixir-autogen, elixir-format
msgid "Count must be less than %{count} shots"
msgstr ""

View File

@ -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"
@ -149,7 +149,7 @@ msgstr "Guardar"
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "Enviar instrucciones para reestablecer contraseña" msgstr "Enviar instrucciones para reestablecer contraseña"
#: lib/cannery_web/live/container_live/show.html.heex:76 #: lib/cannery_web/live/container_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "¿Por qué no añadir una?" msgstr "¿Por qué no añadir una?"
@ -169,8 +169,8 @@ msgstr "Preparar munición"
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "¿Por qué no preparar parte para disparar?" msgstr "¿Por qué no preparar parte para disparar?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:101 #: lib/cannery_web/live/ammo_group_live/index.html.heex:102
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:107
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record shots" msgid "Record shots"
@ -181,7 +181,7 @@ msgstr "Tiros récord"
msgid "Add another container!" msgid "Add another container!"
msgstr "¡Añade otro contenedor!" msgstr "¡Añade otro contenedor!"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:94 #: lib/cannery_web/live/ammo_group_live/show.html.heex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move containers" msgid "Move containers"
msgstr "Mover contenedores" msgstr "Mover contenedores"
@ -191,7 +191,7 @@ msgstr "Mover contenedores"
msgid "Select" msgid "Select"
msgstr "Seleccionar" msgstr "Seleccionar"
#: lib/cannery_web/live/invite_live/index.html.heex:30 #: lib/cannery_web/live/invite_live/index.html.heex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copiar al portapapeles" msgstr "Copiar al portapapeles"
@ -206,17 +206,17 @@ 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"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:60 #: lib/cannery_web/live/ammo_group_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View in Catalog" msgid "View in Catalog"
msgstr "Ver en Catalogo" msgstr "Ver en Catalogo"
@ -231,24 +231,128 @@ msgstr "añade primero un tipo de munición"
msgid "Move ammo" msgid "Move ammo"
msgstr "Mover munición" msgstr "Mover munición"
#: lib/cannery_web/live/invite_live/index.html.heex:78 #: lib/cannery_web/live/invite_live/index.html.heex:85
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "Activar ilimitados" msgstr "Activar ilimitados"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:93
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage for range" msgid "Stage for range"
msgstr "Preparar para el campo de tiro" msgstr "Preparar para el campo de tiro"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85 #: lib/cannery_web/live/ammo_group_live/show.html.heex:92
#: lib/cannery_web/live/range_live/index.html.heex:30 #: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:86
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:102
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:153
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:145
#: lib/cannery_web/live/range_live/index.html.heex:122
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:76
#: lib/cannery_web/live/container_live/index.html.heex:128
#: lib/cannery_web/live/container_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:51
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:66
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:41
#, elixir-autogen, elixir-format
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:105
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr "Preparar munición"
#: lib/cannery_web/live/container_live/index.html.heex:64
#: lib/cannery_web/live/container_live/index.html.heex:117
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""

View File

@ -19,7 +19,7 @@ msgstr ""
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "Acceso desde cualquier dispositivo con conexión a internet" msgstr "Acceso desde cualquier dispositivo con conexión a internet"
#: lib/cannery_web/live/invite_live/index.html.heex:87 #: lib/cannery_web/live/invite_live/index.html.heex:94
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins" msgid "Admins"
msgstr "Administradores" msgstr "Administradores"
@ -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"
@ -267,18 +267,18 @@ msgid "New Tag"
msgstr "Nueva Etiqueta" msgstr "Nueva Etiqueta"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10 #: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71 #: lib/cannery_web/live/ammo_group_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No Ammo" msgid "No Ammo"
msgstr "Sin Munición" msgstr "Sin Munición"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167 #: lib/cannery_web/live/ammo_type_live/show.html.heex:169
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "Sin munición para este tipo" msgstr "Sin munición para este tipo"
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47 #: lib/cannery_web/live/container_live/index.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No containers" msgid "No containers"
msgstr "Sin contenedores" msgstr "Sin contenedores"
@ -290,7 +290,7 @@ msgstr "Sin invitaciones"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29 #: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10 #: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43 #: lib/cannery_web/live/tag_live/index.html.heex:42
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags" msgid "No tags"
msgstr "Sin etiquetas" msgstr "Sin etiquetas"
@ -299,7 +299,7 @@ msgstr "Sin etiquetas"
#: lib/cannery_web/components/ammo_group_table_component.ex:81 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43 #: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:93 #: lib/cannery_web/live/ammo_group_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30 #: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
@ -372,7 +372,7 @@ msgstr "Simple:"
msgid "Steel" msgid "Steel"
msgstr "Acero" msgstr "Acero"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:111 #: lib/cannery_web/live/ammo_group_live/show.html.heex:117
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stored in" msgid "Stored in"
msgstr "Guardado en" msgstr "Guardado en"
@ -421,7 +421,7 @@ msgstr "Tipo"
msgid "Type:" msgid "Type:"
msgstr "Tipo:" msgstr "Tipo:"
#: lib/cannery_web/live/invite_live/index.html.heex:115 #: lib/cannery_web/live/invite_live/index.html.heex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Users" msgid "Users"
msgstr "Usuarios" msgstr "Usuarios"
@ -436,7 +436,7 @@ msgstr "Usos restantes"
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "Tus datos se quedan contigo, sin excepciones" msgstr "Tus datos se quedan contigo, sin excepciones"
#: lib/cannery_web/live/container_live/show.html.heex:68 #: lib/cannery_web/live/container_live/show.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "Contenedor sin etiquetas" msgstr "Contenedor sin etiquetas"
@ -454,7 +454,7 @@ msgstr "Día de disparar"
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:46
#: lib/cannery_web/components/shot_group_table_component.ex:44 #: lib/cannery_web/components/shot_group_table_component.ex:44
#: lib/cannery_web/live/ammo_group_live/show.ex:94 #: lib/cannery_web/live/ammo_group_live/show.ex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:37 #: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -476,7 +476,7 @@ msgstr "No hay munición preparada"
msgid "Record shots" msgid "Record shots"
msgstr "Tiros récord" msgstr "Tiros récord"
#: lib/cannery_web/live/ammo_group_live/show.ex:42 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:41 #: lib/cannery_web/live/range_live/index.ex:41
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -488,7 +488,7 @@ msgid "New Shot Records"
msgstr "Nuevos Tiros Récord" msgstr "Nuevos Tiros Récord"
#: lib/cannery_web/live/range_live/index.html.heex:48 #: lib/cannery_web/live/range_live/index.html.heex:48
#: lib/cannery_web/live/range_live/index.html.heex:90 #: lib/cannery_web/live/range_live/index.html.heex:89
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No shots recorded" msgid "No shots recorded"
msgstr "No se han grabado tiros" msgstr "No se han grabado tiros"
@ -500,7 +500,7 @@ msgid "Rounds left"
msgstr "Balas restantes" msgstr "Balas restantes"
#: lib/cannery_web/components/shot_group_table_component.ex:42 #: lib/cannery_web/components/shot_group_table_component.ex:42
#: lib/cannery_web/live/ammo_group_live/show.ex:92 #: lib/cannery_web/live/ammo_group_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:62 #: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
@ -513,7 +513,7 @@ msgid "Shot Records"
msgstr "Récords de Tiro" msgstr "Récords de Tiro"
#: lib/cannery_web/live/ammo_group_live/index.ex:38 #: lib/cannery_web/live/ammo_group_live/index.ex:38
#: lib/cannery_web/live/ammo_group_live/index.html.heex:118 #: lib/cannery_web/live/ammo_group_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "Mover munición" msgstr "Mover munición"
@ -535,7 +535,7 @@ msgstr "Registro de tiros"
#: lib/cannery_web/components/ammo_type_table_component.ex:180 #: lib/cannery_web/components/ammo_type_table_component.ex:180
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/show.html.heex:137 #: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "$%{amount}" msgstr "$%{amount}"
@ -575,32 +575,24 @@ 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"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr "Preparar"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr "Retirar"
#: lib/cannery_web/components/ammo_type_table_component.ex:62 #: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -613,19 +605,19 @@ msgid "Reconnecting..."
msgstr "Reconectando..." msgstr "Reconectando..."
#: lib/cannery_web/live/container_live/index.ex:32 #: lib/cannery_web/live/container_live/index.ex:32
#: lib/cannery_web/live/container_live/show.ex:113 #: lib/cannery_web/live/container_live/show.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "Editar %{name}" msgstr "Editar %{name}"
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:69
#: lib/cannery_web/live/container_live/show.ex:114 #: lib/cannery_web/live/container_live/show.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "Editar etiquetas de %{name}" msgstr "Editar etiquetas de %{name}"
#: lib/cannery_web/components/container_card.ex:60 #: lib/cannery_web/components/container_card.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:68 #: lib/cannery_web/live/ammo_type_live/show.html.heex:70
#: lib/cannery_web/live/container_live/show.html.heex:35 #: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
@ -633,7 +625,7 @@ msgstr "Balas:"
#: lib/cannery_web/components/ammo_group_table_component.ex:222 #: lib/cannery_web/components/ammo_group_table_component.ex:222
#: lib/cannery_web/components/ammo_type_table_component.ex:179 #: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143 #: lib/cannery_web/live/ammo_type_live/show.html.heex:145
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "No hay información de coste" msgstr "No hay información de coste"
@ -663,7 +655,7 @@ msgstr "Cantidad original:"
msgid "Percentage left:" msgid "Percentage left:"
msgstr "Pocentaje restante:" msgstr "Pocentaje restante:"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:124 #: lib/cannery_web/live/ammo_group_live/show.html.heex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds used" msgid "Rounds used"
msgstr "Balas usadas" msgstr "Balas usadas"
@ -693,7 +685,7 @@ msgstr "Registrarse"
msgid "Reset your password" msgid "Reset your password"
msgstr "Reestablecer contraseña" msgstr "Reestablecer contraseña"
#: lib/cannery_web/live/ammo_group_live/show.ex:41 #: lib/cannery_web/live/ammo_group_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:33 #: lib/cannery_web/live/range_live/index.ex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record Shots" msgid "Record Shots"
@ -704,23 +696,23 @@ msgstr "Tiros Récord"
msgid "Copies" msgid "Copies"
msgstr "Copias" msgstr "Copias"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:124 #: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" 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"
@ -758,33 +750,33 @@ msgstr "Ver código fuente"
msgid "Catalog" msgid "Catalog"
msgstr "Catálogo" msgstr "Catálogo"
#: lib/cannery_web/live/ammo_group_live/show.ex:45 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "Editar Munición" msgstr "Editar Munición"
#: lib/cannery_web/live/ammo_group_live/show.ex:43 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move Ammo" msgid "Move Ammo"
msgstr "Mover Munición" msgstr "Mover Munición"
#: lib/cannery_web/live/container_live/show.html.heex:113 #: lib/cannery_web/live/container_live/show.html.heex:115
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "No hay munición en este contenedor" msgstr "No hay munición en este contenedor"
#: lib/cannery_web/live/ammo_group_live/show.ex:44 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show Ammo" msgid "Show Ammo"
msgstr "Mostrar Munición" msgstr "Mostrar Munición"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:116 #: lib/cannery_web/live/ammo_group_live/show.html.heex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "This ammo is not in a container" msgid "This ammo is not in a container"
msgstr "Esta munición no está en un contenedor" msgstr "Esta munición no está en un contenedor"
#: lib/cannery_web/components/container_card.ex:55 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96 #: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:26 #: lib/cannery_web/live/container_live/show.html.heex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -812,10 +804,10 @@ msgstr ""
msgid "Container:" msgid "Container:"
msgstr "Contenedor:" msgstr "Contenedor:"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64 #: lib/cannery_web/live/ammo_group_live/index.html.heex:63
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39 #: lib/cannery_web/live/ammo_type_live/index.html.heex:38
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153 #: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/show.html.heex:99 #: lib/cannery_web/live/container_live/show.html.heex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "Mostrar usadas" msgstr "Mostrar usadas"
@ -826,7 +818,7 @@ msgstr "Mostrar usadas"
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "%{percentage}%" msgstr "%{percentage}%"
#: lib/cannery_web/live/range_live/index.ex:136 #: lib/cannery_web/live/range_live/index.ex:134
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "Balas disparadas: %{count}" msgstr "Balas disparadas: %{count}"
@ -843,9 +835,9 @@ msgstr "Paquetes"
msgid "Rounds" msgid "Rounds"
msgstr "Balas" msgstr "Balas"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159 #: lib/cannery_web/live/ammo_type_live/show.html.heex:161
#: lib/cannery_web/live/container_live/index.html.heex:39 #: lib/cannery_web/live/container_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "Ver como tabla" msgstr "Ver como tabla"
@ -855,7 +847,7 @@ msgstr "Ver como tabla"
msgid "Total ever packs" msgid "Total ever packs"
msgstr "Paquetes totales" msgstr "Paquetes totales"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:112 #: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "Paquetes totales:" msgstr "Paquetes totales:"
@ -865,7 +857,7 @@ msgstr "Paquetes totales:"
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "Balas totales" msgstr "Balas totales"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:84 #: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "Balas totales:" msgstr "Balas totales:"
@ -875,7 +867,7 @@ msgstr "Balas totales:"
msgid "Used packs" msgid "Used packs"
msgstr "Paquetes usados" msgstr "Paquetes usados"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "Paquetes usados:" msgstr "Paquetes usados:"
@ -885,7 +877,7 @@ msgstr "Paquetes usados:"
msgid "Used rounds" msgid "Used rounds"
msgstr "Balas usadas" msgstr "Balas usadas"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:76 #: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used rounds:" msgid "Used rounds:"
msgstr "Balas usadas:" msgstr "Balas usadas:"
@ -996,13 +988,13 @@ msgid "UPC:"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:120 #: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:133 #: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average CPR" msgid "Average CPR"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28 #: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:120 #: lib/cannery_web/live/ammo_type_live/show.ex:118
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}" msgid "Edit %{ammo_type_name}"
msgstr "Editar %{ammo_type_name}" msgstr "Editar %{ammo_type_name}"
@ -1081,37 +1073,37 @@ msgid "Edit ammo"
msgstr "Editar munición" msgstr "Editar munición"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8 #: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46 #: lib/cannery_web/live/ammo_type_live/index.html.heex:45
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types" msgid "No Ammo types"
msgstr "Sin tipo de Munición" msgstr "Sin tipo de Munición"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33 #: lib/cannery_web/live/ammo_type_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search catalog" msgid "Search catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58 #: lib/cannery_web/live/ammo_group_live/index.html.heex:57
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo" msgid "Search ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33 #: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search containers" msgid "Search containers"
msgstr "" msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36 #: lib/cannery_web/live/tag_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Search tags" msgid "Search tags"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:83 #: lib/cannery_web/live/range_live/index.html.heex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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,12 +1172,12 @@ msgstr ""
msgid "Welcome to Cannery" msgid "Welcome to Cannery"
msgstr "Bienvenide a %{name}" msgstr "Bienvenide a %{name}"
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
@ -1199,3 +1191,39 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153
#, elixir-autogen, elixir-format
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:168
#: lib/cannery_web/live/ammo_group_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:141
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:129
#, elixir-autogen, elixir-format
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -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}!"

View File

@ -29,7 +29,7 @@ msgid "Container must be empty before deleting"
msgstr "El contenedor debe estar vacío antes de ser borrado" msgstr "El contenedor debe estar vacío antes de ser borrado"
#: lib/cannery_web/live/container_live/index.ex:92 #: lib/cannery_web/live/container_live/index.ex:92
#: lib/cannery_web/live/container_live/show.ex:73 #: lib/cannery_web/live/container_live/show.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "No se pudo eliminar %{name}: %{error}" msgstr "No se pudo eliminar %{name}: %{error}"
@ -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 ""
@ -149,29 +149,23 @@ msgstr "debe tener el signo @ y no contener espacios"
msgid "Tag not found" msgid "Tag not found"
msgstr "Etiqueta no encontrada" msgstr "Etiqueta no encontrada"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30 #: lib/cannery_web/live/container_live/edit_tags_component.ex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be added" msgid "Tag could not be added"
msgstr "No se ha podido añadir la etiqueta" msgstr "No se ha podido añadir la etiqueta"
#: lib/cannery/activity_log/shot_group.ex:122 #: lib/cannery/activity_log/shot_group.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "El recuento debe dar al menos 1" msgstr "El recuento debe dar al menos 1"
#: lib/cannery/activity_log/shot_group.ex:82
#: lib/cannery/activity_log/shot_group.ex:118
#, elixir-autogen, elixir-format
msgid "Count must be less than %{count}"
msgstr "El recuento debe ser menos de %{count}"
#: lib/cannery_web/controllers/user_auth.ex:39 #: lib/cannery_web/controllers/user_auth.ex:39
#: lib/cannery_web/controllers/user_auth.ex:161 #: lib/cannery_web/controllers/user_auth.ex:161
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You must confirm your account and log in to access this page." msgid "You must confirm your account and log in to access this page."
msgstr "Debe confirmar su cuenta e iniciar sesión para acceder a esta página." msgstr "Debe confirmar su cuenta e iniciar sesión para acceder a esta página."
#: lib/cannery_web/live/container_live/edit_tags_component.ex:52 #: lib/cannery_web/live/container_live/edit_tags_component.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "La etiqueta no pudo ser eliminada" msgstr "La etiqueta no pudo ser eliminada"
@ -205,3 +199,9 @@ msgstr "Su navegador no es compatible con el elemento lienzo."
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo pack" msgid "Please select a valid user and ammo pack"
msgstr "Por favor escoja un usuario y tipo de munición valido" msgstr "Por favor escoja un usuario y tipo de munición valido"
#: lib/cannery/activity_log/shot_group.ex:83
#: lib/cannery/activity_log/shot_group.ex:121
#, elixir-autogen, elixir-format, fuzzy
msgid "Count must be less than %{count} shots"
msgstr "El recuento debe ser menos de %{count}"

View File

@ -39,7 +39,7 @@ msgid "%{name} deleted succesfully"
msgstr "%{name} borrado exitosamente" msgstr "%{name} borrado exitosamente"
#: lib/cannery_web/live/container_live/index.ex:85 #: lib/cannery_web/live/container_live/index.ex:85
#: lib/cannery_web/live/container_live/show.ex:63 #: lib/cannery_web/live/container_live/show.ex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "%{name} ha sido borrado" msgstr "%{name} ha sido borrado"
@ -59,32 +59,32 @@ msgstr ""
"Un enlace para confirmar el correo electrónico ha sido enviado a la nueva " "Un enlace para confirmar el correo electrónico ha sido enviado a la nueva "
"dirección." "dirección."
#: lib/cannery_web/live/invite_live/index.html.heex:98 #: lib/cannery_web/live/invite_live/index.html.heex:105
#: lib/cannery_web/live/invite_live/index.html.heex:126 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!" msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!"
#: lib/cannery_web/live/container_live/index.html.heex:92 #: lib/cannery_web/live/container_live/index.html.heex:98
#: lib/cannery_web/live/container_live/index.html.heex:135 #: lib/cannery_web/live/container_live/index.html.heex:150
#: lib/cannery_web/live/container_live/show.html.heex:55 #: lib/cannery_web/live/container_live/show.html.heex:55
#: lib/cannery_web/live/tag_live/index.html.heex:63 #: lib/cannery_web/live/tag_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
msgstr "Está seguro que desea eliminar %{name}?" msgstr "Está seguro que desea eliminar %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153 #: lib/cannery_web/live/ammo_group_live/index.html.heex:166
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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?"
@ -150,7 +150,7 @@ msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name
msgstr "" msgstr ""
"Está seguro que desea remover la etiqueta %{tag_name} de %{container_name}?" "Está seguro que desea remover la etiqueta %{tag_name} de %{container_name}?"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:36 #: lib/cannery_web/live/container_live/edit_tags_component.ex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "%{name} añadido exitosamente" msgstr "%{name} añadido exitosamente"
@ -175,13 +175,13 @@ msgstr "Tiros registrados exitosamente"
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "Está seguro que desea desmontar esta munición?" msgstr "Está seguro que desea desmontar esta munición?"
#: lib/cannery_web/live/ammo_group_live/show.ex:142 #: lib/cannery_web/live/ammo_group_live/show.ex:143
#: lib/cannery_web/live/range_live/index.html.heex:116 #: lib/cannery_web/live/range_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "¿Está segure que quiere borrar este récord de disparos?" msgstr "¿Está segure que quiere borrar este récord de disparos?"
#: lib/cannery_web/live/ammo_group_live/show.ex:83 #: lib/cannery_web/live/ammo_group_live/show.ex:80
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -202,12 +202,12 @@ msgstr "%{email} confirmado exitosamente."
msgid "Ammo moved to %{name} successfully" msgid "Ammo moved to %{name} successfully"
msgstr "Munición movida a %{name} exitosamente" msgstr "Munición movida a %{name} exitosamente"
#: lib/cannery_web/live/invite_live/index.ex:128 #: lib/cannery_web/live/invite_live/index.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copied to clipboard" msgid "Copied to clipboard"
msgstr "Copiado al portapapeles" msgstr "Copiado al portapapeles"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:58 #: lib/cannery_web/live/container_live/edit_tags_component.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} removed successfully" msgid "%{name} removed successfully"
msgstr "%{name} eliminado exitosamente" msgstr "%{name} eliminado exitosamente"
@ -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?"
@ -234,12 +234,12 @@ msgid "Language updated successfully."
msgstr "Idioma cambiado exitosamente." msgstr "Idioma cambiado exitosamente."
#: lib/cannery_web/live/ammo_group_live/index.ex:89 #: lib/cannery_web/live/ammo_group_live/index.ex:89
#: lib/cannery_web/live/ammo_group_live/show.ex:55 #: lib/cannery_web/live/ammo_group_live/show.ex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "Munición borrada exitosamente" msgstr "Munición borrada exitosamente"
#: lib/cannery_web/live/range_live/index.ex:95 #: lib/cannery_web/live/range_live/index.ex:94
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo unstaged succesfully" msgid "Ammo unstaged succesfully"
msgstr "Munición descargada exitosamente" msgstr "Munición descargada exitosamente"
@ -256,7 +256,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] "Munición añadida exitosamente" msgstr[0] "Munición añadida exitosamente"
msgstr[1] "Municiones añadidas exitosamente" msgstr[1] "Municiones añadidas exitosamente"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:90 #: lib/cannery_web/live/ammo_type_live/index.html.heex:95
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29 #: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -289,17 +289,17 @@ msgstr "%{name} activado exitosamente"
msgid "%{invite_name} updated succesfully" msgid "%{invite_name} updated succesfully"
msgstr "%{name} actualizado exitosamente" msgstr "%{name} actualizado exitosamente"
#: lib/cannery_web/live/invite_live/index.ex:140 #: lib/cannery_web/live/invite_live/index.ex:138
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully" msgid "%{user_email} deleted succesfully"
msgstr "%{name} borrado exitosamente" msgstr "%{name} borrado exitosamente"
#: lib/cannery_web/live/invite_live/index.html.heex:48 #: lib/cannery_web/live/invite_live/index.html.heex:53
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete the invite for %{invite_name}?" msgid "Are you sure you want to delete the invite for %{invite_name}?"
msgstr "Está seguro que quiere eliminar la invitación para %{name}?" msgstr "Está seguro que quiere eliminar la invitación para %{name}?"
#: lib/cannery_web/live/invite_live/index.html.heex:73 #: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to make %{invite_name} unlimited?" msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr "Está seguro que desea hacer %{name} ilimitado?" msgstr "Está seguro que desea hacer %{name} ilimitado?"

View File

@ -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 "Senregistrer" msgstr "Senregistrer"
@ -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"
@ -149,7 +149,7 @@ msgstr "Sauvegarder"
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "Envoyer les instructions pour réinitialiser le mot de passe" msgstr "Envoyer les instructions pour réinitialiser le mot de passe"
#: lib/cannery_web/live/container_live/show.html.heex:76 #: lib/cannery_web/live/container_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "Pourquoi pas en ajouter un?" msgstr "Pourquoi pas en ajouter un?"
@ -169,8 +169,8 @@ msgstr "Munition préparée"
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "Pourquoi pas en préparer pour tirer?" msgstr "Pourquoi pas en préparer pour tirer?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:101 #: lib/cannery_web/live/ammo_group_live/index.html.heex:102
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:107
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record shots" msgid "Record shots"
@ -181,7 +181,7 @@ msgstr "Enregistrer des tirs"
msgid "Add another container!" msgid "Add another container!"
msgstr "Ajoutez un autre conteneur!" msgstr "Ajoutez un autre conteneur!"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:94 #: lib/cannery_web/live/ammo_group_live/show.html.heex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move containers" msgid "Move containers"
msgstr "Déplacer les conteneurs" msgstr "Déplacer les conteneurs"
@ -191,7 +191,7 @@ msgstr "Déplacer les conteneurs"
msgid "Select" msgid "Select"
msgstr "Sélectionner" msgstr "Sélectionner"
#: lib/cannery_web/live/invite_live/index.html.heex:30 #: lib/cannery_web/live/invite_live/index.html.heex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copier dans le presse-papier" msgstr "Copier dans le presse-papier"
@ -206,17 +206,17 @@ 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"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:60 #: lib/cannery_web/live/ammo_group_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View in Catalog" msgid "View in Catalog"
msgstr "Voir en catalogue" msgstr "Voir en catalogue"
@ -231,24 +231,128 @@ msgstr "Ajoutez d'abord un type de munitions"
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:78 #: lib/cannery_web/live/invite_live/index.html.heex:85
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:93
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage for range" msgid "Stage for range"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85 #: lib/cannery_web/live/ammo_group_live/show.html.heex:92
#: lib/cannery_web/live/range_live/index.html.heex:30 #: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:86
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:102
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:153
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:145
#: lib/cannery_web/live/range_live/index.html.heex:122
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:76
#: lib/cannery_web/live/container_live/index.html.heex:128
#: lib/cannery_web/live/container_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:51
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:66
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:41
#, elixir-autogen, elixir-format
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:105
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr "Munition préparée"
#: lib/cannery_web/live/container_live/index.html.heex:64
#: lib/cannery_web/live/container_live/index.html.heex:117
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""

View File

@ -19,7 +19,7 @@ msgstr ""
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "Accédez depuis nimporte quel appareil connecté à internet" msgstr "Accédez depuis nimporte quel appareil connecté à internet"
#: lib/cannery_web/live/invite_live/index.html.heex:87 #: lib/cannery_web/live/invite_live/index.html.heex:94
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins" msgid "Admins"
msgstr "Administrateur·ices" msgstr "Administrateur·ices"
@ -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"
@ -267,18 +267,18 @@ msgid "New Tag"
msgstr "Nouveau tag" msgstr "Nouveau tag"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10 #: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71 #: lib/cannery_web/live/ammo_group_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No Ammo" msgid "No Ammo"
msgstr "Aucune munition" msgstr "Aucune munition"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167 #: lib/cannery_web/live/ammo_type_live/show.html.heex:169
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "Aucune munition pour ce type" msgstr "Aucune munition pour ce type"
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47 #: lib/cannery_web/live/container_live/index.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No containers" msgid "No containers"
msgstr "Aucun conteneur" msgstr "Aucun conteneur"
@ -290,7 +290,7 @@ msgstr "Aucune invitation"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29 #: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10 #: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43 #: lib/cannery_web/live/tag_live/index.html.heex:42
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags" msgid "No tags"
msgstr "Aucun tag" msgstr "Aucun tag"
@ -299,7 +299,7 @@ msgstr "Aucun tag"
#: lib/cannery_web/components/ammo_group_table_component.ex:81 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43 #: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:93 #: lib/cannery_web/live/ammo_group_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30 #: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
@ -372,7 +372,7 @@ msgstr "Simple:"
msgid "Steel" msgid "Steel"
msgstr "Acier" msgstr "Acier"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:111 #: lib/cannery_web/live/ammo_group_live/show.html.heex:117
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stored in" msgid "Stored in"
msgstr "Est stocké dans" msgstr "Est stocké dans"
@ -422,7 +422,7 @@ msgstr "Type"
msgid "Type:" msgid "Type:"
msgstr "Type:" msgstr "Type:"
#: lib/cannery_web/live/invite_live/index.html.heex:115 #: lib/cannery_web/live/invite_live/index.html.heex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Users" msgid "Users"
msgstr "Utilisateurs" msgstr "Utilisateurs"
@ -437,7 +437,7 @@ msgstr "Utilisations restantes"
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "Vos données restent avec vous, point final" msgstr "Vos données restent avec vous, point final"
#: lib/cannery_web/live/container_live/show.html.heex:68 #: lib/cannery_web/live/container_live/show.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "Aucun tag pour ce conteneur" msgstr "Aucun tag pour ce conteneur"
@ -455,7 +455,7 @@ msgstr "Journée de stand"
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:46
#: lib/cannery_web/components/shot_group_table_component.ex:44 #: lib/cannery_web/components/shot_group_table_component.ex:44
#: lib/cannery_web/live/ammo_group_live/show.ex:94 #: lib/cannery_web/live/ammo_group_live/show.ex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:37 #: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -477,7 +477,7 @@ msgstr "Aucune munition sélectionnée"
msgid "Record shots" msgid "Record shots"
msgstr "Tirs enregistrés" msgstr "Tirs enregistrés"
#: lib/cannery_web/live/ammo_group_live/show.ex:42 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:41 #: lib/cannery_web/live/range_live/index.ex:41
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -489,7 +489,7 @@ msgid "New Shot Records"
msgstr "Nouveaux enregistrements de tir" msgstr "Nouveaux enregistrements de tir"
#: lib/cannery_web/live/range_live/index.html.heex:48 #: lib/cannery_web/live/range_live/index.html.heex:48
#: lib/cannery_web/live/range_live/index.html.heex:90 #: lib/cannery_web/live/range_live/index.html.heex:89
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No shots recorded" msgid "No shots recorded"
msgstr "Aucun tir enregistré" msgstr "Aucun tir enregistré"
@ -501,7 +501,7 @@ msgid "Rounds left"
msgstr "Cartouches restantes" msgstr "Cartouches restantes"
#: lib/cannery_web/components/shot_group_table_component.ex:42 #: lib/cannery_web/components/shot_group_table_component.ex:42
#: lib/cannery_web/live/ammo_group_live/show.ex:92 #: lib/cannery_web/live/ammo_group_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:62 #: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
@ -514,7 +514,7 @@ msgid "Shot Records"
msgstr "Enregistrements de tir" msgstr "Enregistrements de tir"
#: lib/cannery_web/live/ammo_group_live/index.ex:38 #: lib/cannery_web/live/ammo_group_live/index.ex:38
#: lib/cannery_web/live/ammo_group_live/index.html.heex:118 #: lib/cannery_web/live/ammo_group_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "Déplacer munition" msgstr "Déplacer munition"
@ -536,7 +536,7 @@ msgstr "Évènements de tir"
#: lib/cannery_web/components/ammo_type_table_component.ex:180 #: lib/cannery_web/components/ammo_type_table_component.ex:180
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/show.html.heex:137 #: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "%{amount}$" msgstr "%{amount}$"
@ -576,32 +576,24 @@ 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"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr "Sélectionné"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr "Désélectionner"
#: lib/cannery_web/components/ammo_type_table_component.ex:62 #: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -614,19 +606,19 @@ msgid "Reconnecting..."
msgstr "Reconnexion en cours…" msgstr "Reconnexion en cours…"
#: lib/cannery_web/live/container_live/index.ex:32 #: lib/cannery_web/live/container_live/index.ex:32
#: lib/cannery_web/live/container_live/show.ex:113 #: lib/cannery_web/live/container_live/show.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "Éditer %{name}" msgstr "Éditer %{name}"
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:69
#: lib/cannery_web/live/container_live/show.ex:114 #: lib/cannery_web/live/container_live/show.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "Éditer les tags de %{name}" msgstr "Éditer les tags de %{name}"
#: lib/cannery_web/components/container_card.ex:60 #: lib/cannery_web/components/container_card.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:68 #: lib/cannery_web/live/ammo_type_live/show.html.heex:70
#: lib/cannery_web/live/container_live/show.html.heex:35 #: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
@ -634,7 +626,7 @@ msgstr "Cartouches:"
#: lib/cannery_web/components/ammo_group_table_component.ex:222 #: lib/cannery_web/components/ammo_group_table_component.ex:222
#: lib/cannery_web/components/ammo_type_table_component.ex:179 #: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143 #: lib/cannery_web/live/ammo_type_live/show.html.heex:145
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "Aucune information de prix" msgstr "Aucune information de prix"
@ -664,7 +656,7 @@ msgstr "Nombre original:"
msgid "Percentage left:" msgid "Percentage left:"
msgstr "Pourcentage restant:" msgstr "Pourcentage restant:"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:124 #: lib/cannery_web/live/ammo_group_live/show.html.heex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds used" msgid "Rounds used"
msgstr "Cartouches utilisées" msgstr "Cartouches utilisées"
@ -694,7 +686,7 @@ msgstr "Senregistrer"
msgid "Reset your password" msgid "Reset your password"
msgstr "Réinitialiser votre mot de passe" msgstr "Réinitialiser votre mot de passe"
#: lib/cannery_web/live/ammo_group_live/show.ex:41 #: lib/cannery_web/live/ammo_group_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:33 #: lib/cannery_web/live/range_live/index.ex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record Shots" msgid "Record Shots"
@ -705,23 +697,23 @@ msgstr "Enregistrer des tirs"
msgid "Copies" msgid "Copies"
msgstr "Exemplaires" msgstr "Exemplaires"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:124 #: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" 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"
@ -759,33 +751,33 @@ msgstr "Voir le code source"
msgid "Catalog" msgid "Catalog"
msgstr "Catalogue" msgstr "Catalogue"
#: lib/cannery_web/live/ammo_group_live/show.ex:45 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "Éditer le type de munition" msgstr "Éditer le type de munition"
#: lib/cannery_web/live/ammo_group_live/show.ex:43 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Move Ammo" msgid "Move Ammo"
msgstr "Déplacer munition" msgstr "Déplacer munition"
#: lib/cannery_web/live/container_live/show.html.heex:113 #: lib/cannery_web/live/container_live/show.html.heex:115
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "Aucun groupe de munition pour ce conteneur" msgstr "Aucun groupe de munition pour ce conteneur"
#: lib/cannery_web/live/ammo_group_live/show.ex:44 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Show Ammo" msgid "Show Ammo"
msgstr "Montrer le type de munition" msgstr "Montrer le type de munition"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:116 #: lib/cannery_web/live/ammo_group_live/show.html.heex:122
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "This ammo is not in a container" msgid "This ammo is not in a container"
msgstr "Ce groupe de munition nest pas dans un conteneur" msgstr "Ce groupe de munition nest pas dans un conteneur"
#: lib/cannery_web/components/container_card.ex:55 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96 #: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:26 #: lib/cannery_web/live/container_live/show.html.heex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -813,10 +805,10 @@ msgstr ""
msgid "Container:" msgid "Container:"
msgstr "Conteneur" msgstr "Conteneur"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64 #: lib/cannery_web/live/ammo_group_live/index.html.heex:63
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39 #: lib/cannery_web/live/ammo_type_live/index.html.heex:38
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153 #: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/show.html.heex:99 #: lib/cannery_web/live/container_live/show.html.heex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
@ -827,7 +819,7 @@ msgstr ""
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:136 #: lib/cannery_web/live/range_live/index.ex:134
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "Cartouches tirées" msgstr "Cartouches tirées"
@ -844,9 +836,9 @@ msgstr "Packages:"
msgid "Rounds" msgid "Rounds"
msgstr "Cartouches:" msgstr "Cartouches:"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159 #: lib/cannery_web/live/ammo_type_live/show.html.heex:161
#: lib/cannery_web/live/container_live/index.html.heex:39 #: lib/cannery_web/live/container_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -856,7 +848,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:112 #: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -866,7 +858,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "Quantité de cartouches" msgstr "Quantité de cartouches"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:84 #: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "Nombre totale de cartouches tirées:" msgstr "Nombre totale de cartouches tirées:"
@ -876,7 +868,7 @@ msgstr "Nombre totale de cartouches tirées:"
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -886,7 +878,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:76 #: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -997,13 +989,13 @@ msgid "UPC:"
msgstr "UPC" msgstr "UPC"
#: lib/cannery_web/components/ammo_type_table_component.ex:120 #: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:133 #: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average CPR" msgid "Average CPR"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28 #: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:120 #: lib/cannery_web/live/ammo_type_live/show.ex:118
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}" msgid "Edit %{ammo_type_name}"
msgstr "Éditer %{name}" msgstr "Éditer %{name}"
@ -1082,37 +1074,37 @@ msgid "Edit ammo"
msgstr "Éditer le type de munition" msgstr "Éditer le type de munition"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8 #: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46 #: lib/cannery_web/live/ammo_type_live/index.html.heex:45
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types" msgid "No Ammo types"
msgstr "Aucun type de munition" msgstr "Aucun type de munition"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33 #: lib/cannery_web/live/ammo_type_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search catalog" msgid "Search catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58 #: lib/cannery_web/live/ammo_group_live/index.html.heex:57
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo" msgid "Search ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33 #: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search containers" msgid "Search containers"
msgstr "" msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36 #: lib/cannery_web/live/tag_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Search tags" msgid "Search tags"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:83 #: lib/cannery_web/live/range_live/index.html.heex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
@ -1181,12 +1173,12 @@ msgstr ""
msgid "Welcome to Cannery" msgid "Welcome to Cannery"
msgstr "Bienvenue à %{name}" msgstr "Bienvenue à %{name}"
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
@ -1200,3 +1192,39 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153
#, elixir-autogen, elixir-format
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:168
#: lib/cannery_web/live/ammo_group_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:141
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:129
#, elixir-autogen, elixir-format
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -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 navez pas demandé ce changement depuis %{url}, veuillez ignorer " "Si vous navez 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 lURL ci-dessous:" msgstr "Vous pouvez changer votre mél en consultant lURL 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 lURL ci-dessous:" msgstr "Vous pouvez confirmer votre compte en consultant lURL 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 lURL ci-dessous:" "Vous pouvez réinitialiser votre mot de passe en visitant lURL 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 navez pas créé de compte à %{name}, veuillez ignorer ceci." msgstr "Si vous navez 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 navez pas demandé ce changement depuis %{name}, veuillez ignorer " "Si vous navez 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 darme à " "Ce mél a été envoyé depuis %{name} à %{url}, le site web de suivi darme à "
"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 darme à feu." msgstr "Ce mél a été envoyé depuis %{name}, le site web de suivi darme à 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}!"

View File

@ -29,7 +29,7 @@ msgid "Container must be empty before deleting"
msgstr "Le conteneur doit être vide pour être supprimé" msgstr "Le conteneur doit être vide pour être supprimé"
#: lib/cannery_web/live/container_live/index.ex:92 #: lib/cannery_web/live/container_live/index.ex:92
#: lib/cannery_web/live/container_live/show.ex:73 #: lib/cannery_web/live/container_live/show.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "Impossible de supprimer %{name} : %{error}" msgstr "Impossible de supprimer %{name} : %{error}"
@ -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 ""
@ -148,22 +148,16 @@ msgstr "doit contenir le symbole @ et aucune espace"
msgid "Tag not found" msgid "Tag not found"
msgstr "Tag pas trouvé" msgstr "Tag pas trouvé"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30 #: lib/cannery_web/live/container_live/edit_tags_component.ex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be added" msgid "Tag could not be added"
msgstr "Le tag na pas pu être ajouté" msgstr "Le tag na pas pu être ajouté"
#: lib/cannery/activity_log/shot_group.ex:122 #: lib/cannery/activity_log/shot_group.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "Le nombre doit être au moins égal à 1" msgstr "Le nombre doit être au moins égal à 1"
#: lib/cannery/activity_log/shot_group.ex:82
#: lib/cannery/activity_log/shot_group.ex:118
#, elixir-autogen, elixir-format
msgid "Count must be less than %{count}"
msgstr "La quantité doit être inférieur à %{count}"
#: lib/cannery_web/controllers/user_auth.ex:39 #: lib/cannery_web/controllers/user_auth.ex:39
#: lib/cannery_web/controllers/user_auth.ex:161 #: lib/cannery_web/controllers/user_auth.ex:161
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -172,7 +166,7 @@ msgstr ""
"Vous devez dabord confirmer votre compte et vous connecter pour accéder à " "Vous devez dabord confirmer votre compte et vous connecter pour accéder à "
"cette page." "cette page."
#: lib/cannery_web/live/container_live/edit_tags_component.ex:52 #: lib/cannery_web/live/container_live/edit_tags_component.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "Le tag na pas pu être retiré" msgstr "Le tag na pas pu être retiré"
@ -206,3 +200,9 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack" msgid "Please select a valid user and ammo pack"
msgstr "Veuillez choisir un utilisateur valide et un groupe de munitions" msgstr "Veuillez choisir un utilisateur valide et un groupe de munitions"
#: lib/cannery/activity_log/shot_group.ex:83
#: lib/cannery/activity_log/shot_group.ex:121
#, elixir-autogen, elixir-format, fuzzy
msgid "Count must be less than %{count} shots"
msgstr "La quantité doit être inférieur à %{count}"

View File

@ -39,7 +39,7 @@ msgid "%{name} deleted succesfully"
msgstr "%{name} supprimé· avec succès" msgstr "%{name} supprimé· avec succès"
#: lib/cannery_web/live/container_live/index.ex:85 #: lib/cannery_web/live/container_live/index.ex:85
#: lib/cannery_web/live/container_live/show.ex:63 #: lib/cannery_web/live/container_live/show.ex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "%{name} a été supprimé·e" msgstr "%{name} a été supprimé·e"
@ -59,33 +59,33 @@ msgstr ""
"Un lien pour confirmer votre changement de mél a été envoyé à la nouvelle " "Un lien pour confirmer votre changement de mél a été envoyé à la nouvelle "
"adresse." "adresse."
#: lib/cannery_web/live/invite_live/index.html.heex:98 #: lib/cannery_web/live/invite_live/index.html.heex:105
#: lib/cannery_web/live/invite_live/index.html.heex:126 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
"Êtes-vous certain·e de supprimer %{email}? Cette action est définitive!" "Êtes-vous certain·e de supprimer %{email}? Cette action est définitive!"
#: lib/cannery_web/live/container_live/index.html.heex:92 #: lib/cannery_web/live/container_live/index.html.heex:98
#: lib/cannery_web/live/container_live/index.html.heex:135 #: lib/cannery_web/live/container_live/index.html.heex:150
#: lib/cannery_web/live/container_live/show.html.heex:55 #: lib/cannery_web/live/container_live/show.html.heex:55
#: lib/cannery_web/live/tag_live/index.html.heex:63 #: lib/cannery_web/live/tag_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
msgstr "Êtes-vous certain·e de supprimer %{name}?" msgstr "Êtes-vous certain·e de supprimer %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153 #: lib/cannery_web/live/ammo_group_live/index.html.heex:166
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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?"
@ -152,7 +152,7 @@ msgstr ""
"Êtes-vous certain·e de vouloir retirer le tag %{tag_name} de " "Êtes-vous certain·e de vouloir retirer le tag %{tag_name} de "
"%{container_name}?" "%{container_name}?"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:36 #: lib/cannery_web/live/container_live/edit_tags_component.ex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "%{name} a été ajouté avec succès" msgstr "%{name} a été ajouté avec succès"
@ -177,13 +177,13 @@ msgstr "Tirs enregistré avec succès"
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition?" msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition?"
#: lib/cannery_web/live/ammo_group_live/show.ex:142 #: lib/cannery_web/live/ammo_group_live/show.ex:143
#: lib/cannery_web/live/range_live/index.html.heex:116 #: lib/cannery_web/live/range_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir?" msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir?"
#: lib/cannery_web/live/ammo_group_live/show.ex:83 #: lib/cannery_web/live/ammo_group_live/show.ex:80
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -204,12 +204,12 @@ msgstr "%{email} confirmé avec succès."
msgid "Ammo moved to %{name} successfully" msgid "Ammo moved to %{name} successfully"
msgstr "Munition déplacée à %{name} avec succès" msgstr "Munition déplacée à %{name} avec succès"
#: lib/cannery_web/live/invite_live/index.ex:128 #: lib/cannery_web/live/invite_live/index.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copied to clipboard" msgid "Copied to clipboard"
msgstr "Copié dans le presse-papier" msgstr "Copié dans le presse-papier"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:58 #: lib/cannery_web/live/container_live/edit_tags_component.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} removed successfully" msgid "%{name} removed successfully"
msgstr "%{name} retiré avec succès" msgstr "%{name} retiré avec succès"
@ -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?"
@ -236,12 +236,12 @@ msgid "Language updated successfully."
msgstr "Langue mise à jour avec succès." msgstr "Langue mise à jour avec succès."
#: lib/cannery_web/live/ammo_group_live/index.ex:89 #: lib/cannery_web/live/ammo_group_live/index.ex:89
#: lib/cannery_web/live/ammo_group_live/show.ex:55 #: lib/cannery_web/live/ammo_group_live/show.ex:54
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "Groupe de munition supprimé avec succès" msgstr "Groupe de munition supprimé avec succès"
#: lib/cannery_web/live/range_live/index.ex:95 #: lib/cannery_web/live/range_live/index.ex:94
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo unstaged succesfully" msgid "Ammo unstaged succesfully"
msgstr "Groupe de munition désélectionner avec succès" msgstr "Groupe de munition désélectionner avec succès"
@ -258,7 +258,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] "Groupe de munition mis à jour avec succès" msgstr[0] "Groupe de munition mis à jour avec succès"
msgstr[1] "Groupe de munition mis à jour avec succès" msgstr[1] "Groupe de munition mis à jour avec succès"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:90 #: lib/cannery_web/live/ammo_type_live/index.html.heex:95
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29 #: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -289,17 +289,17 @@ msgstr "%{name} activé·e avec succès"
msgid "%{invite_name} updated succesfully" msgid "%{invite_name} updated succesfully"
msgstr "%{name} mis à jour avec succès" msgstr "%{name} mis à jour avec succès"
#: lib/cannery_web/live/invite_live/index.ex:140 #: lib/cannery_web/live/invite_live/index.ex:138
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully" msgid "%{user_email} deleted succesfully"
msgstr "%{name} supprimé· avec succès" msgstr "%{name} supprimé· avec succès"
#: lib/cannery_web/live/invite_live/index.html.heex:48 #: lib/cannery_web/live/invite_live/index.html.heex:53
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete the invite for %{invite_name}?" msgid "Are you sure you want to delete the invite for %{invite_name}?"
msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?" msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?"
#: lib/cannery_web/live/invite_live/index.html.heex:73 #: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to make %{invite_name} unlimited?" msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr "Êtes-vous certain·e de vouloir rendre %{name} illimité?" msgstr "Êtes-vous certain·e de vouloir rendre %{name} illimité?"

View File

@ -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 ""
@ -147,7 +147,7 @@ msgstr ""
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:76 #: lib/cannery_web/live/container_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "" msgstr ""
@ -167,8 +167,8 @@ msgstr ""
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:101 #: lib/cannery_web/live/ammo_group_live/index.html.heex:102
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:107
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record shots" msgid "Record shots"
@ -179,7 +179,7 @@ msgstr ""
msgid "Add another container!" msgid "Add another container!"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:94 #: lib/cannery_web/live/ammo_group_live/show.html.heex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move containers" msgid "Move containers"
msgstr "" msgstr ""
@ -189,7 +189,7 @@ msgstr ""
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:30 #: lib/cannery_web/live/invite_live/index.html.heex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "" msgstr ""
@ -204,17 +204,17 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:60 #: lib/cannery_web/live/ammo_group_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View in Catalog" msgid "View in Catalog"
msgstr "" msgstr ""
@ -229,24 +229,128 @@ msgstr ""
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:78 #: lib/cannery_web/live/invite_live/index.html.heex:85
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:93
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage for range" msgid "Stage for range"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85 #: lib/cannery_web/live/ammo_group_live/show.html.heex:92
#: lib/cannery_web/live/range_live/index.html.heex:30 #: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:86
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:102
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:153
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:145
#: lib/cannery_web/live/range_live/index.html.heex:122
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:76
#: lib/cannery_web/live/container_live/index.html.heex:128
#: lib/cannery_web/live/container_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:51
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:66
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:41
#, elixir-autogen, elixir-format
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:105
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:64
#: lib/cannery_web/live/container_live/index.html.heex:117
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""

View File

@ -17,7 +17,7 @@ msgstr ""
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:87 #: lib/cannery_web/live/invite_live/index.html.heex:94
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins" msgid "Admins"
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 ""
@ -265,18 +265,18 @@ msgid "New Tag"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10 #: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71 #: lib/cannery_web/live/ammo_group_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No Ammo" msgid "No Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167 #: lib/cannery_web/live/ammo_type_live/show.html.heex:169
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47 #: lib/cannery_web/live/container_live/index.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No containers" msgid "No containers"
msgstr "" msgstr ""
@ -288,7 +288,7 @@ msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29 #: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10 #: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43 #: lib/cannery_web/live/tag_live/index.html.heex:42
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
@ -297,7 +297,7 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:81 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43 #: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:93 #: lib/cannery_web/live/ammo_group_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30 #: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
@ -368,7 +368,7 @@ msgstr ""
msgid "Steel" msgid "Steel"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:111 #: lib/cannery_web/live/ammo_group_live/show.html.heex:117
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stored in" msgid "Stored in"
msgstr "" msgstr ""
@ -416,7 +416,7 @@ msgstr ""
msgid "Type:" msgid "Type:"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:115 #: lib/cannery_web/live/invite_live/index.html.heex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Users" msgid "Users"
msgstr "" msgstr ""
@ -431,7 +431,7 @@ msgstr ""
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:68 #: lib/cannery_web/live/container_live/show.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "" msgstr ""
@ -449,7 +449,7 @@ msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:46
#: lib/cannery_web/components/shot_group_table_component.ex:44 #: lib/cannery_web/components/shot_group_table_component.ex:44
#: lib/cannery_web/live/ammo_group_live/show.ex:94 #: lib/cannery_web/live/ammo_group_live/show.ex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:37 #: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -471,7 +471,7 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:42 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:41 #: lib/cannery_web/live/range_live/index.ex:41
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -483,7 +483,7 @@ msgid "New Shot Records"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:48 #: lib/cannery_web/live/range_live/index.html.heex:48
#: lib/cannery_web/live/range_live/index.html.heex:90 #: lib/cannery_web/live/range_live/index.html.heex:89
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No shots recorded" msgid "No shots recorded"
msgstr "" msgstr ""
@ -495,7 +495,7 @@ msgid "Rounds left"
msgstr "" msgstr ""
#: lib/cannery_web/components/shot_group_table_component.ex:42 #: lib/cannery_web/components/shot_group_table_component.ex:42
#: lib/cannery_web/live/ammo_group_live/show.ex:92 #: lib/cannery_web/live/ammo_group_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:62 #: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
@ -508,7 +508,7 @@ msgid "Shot Records"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38 #: lib/cannery_web/live/ammo_group_live/index.ex:38
#: lib/cannery_web/live/ammo_group_live/index.html.heex:118 #: lib/cannery_web/live/ammo_group_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -530,7 +530,7 @@ msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:180 #: lib/cannery_web/components/ammo_type_table_component.ex:180
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/show.html.heex:137 #: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -570,32 +570,24 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:62 #: lib/cannery_web/components/ammo_type_table_component.ex:62
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -608,19 +600,19 @@ msgid "Reconnecting..."
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:32 #: lib/cannery_web/live/container_live/index.ex:32
#: lib/cannery_web/live/container_live/show.ex:113 #: lib/cannery_web/live/container_live/show.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:69
#: lib/cannery_web/live/container_live/show.ex:114 #: lib/cannery_web/live/container_live/show.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:60 #: lib/cannery_web/components/container_card.ex:60
#: lib/cannery_web/live/ammo_type_live/show.html.heex:68 #: lib/cannery_web/live/ammo_type_live/show.html.heex:70
#: lib/cannery_web/live/container_live/show.html.heex:35 #: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
@ -628,7 +620,7 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:222 #: lib/cannery_web/components/ammo_group_table_component.ex:222
#: lib/cannery_web/components/ammo_type_table_component.ex:179 #: lib/cannery_web/components/ammo_type_table_component.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143 #: lib/cannery_web/live/ammo_type_live/show.html.heex:145
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
@ -658,7 +650,7 @@ msgstr ""
msgid "Percentage left:" msgid "Percentage left:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:124 #: lib/cannery_web/live/ammo_group_live/show.html.heex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds used" msgid "Rounds used"
msgstr "" msgstr ""
@ -688,7 +680,7 @@ msgstr ""
msgid "Reset your password" msgid "Reset your password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:41 #: lib/cannery_web/live/ammo_group_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:33 #: lib/cannery_web/live/range_live/index.ex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record Shots" msgid "Record Shots"
@ -699,23 +691,23 @@ msgstr ""
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:124 #: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" 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 ""
@ -753,33 +745,33 @@ msgstr ""
msgid "Catalog" msgid "Catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:45 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:43 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move Ammo" msgid "Move Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:113 #: lib/cannery_web/live/container_live/show.html.heex:115
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:44 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show Ammo" msgid "Show Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:116 #: lib/cannery_web/live/ammo_group_live/show.html.heex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "This ammo is not in a container" msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:55 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96 #: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:26 #: lib/cannery_web/live/container_live/show.html.heex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -806,10 +798,10 @@ msgstr ""
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64 #: lib/cannery_web/live/ammo_group_live/index.html.heex:63
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39 #: lib/cannery_web/live/ammo_type_live/index.html.heex:38
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153 #: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/show.html.heex:99 #: lib/cannery_web/live/container_live/show.html.heex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
@ -820,7 +812,7 @@ msgstr ""
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:136 #: lib/cannery_web/live/range_live/index.ex:134
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
@ -837,9 +829,9 @@ msgstr ""
msgid "Rounds" msgid "Rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159 #: lib/cannery_web/live/ammo_type_live/show.html.heex:161
#: lib/cannery_web/live/container_live/index.html.heex:39 #: lib/cannery_web/live/container_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -849,7 +841,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:112 #: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -859,7 +851,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:84 #: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "" msgstr ""
@ -869,7 +861,7 @@ msgstr ""
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104 #: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -879,7 +871,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:76 #: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -990,13 +982,13 @@ msgid "UPC:"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:120 #: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:133 #: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average CPR" msgid "Average CPR"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28 #: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:120 #: lib/cannery_web/live/ammo_type_live/show.ex:118
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}" msgid "Edit %{ammo_type_name}"
msgstr "" msgstr ""
@ -1075,37 +1067,37 @@ msgid "Edit ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8 #: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46 #: lib/cannery_web/live/ammo_type_live/index.html.heex:45
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types" msgid "No Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33 #: lib/cannery_web/live/ammo_type_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search catalog" msgid "Search catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58 #: lib/cannery_web/live/ammo_group_live/index.html.heex:57
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo" msgid "Search ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33 #: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Search containers" msgid "Search containers"
msgstr "" msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36 #: lib/cannery_web/live/tag_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Search tags" msgid "Search tags"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:83 #: lib/cannery_web/live/range_live/index.html.heex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
@ -1172,12 +1164,12 @@ msgstr ""
msgid "Welcome to Cannery" msgid "Welcome to Cannery"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:63 #: lib/cannery_web/live/invite_live/index.html.heex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
@ -1191,3 +1183,39 @@ 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 ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153
#, elixir-autogen, elixir-format
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:168
#: lib/cannery_web/live/ammo_group_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:141
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:129
#, elixir-autogen, elixir-format
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -3,14 +3,62 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-06 23:51+0000\n" "POT-Creation-Date: 2022-11-06 23:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2023-03-18 00:52+0000\n"
"Last-Translator: Automatically generated\n" "Last-Translator: pehoulihan <pehoulihan@gmail.com>\n"
"Language-Team: none\n" "Language-Team: Irish <https://weblate.bubbletea.dev/projects/cannery/emails/"
"ga/>\n"
"Language: ga\n" "Language: ga\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Translate Toolkit 3.7.3\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :("
"n>6 && n<11) ? 3 : 4;\n"
"X-Generator: Weblate 4.16.2\n"
#: lib/cannery_web/templates/email/confirm_email.html.heex:3
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
#: 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/update_email.html.heex:3
#: lib/cannery_web/templates/email/update_email.txt.eex:2
#, elixir-autogen, elixir-format
msgid "Hi %{email},"
msgstr "Fáilte %{email},"
#: lib/cannery_web/templates/email/confirm_email.txt.eex:10
#, elixir-autogen, elixir-format
msgid "If you didn't create an account at %{url}, please ignore this."
msgstr ""
"Murar chruthaigh sibh cuntas ag %{url}, déan neamhaird de seo le bhur dtoil."
#: lib/cannery_web/templates/email/reset_password.txt.eex:8
#: lib/cannery_web/templates/email/update_email.txt.eex:8
#, elixir-autogen, elixir-format
msgid "If you didn't request this change from %{url}, please ignore this."
msgstr ""
"Murar iarr tú an t-athrú seo ó %{url}, déan neamhaird de seo le do thoil."
#: lib/cannery_web/templates/email/update_email.html.heex:8
#: lib/cannery_web/templates/email/update_email.txt.eex:4
#, elixir-autogen, elixir-format
msgid "You can change your email by visiting the URL below:"
msgstr ""
"Is féidir leat do ríomhphost a athrú ach cuairt a thabhairt ar an URL thíos:"
#: lib/cannery_web/templates/email/confirm_email.html.heex:14
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
#, elixir-autogen, elixir-format
msgid "You can confirm your account by visiting the URL below:"
msgstr ""
"Is féidir leat do chuntas a dhearbhú ach cuairt a thabhairt ar an URL thíos:"
#: lib/cannery_web/templates/email/reset_password.html.heex:8
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
#, elixir-autogen, elixir-format
msgid "You can reset your password by visiting the URL below:"
msgstr ""
"Is féidir leat do phasfhocal a athshocrú ach cuairt a thabhairt ar an URL "
"thíos:"
## This file is a PO Template file. ## This file is a PO Template file.
## ##
@ -23,85 +71,46 @@ msgstr ""
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery/accounts/email.ex:30 #: lib/cannery/accounts/email.ex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm your %{name} account" msgid "Confirm your Cannery account"
msgstr "" msgstr "Deimhnigh do chuntas Cannery"
#: lib/cannery_web/templates/email/confirm_email.html.eex:3 #: lib/cannery_web/templates/email/confirm_email.html.heex:22
#: 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.txt.eex:2
#: lib/cannery_web/templates/email/update_email.html.eex:3
#: lib/cannery_web/templates/email/update_email.txt.eex:2
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Hi %{email}," msgid "If you didn't create an account at Cannery, please ignore this."
msgstr "" msgstr "Murar chruthaigh tú cuntas ag Cannery, déan neamhaird de seo."
#: lib/cannery_web/templates/email/confirm_email.txt.eex:10 #: lib/cannery_web/templates/email/reset_password.html.heex:16
#: lib/cannery_web/templates/email/update_email.html.heex:16
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "If you didn't create an account at %{url}, please ignore this." msgid "If you didn't request this change from Cannery, please ignore this."
msgstr "" msgstr "Murar iarr tú an t-athrú seo ó Cannery, déan neamhaird de."
#: lib/cannery_web/templates/email/reset_password.txt.eex:8
#: lib/cannery_web/templates/email/update_email.txt.eex:8
#, elixir-autogen, elixir-format
msgid "If you didn't request this change from %{url}, please ignore this."
msgstr ""
#: lib/cannery/accounts/email.ex:37 #: lib/cannery/accounts/email.ex:37
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Reset your %{name} password" msgid "Reset your Cannery password"
msgstr "" msgstr "Athshocraigh do phasfhocal Cannery"
#: 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
#, elixir-autogen, elixir-format
msgid "You can change your email by visiting the URL below:"
msgstr ""
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
#, elixir-autogen, elixir-format
msgid "You can confirm your account by visiting the URL below:"
msgstr ""
#: lib/cannery_web/templates/email/reset_password.html.eex:8
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
#, elixir-autogen, elixir-format
msgid "You can reset your password by visiting the URL below:"
msgstr ""
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
#, elixir-autogen, elixir-format
msgid "If you didn't create an account at %{name}, please ignore this."
msgstr ""
#: lib/cannery_web/templates/email/reset_password.html.eex:16
#: lib/cannery_web/templates/email/update_email.html.eex:16
#, elixir-autogen, elixir-format
msgid "If you didn't request this change from %{name}, please ignore this."
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 ""
"Seoladh an ríomhphost seo ó Cannery ag %{url}, an suíomh Gréasáin féin-"
"óstáilte rianaithe airm tine."
#: 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 "" msgstr ""
"Tá an ríomhphost seo ó Cannery, an suíomh Gréasáin féin-óstáilte rianaithe "
"airm tine."
#: lib/cannery/accounts/email.ex:44
#, elixir-autogen, elixir-format
msgid "Update your Cannery email"
msgstr "Nuashonraigh do ríomhphost Cannery"
#: 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 "Fáilte go Cannery"

View File

@ -30,7 +30,7 @@ msgid "Container must be empty before deleting"
msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh" msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh"
#: lib/cannery_web/live/container_live/index.ex:92 #: lib/cannery_web/live/container_live/index.ex:92
#: lib/cannery_web/live/container_live/show.ex:73 #: lib/cannery_web/live/container_live/show.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "Ní feidir %{name} a scriosadh: %{error}" msgstr "Ní feidir %{name} a scriosadh: %{error}"
@ -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 ""
@ -149,29 +149,23 @@ msgstr ""
msgid "Tag not found" msgid "Tag not found"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30 #: lib/cannery_web/live/container_live/edit_tags_component.ex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be added" msgid "Tag could not be added"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:122 #: lib/cannery/activity_log/shot_group.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:82
#: lib/cannery/activity_log/shot_group.ex:118
#, elixir-autogen, elixir-format
msgid "Count must be less than %{count}"
msgstr ""
#: lib/cannery_web/controllers/user_auth.ex:39 #: lib/cannery_web/controllers/user_auth.ex:39
#: lib/cannery_web/controllers/user_auth.ex:161 #: lib/cannery_web/controllers/user_auth.ex:161
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You must confirm your account and log in to access this page." msgid "You must confirm your account and log in to access this page."
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:52 #: lib/cannery_web/live/container_live/edit_tags_component.ex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "" msgstr ""
@ -205,3 +199,9 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack" msgid "Please select a valid user and ammo pack"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:83
#: lib/cannery/activity_log/shot_group.ex:121
#, elixir-autogen, elixir-format, fuzzy
msgid "Count must be less than %{count} shots"
msgstr ""

View File

@ -37,7 +37,7 @@ msgid "%{name} deleted succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:85 #: lib/cannery_web/live/container_live/index.ex:85
#: lib/cannery_web/live/container_live/show.ex:63 #: lib/cannery_web/live/container_live/show.ex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "" msgstr ""
@ -55,32 +55,32 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:98 #: lib/cannery_web/live/invite_live/index.html.heex:105
#: lib/cannery_web/live/invite_live/index.html.heex:126 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:92 #: lib/cannery_web/live/container_live/index.html.heex:98
#: lib/cannery_web/live/container_live/index.html.heex:135 #: lib/cannery_web/live/container_live/index.html.heex:150
#: lib/cannery_web/live/container_live/show.html.heex:55 #: lib/cannery_web/live/container_live/show.html.heex:55
#: lib/cannery_web/live/tag_live/index.html.heex:63 #: lib/cannery_web/live/tag_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153 #: lib/cannery_web/live/ammo_group_live/index.html.heex:166
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
@ -141,7 +141,7 @@ msgstr ""
msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?" msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:36 #: lib/cannery_web/live/container_live/edit_tags_component.ex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "" msgstr ""
@ -166,13 +166,13 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:142 #: lib/cannery_web/live/ammo_group_live/show.ex:143
#: lib/cannery_web/live/range_live/index.html.heex:116 #: lib/cannery_web/live/range_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:83 #: lib/cannery_web/live/ammo_group_live/show.ex:80
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -193,12 +193,12 @@ msgstr ""
msgid "Ammo moved to %{name} successfully" msgid "Ammo moved to %{name} successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:128 #: lib/cannery_web/live/invite_live/index.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copied to clipboard" msgid "Copied to clipboard"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:58 #: lib/cannery_web/live/container_live/edit_tags_component.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} removed successfully" msgid "%{name} removed successfully"
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 ""
@ -225,12 +225,12 @@ msgid "Language updated successfully."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:89 #: lib/cannery_web/live/ammo_group_live/index.ex:89
#: lib/cannery_web/live/ammo_group_live/show.ex:55 #: lib/cannery_web/live/ammo_group_live/show.ex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:95 #: lib/cannery_web/live/range_live/index.ex:94
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo unstaged succesfully" msgid "Ammo unstaged succesfully"
msgstr "" msgstr ""
@ -246,8 +246,11 @@ msgid "Ammo added successfully"
msgid_plural "Ammo added successfully" msgid_plural "Ammo added successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:90 #: lib/cannery_web/live/ammo_type_live/index.html.heex:95
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29 #: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -278,17 +281,17 @@ msgstr ""
msgid "%{invite_name} updated succesfully" msgid "%{invite_name} updated succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:140 #: lib/cannery_web/live/invite_live/index.ex:138
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully" msgid "%{user_email} deleted succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:48 #: lib/cannery_web/live/invite_live/index.html.heex:53
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete the invite for %{invite_name}?" msgid "Are you sure you want to delete the invite for %{invite_name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:73 #: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to make %{invite_name} unlimited?" msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr "" msgstr ""

View File

@ -26,7 +26,7 @@ msgid "%{name} deleted succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:85 #: lib/cannery_web/live/container_live/index.ex:85
#: lib/cannery_web/live/container_live/show.ex:63 #: lib/cannery_web/live/container_live/show.ex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "" msgstr ""
@ -44,32 +44,32 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:98 #: lib/cannery_web/live/invite_live/index.html.heex:105
#: lib/cannery_web/live/invite_live/index.html.heex:126 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:92 #: lib/cannery_web/live/container_live/index.html.heex:98
#: lib/cannery_web/live/container_live/index.html.heex:135 #: lib/cannery_web/live/container_live/index.html.heex:150
#: lib/cannery_web/live/container_live/show.html.heex:55 #: lib/cannery_web/live/container_live/show.html.heex:55
#: lib/cannery_web/live/tag_live/index.html.heex:63 #: lib/cannery_web/live/tag_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:153 #: lib/cannery_web/live/ammo_group_live/index.html.heex:166
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
@ -130,7 +130,7 @@ msgstr ""
msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?" msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:36 #: lib/cannery_web/live/container_live/edit_tags_component.ex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "" msgstr ""
@ -155,13 +155,13 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:142 #: lib/cannery_web/live/ammo_group_live/show.ex:143
#: lib/cannery_web/live/range_live/index.html.heex:116 #: lib/cannery_web/live/range_live/index.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:83 #: lib/cannery_web/live/ammo_group_live/show.ex:80
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -182,12 +182,12 @@ msgstr ""
msgid "Ammo moved to %{name} successfully" msgid "Ammo moved to %{name} successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:128 #: lib/cannery_web/live/invite_live/index.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copied to clipboard" msgid "Copied to clipboard"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:58 #: lib/cannery_web/live/container_live/edit_tags_component.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} removed successfully" msgid "%{name} removed successfully"
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 ""
@ -214,12 +214,12 @@ msgid "Language updated successfully."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:89 #: lib/cannery_web/live/ammo_group_live/index.ex:89
#: lib/cannery_web/live/ammo_group_live/show.ex:55 #: lib/cannery_web/live/ammo_group_live/show.ex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:95 #: lib/cannery_web/live/range_live/index.ex:94
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo unstaged succesfully" msgid "Ammo unstaged succesfully"
msgstr "" msgstr ""
@ -236,7 +236,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:90 #: lib/cannery_web/live/ammo_type_live/index.html.heex:95
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29 #: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -267,17 +267,17 @@ msgstr ""
msgid "%{invite_name} updated succesfully" msgid "%{invite_name} updated succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:140 #: lib/cannery_web/live/invite_live/index.ex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{user_email} deleted succesfully" msgid "%{user_email} deleted succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:48 #: lib/cannery_web/live/invite_live/index.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete the invite for %{invite_name}?" msgid "Are you sure you want to delete the invite for %{invite_name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:73 #: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to make %{invite_name} unlimited?" msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr "" msgstr ""

View File

@ -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")

View File

@ -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

View File

@ -74,7 +74,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
assert html =~ ammo_group.ammo_type.name assert html =~ ammo_group.ammo_type.name
assert index_live assert index_live
|> form("[data-qa=\"ammo_group_search\"]", |> form(~s/form[phx-change="search"]/,
search: %{search_term: ammo_group.ammo_type.name} search: %{search_term: ammo_group.ammo_type.name}
) )
|> render_change() =~ ammo_group.ammo_type.name |> render_change() =~ ammo_group.ammo_type.name
@ -85,13 +85,13 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
) )
refute index_live refute index_live
|> form("[data-qa=\"ammo_group_search\"]", search: %{search_term: "something_else"}) |> form(~s/form[phx-change="search"]/, search: %{search_term: "something_else"})
|> render_change() =~ ammo_group.ammo_type.name |> render_change() =~ ammo_group.ammo_type.name
assert_patch(index_live, Routes.ammo_group_index_path(conn, :search, "something_else")) assert_patch(index_live, Routes.ammo_group_index_path(conn, :search, "something_else"))
assert index_live assert index_live
|> form("[data-qa=\"ammo_group_search\"]", search: %{search_term: ""}) |> form(~s/form[phx-change="search"]/, search: %{search_term: ""})
|> render_change() =~ ammo_group.ammo_type.name |> render_change() =~ ammo_group.ammo_type.name
assert_patch(index_live, Routes.ammo_group_index_path(conn, :index)) assert_patch(index_live, Routes.ammo_group_index_path(conn, :index))
@ -185,7 +185,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
{:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index))
assert index_live assert index_live
|> element("[data-qa=\"edit-#{ammo_group.id}\"]") |> element(~s/a[aria-label="Edit ammo group of #{ammo_group.count} bullets"]/)
|> render_click() =~ |> render_click() =~
gettext("Edit ammo") gettext("Edit ammo")
@ -210,7 +210,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
html = html =
index_live index_live
|> element("[data-qa=\"clone-#{ammo_group.id}\"]") |> element(~s/a[aria-label="Clone ammo group of #{ammo_group.count} bullets"]/)
|> render_click() |> render_click()
assert html =~ dgettext("actions", "Add Ammo") assert html =~ dgettext("actions", "Add Ammo")
@ -238,7 +238,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
html = html =
index_live index_live
|> element("[data-qa=\"clone-#{ammo_group.id}\"]") |> element(~s/a[aria-label="Clone ammo group of #{ammo_group.count} bullets"]/)
|> render_click() |> render_click()
assert html =~ dgettext("actions", "Add Ammo") assert html =~ dgettext("actions", "Add Ammo")
@ -265,7 +265,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
{:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index))
assert index_live assert index_live
|> element("[data-qa=\"delete-#{ammo_group.id}\"]") |> element(~s/a[aria-label="Delete ammo group of #{ammo_group.count} bullets"]/)
|> render_click() |> render_click()
refute has_element?(index_live, "#ammo_group-#{ammo_group.id}") refute has_element?(index_live, "#ammo_group-#{ammo_group.id}")
@ -309,7 +309,10 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
) <> ) <>
"\n" "\n"
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click() html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/)
|> render_click()
assert html =~ gettext("$%{amount}", amount: 50.00 |> :erlang.float_to_binary(decimals: 2)) assert html =~ gettext("$%{amount}", amount: 50.00 |> :erlang.float_to_binary(decimals: 2))
@ -337,7 +340,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
{:ok, show_live, _html} = live(conn, Routes.ammo_group_show_path(conn, :show, ammo_group)) {:ok, show_live, _html} = live(conn, Routes.ammo_group_show_path(conn, :show, ammo_group))
assert show_live assert show_live
|> element("[data-qa=\"edit\"]") |> element(~s/a[aria-label="Edit ammo group of #{ammo_group.count} bullets"]/)
|> render_click() =~ |> render_click() =~
gettext("Edit Ammo") gettext("Edit Ammo")
@ -386,7 +389,9 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
%{conn: conn, ammo_group: ammo_group, shot_group: shot_group} do %{conn: conn, ammo_group: ammo_group, shot_group: shot_group} do
{:ok, index_live, _html} = live(conn, Routes.ammo_group_show_path(conn, :edit, ammo_group)) {:ok, index_live, _html} = live(conn, Routes.ammo_group_show_path(conn, :edit, ammo_group))
assert index_live |> element("[data-qa=\"edit-#{shot_group.id}\"]") |> render_click() =~ assert index_live
|> element(~s/a[aria-label="Edit shot group of #{shot_group.count} shots"]/)
|> render_click() =~
gettext("Edit Shot Records") gettext("Edit Shot Records")
assert_patch( assert_patch(
@ -413,7 +418,10 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
{:ok, index_live, _html} = {:ok, index_live, _html} =
live(conn, Routes.ammo_group_show_path(conn, :edit_shot_group, ammo_group, shot_group)) live(conn, Routes.ammo_group_show_path(conn, :edit_shot_group, ammo_group, shot_group))
assert index_live |> element("[data-qa=\"delete-#{shot_group.id}\"]") |> render_click() assert index_live
|> element(~s/a[aria-label="Delete shot record of #{shot_group.count} shots"]/)
|> render_click()
refute has_element?(index_live, "#shot_group-#{shot_group.id}") refute has_element?(index_live, "#shot_group-#{shot_group.id}")
end end
end end

View File

@ -80,7 +80,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
assert html =~ ammo_type.bullet_type assert html =~ ammo_type.bullet_type
assert index_live assert index_live
|> form("[data-qa=\"ammo_type_search\"]", |> form(~s/form[phx-change="search"]/,
search: %{search_term: ammo_type.bullet_type} search: %{search_term: ammo_type.bullet_type}
) )
|> render_change() =~ ammo_type.bullet_type |> render_change() =~ ammo_type.bullet_type
@ -88,13 +88,13 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
assert_patch(index_live, Routes.ammo_type_index_path(conn, :search, ammo_type.bullet_type)) assert_patch(index_live, Routes.ammo_type_index_path(conn, :search, ammo_type.bullet_type))
refute index_live refute index_live
|> form("[data-qa=\"ammo_type_search\"]", search: %{search_term: "something_else"}) |> form(~s/form[phx-change="search"]/, search: %{search_term: "something_else"})
|> render_change() =~ ammo_type.bullet_type |> render_change() =~ ammo_type.bullet_type
assert_patch(index_live, Routes.ammo_type_index_path(conn, :search, "something_else")) assert_patch(index_live, Routes.ammo_type_index_path(conn, :search, "something_else"))
assert index_live assert index_live
|> form("[data-qa=\"ammo_type_search\"]", search: %{search_term: ""}) |> form(~s/form[phx-change="search"]/, search: %{search_term: ""})
|> render_change() =~ ammo_type.bullet_type |> render_change() =~ ammo_type.bullet_type
assert_patch(index_live, Routes.ammo_type_index_path(conn, :index)) assert_patch(index_live, Routes.ammo_type_index_path(conn, :index))
@ -127,7 +127,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
%{conn: conn, current_user: current_user, ammo_type: ammo_type} do %{conn: conn, current_user: current_user, ammo_type: ammo_type} do
{:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
assert index_live |> element("[data-qa=\"edit-#{ammo_type.id}\"]") |> render_click() =~ assert index_live |> element(~s/a[aria-label="Edit #{ammo_type.name}"]/) |> render_click() =~
gettext("Edit %{ammo_type_name}", ammo_type_name: ammo_type.name) gettext("Edit %{ammo_type_name}", ammo_type_name: ammo_type.name)
assert_patch(index_live, Routes.ammo_type_index_path(conn, :edit, ammo_type)) assert_patch(index_live, Routes.ammo_type_index_path(conn, :edit, ammo_type))
@ -151,7 +151,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
%{conn: conn, current_user: current_user, ammo_type: ammo_type} do %{conn: conn, current_user: current_user, ammo_type: ammo_type} do
{:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
html = index_live |> element("[data-qa=\"clone-#{ammo_type.id}\"]") |> render_click() html = index_live |> element(~s/a[aria-label="Clone #{ammo_type.name}"]/) |> render_click()
assert html =~ gettext("New Ammo type") assert html =~ gettext("New Ammo type")
assert html =~ "some bullet_type" assert html =~ "some bullet_type"
@ -176,7 +176,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
%{conn: conn, current_user: current_user, ammo_type: ammo_type} do %{conn: conn, current_user: current_user, ammo_type: ammo_type} do
{:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
html = index_live |> element("[data-qa=\"clone-#{ammo_type.id}\"]") |> render_click() html = index_live |> element(~s/a[aria-label="Clone #{ammo_type.name}"]/) |> render_click()
assert html =~ gettext("New Ammo type") assert html =~ gettext("New Ammo type")
assert html =~ "some bullet_type" assert html =~ "some bullet_type"
@ -202,7 +202,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
test "deletes ammo_type in listing", %{conn: conn, ammo_type: ammo_type} do test "deletes ammo_type in listing", %{conn: conn, ammo_type: ammo_type} do
{:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
assert index_live |> element("[data-qa=\"delete-#{ammo_type.id}\"]") |> render_click() assert index_live |> element(~s/a[aria-label="Delete #{ammo_type.name}"]/) |> render_click()
refute has_element?(index_live, "#ammo_type-#{ammo_type.id}") refute has_element?(index_live, "#ammo_type-#{ammo_type.id}")
end end
end end
@ -220,7 +220,10 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
refute html =~ gettext("Used packs") refute html =~ gettext("Used packs")
refute html =~ gettext("Total ever packs") refute html =~ gettext("Total ever packs")
html = index_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click() html =
index_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/)
|> render_click()
assert html =~ gettext("Used rounds") assert html =~ gettext("Used rounds")
assert html =~ gettext("Total ever rounds") assert html =~ gettext("Total ever rounds")
@ -234,7 +237,11 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
shot_group_fixture(%{"count" => 5}, current_user, ammo_group) shot_group_fixture(%{"count" => 5}, current_user, ammo_group)
{:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
html = index_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click()
html =
index_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/)
|> render_click()
assert html =~ "15" assert html =~ "15"
assert html =~ "5" assert html =~ "5"
@ -258,7 +265,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
%{conn: conn, current_user: current_user, ammo_type: %{name: name} = ammo_type} do %{conn: conn, current_user: current_user, ammo_type: %{name: name} = ammo_type} do
{:ok, show_live, _html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) {:ok, show_live, _html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
assert show_live |> element("[data-qa=\"edit\"]") |> render_click() =~ assert show_live |> element(~s/a[aria-label="Edit #{ammo_type.name}"]/) |> render_click() =~
gettext("Edit %{ammo_type_name}", ammo_type_name: name) gettext("Edit %{ammo_type_name}", ammo_type_name: name)
assert_patch(show_live, Routes.ammo_type_show_path(conn, :edit, ammo_type)) assert_patch(show_live, Routes.ammo_type_show_path(conn, :edit, ammo_type))
@ -298,7 +305,11 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
%{conn: conn, ammo_type: ammo_type, container: %{name: container_name}} do %{conn: conn, ammo_type: ammo_type, container: %{name: container_name}} do
{:ok, show_live, _html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) {:ok, show_live, _html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click() html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_table-label"}]/)
|> render_click()
assert_patch(show_live, Routes.ammo_type_show_path(conn, :table, ammo_type)) assert_patch(show_live, Routes.ammo_type_show_path(conn, :table, ammo_type))
assert html =~ "some ammo group" assert html =~ "some ammo group"
@ -316,7 +327,10 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
assert html =~ dgettext("actions", "Show used") assert html =~ dgettext("actions", "Show used")
refute html =~ "some ammo group" refute html =~ "some ammo group"
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click() html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/)
|> render_click()
assert html =~ "some ammo group" assert html =~ "some ammo group"
assert html =~ "Empty" assert html =~ "Empty"
@ -327,13 +341,20 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
%{conn: conn, ammo_type: ammo_type, container: %{name: container_name}} do %{conn: conn, ammo_type: ammo_type, container: %{name: container_name}} do
{:ok, show_live, _html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) {:ok, show_live, _html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click() html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_table-label"}]/)
|> render_click()
assert_patch(show_live, Routes.ammo_type_show_path(conn, :table, ammo_type)) assert_patch(show_live, Routes.ammo_type_show_path(conn, :table, ammo_type))
assert html =~ dgettext("actions", "Show used") assert html =~ dgettext("actions", "Show used")
refute html =~ "some ammo group" refute html =~ "some ammo group"
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click() html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/)
|> render_click()
assert html =~ "some ammo group" assert html =~ "some ammo group"
assert html =~ "Empty" assert html =~ "Empty"

View File

@ -75,7 +75,10 @@ defmodule CanneryWeb.ContainerLiveTest do
test "lists all containers in table mode", %{conn: conn, container: container} do test "lists all containers in table mode", %{conn: conn, container: container} do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index))
html = index_live |> element("[data-qa=\"toggle_table\"]") |> render_click() html =
index_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_table-label"}]/)
|> render_click()
assert html =~ gettext("Containers") assert html =~ gettext("Containers")
assert html =~ container.location assert html =~ container.location
@ -87,7 +90,7 @@ defmodule CanneryWeb.ContainerLiveTest do
assert html =~ container.location assert html =~ container.location
assert index_live assert index_live
|> form("[data-qa=\"container_search\"]", |> form(~s/form[phx-change="search"]/,
search: %{search_term: container.location} search: %{search_term: container.location}
) )
|> render_change() =~ container.location |> render_change() =~ container.location
@ -95,13 +98,13 @@ defmodule CanneryWeb.ContainerLiveTest do
assert_patch(index_live, Routes.container_index_path(conn, :search, container.location)) assert_patch(index_live, Routes.container_index_path(conn, :search, container.location))
refute index_live refute index_live
|> form("[data-qa=\"container_search\"]", search: %{search_term: "something_else"}) |> form(~s/form[phx-change="search"]/, search: %{search_term: "something_else"})
|> render_change() =~ container.location |> render_change() =~ container.location
assert_patch(index_live, Routes.container_index_path(conn, :search, "something_else")) assert_patch(index_live, Routes.container_index_path(conn, :search, "something_else"))
assert index_live assert index_live
|> form("[data-qa=\"container_search\"]", search: %{search_term: ""}) |> form(~s/form[phx-change="search"]/, search: %{search_term: ""})
|> render_change() =~ container.location |> render_change() =~ container.location
assert_patch(index_live, Routes.container_index_path(conn, :index)) assert_patch(index_live, Routes.container_index_path(conn, :index))
@ -136,7 +139,7 @@ defmodule CanneryWeb.ContainerLiveTest do
} do } do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index))
assert index_live |> element("[data-qa=\"edit-#{container.id}\"]") |> render_click() =~ assert index_live |> element(~s/a[aria-label="Edit #{container.name}"]/) |> render_click() =~
gettext("Edit %{name}", name: container.name) gettext("Edit %{name}", name: container.name)
assert_patch(index_live, Routes.container_index_path(conn, :edit, container)) assert_patch(index_live, Routes.container_index_path(conn, :edit, container))
@ -163,7 +166,7 @@ defmodule CanneryWeb.ContainerLiveTest do
} do } do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index))
html = index_live |> element("[data-qa=\"clone-#{container.id}\"]") |> render_click() html = index_live |> element(~s/a[aria-label="Clone #{container.name}"]/) |> render_click()
assert html =~ gettext("New Container") assert html =~ gettext("New Container")
assert html =~ "some location" assert html =~ "some location"
@ -191,7 +194,7 @@ defmodule CanneryWeb.ContainerLiveTest do
} do } do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index))
assert index_live |> element("[data-qa=\"clone-#{container.id}\"]") |> render_click() =~ assert index_live |> element(~s/a[aria-label="Clone #{container.name}"]/) |> render_click() =~
gettext("New Container") gettext("New Container")
assert_patch(index_live, Routes.container_index_path(conn, :clone, container)) assert_patch(index_live, Routes.container_index_path(conn, :clone, container))
@ -216,7 +219,7 @@ defmodule CanneryWeb.ContainerLiveTest do
test "deletes container in listing", %{conn: conn, container: container} do test "deletes container in listing", %{conn: conn, container: container} do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index))
assert index_live |> element("[data-qa=\"delete-#{container.id}\"]") |> render_click() assert index_live |> element(~s/a[aria-label="Delete #{container.name}"]/) |> render_click()
refute has_element?(index_live, "#container-#{container.id}") refute has_element?(index_live, "#container-#{container.id}")
end end
end end
@ -241,7 +244,7 @@ defmodule CanneryWeb.ContainerLiveTest do
} do } do
{:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container)) {:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container))
assert show_live |> element("[data-qa=\"edit\"]") |> render_click() =~ assert show_live |> element(~s/a[aria-label="Edit #{container.name}"]/) |> render_click() =~
gettext("Edit %{name}", name: container.name) gettext("Edit %{name}", name: container.name)
assert_patch(show_live, Routes.container_show_path(conn, :edit, container)) assert_patch(show_live, Routes.container_show_path(conn, :edit, container))
@ -277,7 +280,10 @@ defmodule CanneryWeb.ContainerLiveTest do
%{conn: conn, ammo_type: %{name: ammo_type_name}, container: container} do %{conn: conn, ammo_type: %{name: ammo_type_name}, container: container} do
{:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container)) {:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container))
html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click() html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_table-label"}]/)
|> render_click()
assert html =~ ammo_type_name assert html =~ ammo_type_name
assert html =~ "some ammo group" assert html =~ "some ammo group"
@ -294,7 +300,10 @@ defmodule CanneryWeb.ContainerLiveTest do
assert html =~ dgettext("actions", "Show used") assert html =~ dgettext("actions", "Show used")
refute html =~ "some ammo group" refute html =~ "some ammo group"
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click() html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/)
|> render_click()
assert html =~ ammo_type_name assert html =~ ammo_type_name
assert html =~ "some ammo group" assert html =~ "some ammo group"
@ -305,12 +314,18 @@ defmodule CanneryWeb.ContainerLiveTest do
%{conn: conn, ammo_type: %{name: ammo_type_name}, container: container} do %{conn: conn, ammo_type: %{name: ammo_type_name}, container: container} do
{:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container)) {:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container))
html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click() html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_table-label"}]/)
|> render_click()
assert html =~ dgettext("actions", "Show used") assert html =~ dgettext("actions", "Show used")
refute html =~ "some ammo group" refute html =~ "some ammo group"
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click() html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/)
|> render_click()
assert html =~ ammo_type_name assert html =~ ammo_type_name
assert html =~ "some ammo group" assert html =~ "some ammo group"

View File

@ -55,7 +55,9 @@ defmodule CanneryWeb.InviteLiveTest do
test "updates invite in listing", %{conn: conn, invite: invite} do test "updates invite in listing", %{conn: conn, invite: invite} do
{:ok, index_live, _html} = live(conn, Routes.invite_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.invite_index_path(conn, :index))
assert index_live |> element("[data-qa=\"edit-#{invite.id}\"]") |> render_click() =~ assert index_live
|> element(~s/a[aria-label="Edit invite for #{invite.name}"]/)
|> render_click() =~
gettext("Edit Invite") gettext("Edit Invite")
assert_patch(index_live, Routes.invite_index_path(conn, :edit, invite)) assert_patch(index_live, Routes.invite_index_path(conn, :edit, invite))
@ -81,7 +83,10 @@ defmodule CanneryWeb.InviteLiveTest do
test "deletes invite in listing", %{conn: conn, invite: invite} do test "deletes invite in listing", %{conn: conn, invite: invite} do
{:ok, index_live, _html} = live(conn, Routes.invite_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.invite_index_path(conn, :index))
assert index_live |> element("[data-qa=\"delete-#{invite.id}\"]") |> render_click() assert index_live
|> element(~s/a[aria-label="Delete invite for #{invite.name}"]/)
|> render_click()
refute has_element?(index_live, "#invite-#{invite.id}") refute has_element?(index_live, "#invite-#{invite.id}")
end end
end end

View File

@ -43,7 +43,7 @@ defmodule CanneryWeb.RangeLiveTest do
assert html =~ shot_group.notes assert html =~ shot_group.notes
assert index_live assert index_live
|> form("[data-qa=\"shot_group_search\"]", |> form(~s/form[phx-change="search"]/,
search: %{search_term: shot_group.notes} search: %{search_term: shot_group.notes}
) )
|> render_change() =~ shot_group.notes |> render_change() =~ shot_group.notes
@ -51,13 +51,13 @@ defmodule CanneryWeb.RangeLiveTest do
assert_patch(index_live, Routes.range_index_path(conn, :search, shot_group.notes)) assert_patch(index_live, Routes.range_index_path(conn, :search, shot_group.notes))
refute index_live refute index_live
|> form("[data-qa=\"shot_group_search\"]", search: %{search_term: "something_else"}) |> form(~s/form[phx-change="search"]/, search: %{search_term: "something_else"})
|> render_change() =~ shot_group.notes |> render_change() =~ shot_group.notes
assert_patch(index_live, Routes.range_index_path(conn, :search, "something_else")) assert_patch(index_live, Routes.range_index_path(conn, :search, "something_else"))
assert index_live assert index_live
|> form("[data-qa=\"shot_group_search\"]", search: %{search_term: ""}) |> form(~s/form[phx-change="search"]/, search: %{search_term: ""})
|> render_change() =~ shot_group.notes |> render_change() =~ shot_group.notes
assert_patch(index_live, Routes.range_index_path(conn, :index)) assert_patch(index_live, Routes.range_index_path(conn, :index))
@ -88,7 +88,9 @@ defmodule CanneryWeb.RangeLiveTest do
test "updates shot_group in listing", %{conn: conn, shot_group: shot_group} do test "updates shot_group in listing", %{conn: conn, shot_group: shot_group} do
{:ok, index_live, _html} = live(conn, Routes.range_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.range_index_path(conn, :index))
assert index_live |> element("[data-qa=\"edit-#{shot_group.id}\"]") |> render_click() =~ assert index_live
|> element(~s/a[aria-label="Edit shot record of #{shot_group.count} shots"]/)
|> render_click() =~
gettext("Edit Shot Records") gettext("Edit Shot Records")
assert_patch(index_live, Routes.range_index_path(conn, :edit, shot_group)) assert_patch(index_live, Routes.range_index_path(conn, :edit, shot_group))
@ -110,7 +112,10 @@ defmodule CanneryWeb.RangeLiveTest do
test "deletes shot_group in listing", %{conn: conn, shot_group: shot_group} do test "deletes shot_group in listing", %{conn: conn, shot_group: shot_group} do
{:ok, index_live, _html} = live(conn, Routes.range_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.range_index_path(conn, :index))
assert index_live |> element("[data-qa=\"delete-#{shot_group.id}\"]") |> render_click() assert index_live
|> element(~s/a[aria-label="Delete shot record of #{shot_group.count} shots"]/)
|> render_click()
refute has_element?(index_live, "#shot_group-#{shot_group.id}") refute has_element?(index_live, "#shot_group-#{shot_group.id}")
end end
end end

View File

@ -47,7 +47,7 @@ defmodule CanneryWeb.TagLiveTest do
assert html =~ tag.name assert html =~ tag.name
assert index_live assert index_live
|> form("[data-qa=\"tag_search\"]", |> form(~s/form[phx-change="search"]/,
search: %{search_term: tag.name} search: %{search_term: tag.name}
) )
|> render_change() =~ tag.name |> render_change() =~ tag.name
@ -55,13 +55,13 @@ defmodule CanneryWeb.TagLiveTest do
assert_patch(index_live, Routes.tag_index_path(conn, :search, tag.name)) assert_patch(index_live, Routes.tag_index_path(conn, :search, tag.name))
refute index_live refute index_live
|> form("[data-qa=\"tag_search\"]", search: %{search_term: "something_else"}) |> form(~s/form[phx-change="search"]/, search: %{search_term: "something_else"})
|> render_change() =~ tag.name |> render_change() =~ tag.name
assert_patch(index_live, Routes.tag_index_path(conn, :search, "something_else")) assert_patch(index_live, Routes.tag_index_path(conn, :search, "something_else"))
assert index_live assert index_live
|> form("[data-qa=\"tag_search\"]", search: %{search_term: ""}) |> form(~s/form[phx-change="search"]/, search: %{search_term: ""})
|> render_change() =~ tag.name |> render_change() =~ tag.name
assert_patch(index_live, Routes.tag_index_path(conn, :index)) assert_patch(index_live, Routes.tag_index_path(conn, :index))
@ -92,7 +92,7 @@ defmodule CanneryWeb.TagLiveTest do
test "updates tag in listing", %{conn: conn, tag: tag} do test "updates tag in listing", %{conn: conn, tag: tag} do
{:ok, index_live, _html} = live(conn, Routes.tag_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.tag_index_path(conn, :index))
assert index_live |> element("[data-qa=\"edit-#{tag.id}\"]") |> render_click() =~ assert index_live |> element(~s/a[aria-label="Edit #{tag.name}"]/) |> render_click() =~
dgettext("actions", "Edit Tag") dgettext("actions", "Edit Tag")
assert_patch(index_live, Routes.tag_index_path(conn, :edit, tag)) assert_patch(index_live, Routes.tag_index_path(conn, :edit, tag))
@ -116,7 +116,7 @@ defmodule CanneryWeb.TagLiveTest do
test "deletes tag in listing", %{conn: conn, tag: tag} do test "deletes tag in listing", %{conn: conn, tag: tag} do
{:ok, index_live, _html} = live(conn, Routes.tag_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.tag_index_path(conn, :index))
assert index_live |> element("[data-qa=\"delete-#{tag.id}\"]") |> render_click() assert index_live |> element(~s/a[aria-label="Delete #{tag.name}"]/) |> render_click()
refute has_element?(index_live, "#tag-#{tag.id}") refute has_element?(index_live, "#tag-#{tag.id}")
end end
end end