13 Commits

Author SHA1 Message Date
41bcc2f456 add logo 😄
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-04 20:19:03 -04:00
947659b207 fix ammo_group changesets 2022-07-04 20:06:41 -04:00
9ebca20dc6 add error case for create_changeset 2022-07-04 20:06:31 -04:00
3cbd62e84c fix shotgroup changesets 2022-07-01 21:39:08 -04:00
67010640f0 remove unchangeable requirements 2022-07-01 19:53:44 -04:00
5fd46c326f update gettext
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-01 19:16:59 -04:00
8c62a39c97 bump to 0.5.4 2022-07-01 19:16:31 -04:00
9a1a104c6d add pack and round count to containers 2022-07-01 19:13:54 -04:00
11b1ae9980 update paths
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-01 00:33:32 -04:00
948fa929ec rename "Ammo Details" to "View in Catalog" 2022-07-01 00:27:51 -04:00
268085e761 update changelog 2022-07-01 00:25:38 -04:00
a1efd7cc60 improve ammo group wording 2022-07-01 00:23:04 -04:00
2db9ab968f rename ammo types page to catalog 2022-07-01 00:20:50 -04:00
51 changed files with 1021 additions and 666 deletions

View File

@ -1,3 +1,9 @@
# v0.5.4
- Rename "Ammo" tab to "Catalog", and "Manage" tab is now "Ammo"
- Ammo groups are now just referred to as Ammo or "Packs"
- URL paths now reflect new names
- Add pack and round count to container information
# v0.5.3 # v0.5.3
- Update French translation: Thank you [duponin](https://udongein.xyz/users/duponin)! - Update French translation: Thank you [duponin](https://udongein.xyz/users/duponin)!
- Update German translation: Thank you [Kaia](https://shitposter.club/users/kaia)! - Update German translation: Thank you [Kaia](https://shitposter.club/users/kaia)!

View File

@ -1,6 +1,7 @@
# Cannery # Cannery
![screenshot](https://gitea.bubbletea.dev/shibao/cannery/raw/branch/stable/home.png) ![logo](https://gitea.bubbletea.dev/shibao/cannery/raw/branch/stable/assets/static/images/cannery.png)
![old screenshot](https://gitea.bubbletea.dev/shibao/cannery/raw/branch/stable/home.png)
The self-hosted firearm tracker website. The self-hosted firearm tracker website.

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 516 KiB

View File

@ -4,8 +4,7 @@ defmodule Cannery.ActivityLog do
""" """
import Ecto.Query, warn: false import Ecto.Query, warn: false
import CanneryWeb.Gettext alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Ammo.AmmoGroup, Repo}
alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Ammo, Ammo.AmmoGroup, Repo}
alias Ecto.{Changeset, Multi} alias Ecto.{Changeset, Multi}
@doc """ @doc """
@ -60,32 +59,30 @@ defmodule Cannery.ActivityLog do
""" """
@spec create_shot_group(attrs :: map(), User.t(), AmmoGroup.t()) :: @spec create_shot_group(attrs :: map(), User.t(), AmmoGroup.t()) ::
{:ok, ShotGroup.t()} | {:error, Changeset.t(ShotGroup.t()) | nil} {:ok, ShotGroup.t()} | {:error, Changeset.t(ShotGroup.t()) | nil}
def create_shot_group( def create_shot_group(attrs, user, ammo_group) do
attrs, Multi.new()
%User{id: user_id}, |> Multi.insert(
%AmmoGroup{id: ammo_group_id, count: ammo_group_count, user_id: user_id} = ammo_group :create_shot_group,
) do %ShotGroup{} |> ShotGroup.create_changeset(user, ammo_group, attrs)
attrs = attrs |> Map.merge(%{"user_id" => user_id, "ammo_group_id" => ammo_group_id}) )
changeset = %ShotGroup{} |> ShotGroup.create_changeset(attrs) |> Multi.run(
shot_group_count = changeset |> Changeset.get_field(:count) :ammo_group,
fn repo, %{create_shot_group: %{ammo_group_id: ammo_group_id, user_id: user_id}} ->
if shot_group_count > ammo_group_count do {:ok,
error = dgettext("errors", "Count must be less than %{count}", count: ammo_group_count) repo.one(from ag in AmmoGroup, where: ag.id == ^ammo_group_id and ag.user_id == ^user_id)}
changeset = changeset |> Changeset.add_error(:count, error)
{:error, changeset}
else
Multi.new()
|> Multi.insert(:create_shot_group, changeset)
|> Multi.update(
:update_ammo_group,
ammo_group |> AmmoGroup.range_changeset(%{"count" => ammo_group_count - shot_group_count})
)
|> Repo.transaction()
|> case do
{:ok, %{create_shot_group: shot_group}} -> {:ok, shot_group}
{:error, :create_shot_group, changeset, _changes_so_far} -> {:error, changeset}
{:error, _other_transaction, _value, _changes_so_far} -> {:error, nil}
end end
)
|> Multi.update(
:update_ammo_group,
fn %{create_shot_group: %{count: shot_group_count}, ammo_group: %{count: ammo_group_count}} ->
ammo_group |> AmmoGroup.range_changeset(%{"count" => ammo_group_count - shot_group_count})
end
)
|> Repo.transaction()
|> case do
{:ok, %{create_shot_group: shot_group}} -> {:ok, shot_group}
{:error, :create_shot_group, changeset, _changes_so_far} -> {:error, changeset}
{:error, _other_transaction, _value, _changes_so_far} -> {:error, nil}
end end
end end
@ -104,42 +101,38 @@ defmodule Cannery.ActivityLog do
@spec update_shot_group(ShotGroup.t(), attrs :: map(), User.t()) :: @spec update_shot_group(ShotGroup.t(), attrs :: map(), User.t()) ::
{:ok, ShotGroup.t()} | {:error, Changeset.t(ShotGroup.t()) | nil} {:ok, ShotGroup.t()} | {:error, Changeset.t(ShotGroup.t()) | nil}
def update_shot_group( def update_shot_group(
%ShotGroup{count: count, user_id: user_id, ammo_group_id: ammo_group_id} = shot_group, %ShotGroup{count: count, user_id: user_id} = shot_group,
attrs, attrs,
%User{id: user_id} = user %User{id: user_id} = user
) do ) do
%{count: ammo_group_count, user_id: ^user_id} = Multi.new()
ammo_group = ammo_group_id |> Ammo.get_ammo_group!(user) |> Multi.update(
:update_shot_group,
changeset = shot_group |> ShotGroup.update_changeset(attrs) shot_group |> ShotGroup.update_changeset(user, attrs)
new_shot_group_count = changeset |> Changeset.get_field(:count) )
shot_diff_to_add = new_shot_group_count - count |> Multi.run(
:ammo_group,
cond do fn repo, %{update_shot_group: %{ammo_group_id: ammo_group_id, user_id: user_id}} ->
shot_diff_to_add > ammo_group_count -> {:ok,
error = dgettext("errors", "Count must be less than %{count}", count: ammo_group_count) repo.one(from ag in AmmoGroup, where: ag.id == ^ammo_group_id and ag.user_id == ^user_id)}
changeset = changeset |> Changeset.add_error(:count, error) end
{:error, changeset} )
|> Multi.update(
new_shot_group_count <= 0 -> :update_ammo_group,
error = dgettext("errors", "Count must be at least 1") fn %{
changeset = changeset |> Changeset.add_error(:count, error) update_shot_group: %{count: new_count},
{:error, changeset} ammo_group: %{count: ammo_group_count} = ammo_group
} ->
true -> shot_diff_to_add = new_count - count
Multi.new() new_ammo_group_count = ammo_group_count - shot_diff_to_add
|> Multi.update(:update_shot_group, changeset) ammo_group |> AmmoGroup.range_changeset(%{"count" => new_ammo_group_count})
|> Multi.update( end
:update_ammo_group, )
ammo_group |> Repo.transaction()
|> AmmoGroup.range_changeset(%{"count" => ammo_group_count - shot_diff_to_add}) |> case do
) {:ok, %{update_shot_group: shot_group}} -> {:ok, shot_group}
|> Repo.transaction() {:error, :update_shot_group, changeset, _changes_so_far} -> {:error, changeset}
|> case do {:error, _other_transaction, _value, _changes_so_far} -> {:error, nil}
{:ok, %{update_shot_group: shot_group}} -> {:ok, shot_group}
{:error, :update_shot_group, changeset, _changes_so_far} -> {:error, changeset}
{:error, _other_transaction, _value, _changes_so_far} -> {:error, nil}
end
end end
end end
@ -158,18 +151,27 @@ defmodule Cannery.ActivityLog do
@spec delete_shot_group(ShotGroup.t(), User.t()) :: @spec delete_shot_group(ShotGroup.t(), User.t()) ::
{:ok, ShotGroup.t()} | {:error, Changeset.t(ShotGroup.t())} {:ok, ShotGroup.t()} | {:error, Changeset.t(ShotGroup.t())}
def delete_shot_group( def delete_shot_group(
%ShotGroup{count: count, user_id: user_id, ammo_group_id: ammo_group_id} = shot_group, %ShotGroup{user_id: user_id} = shot_group,
%User{id: user_id} = user %User{id: user_id}
) do ) do
%{count: ammo_group_count, user_id: ^user_id} =
ammo_group = ammo_group_id |> Ammo.get_ammo_group!(user)
Multi.new() Multi.new()
|> Multi.delete(:delete_shot_group, shot_group) |> Multi.delete(:delete_shot_group, shot_group)
|> Multi.run(
:ammo_group,
fn repo, %{delete_shot_group: %{ammo_group_id: ammo_group_id, user_id: user_id}} ->
{:ok,
repo.one(from ag in AmmoGroup, where: ag.id == ^ammo_group_id and ag.user_id == ^user_id)}
end
)
|> Multi.update( |> Multi.update(
:update_ammo_group, :update_ammo_group,
ammo_group fn %{
|> AmmoGroup.range_changeset(%{"count" => ammo_group_count + count}) delete_shot_group: %{count: count},
ammo_group: %{count: ammo_group_count} = ammo_group
} ->
new_ammo_group_count = ammo_group_count + count
ammo_group |> AmmoGroup.range_changeset(%{"count" => new_ammo_group_count})
end
) )
|> Repo.transaction() |> Repo.transaction()
|> case do |> case do
@ -178,21 +180,4 @@ defmodule Cannery.ActivityLog do
{:error, _other_transaction, _value, _changes_so_far} -> {:error, nil} {:error, _other_transaction, _value, _changes_so_far} -> {:error, nil}
end end
end end
@doc """
Returns an `%Ecto.Changeset{}` for tracking shot_group changes.
## Examples
iex> change_shot_group(shot_group)
%Ecto.Changeset{data: %ShotGroup{}}
"""
@spec change_shot_group(ShotGroup.t() | ShotGroup.new_shot_group()) ::
Changeset.t(ShotGroup.t() | ShotGroup.new_shot_group())
@spec change_shot_group(ShotGroup.t() | ShotGroup.new_shot_group(), attrs :: map()) ::
Changeset.t(ShotGroup.t() | ShotGroup.new_shot_group())
def change_shot_group(%ShotGroup{} = shot_group, attrs \\ %{}) do
shot_group |> ShotGroup.update_changeset(attrs)
end
end end

View File

@ -4,8 +4,9 @@ defmodule Cannery.ActivityLog.ShotGroup do
""" """
use Ecto.Schema use Ecto.Schema
import CanneryWeb.Gettext
import Ecto.Changeset import Ecto.Changeset
alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Ammo.AmmoGroup} alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Ammo.AmmoGroup, Repo}
alias Ecto.{Changeset, UUID} alias Ecto.{Changeset, UUID}
@primary_key {:id, :binary_id, autogenerate: true} @primary_key {:id, :binary_id, autogenerate: true}
@ -37,21 +38,84 @@ defmodule Cannery.ActivityLog.ShotGroup do
@type id :: UUID.t() @type id :: UUID.t()
@doc false @doc false
@spec create_changeset(new_shot_group(), attrs :: map()) :: Changeset.t(new_shot_group()) @spec create_changeset(
def create_changeset(shot_group, attrs) do new_shot_group(),
User.t() | any(),
AmmoGroup.t() | any(),
attrs :: map()
) ::
Changeset.t(new_shot_group())
def create_changeset(
shot_group,
%User{id: user_id},
%AmmoGroup{id: ammo_group_id, user_id: user_id} = ammo_group,
attrs
)
when not (user_id |> is_nil()) and not (ammo_group_id |> is_nil()) do
shot_group shot_group
|> cast(attrs, [:count, :notes, :date, :ammo_group_id, :user_id]) |> change(user_id: user_id)
|> change(ammo_group_id: ammo_group_id)
|> cast(attrs, [:count, :notes, :date])
|> validate_number(:count, greater_than: 0) |> validate_number(:count, greater_than: 0)
|> validate_create_shot_group_count(ammo_group)
|> validate_required([:count, :ammo_group_id, :user_id]) |> validate_required([:count, :ammo_group_id, :user_id])
end end
def create_changeset(shot_group, _invalid_user, _invalid_ammo_group, attrs) do
shot_group
|> cast(attrs, [:count, :notes, :date])
|> validate_number(:count, greater_than: 0)
|> validate_required([:count, :ammo_group_id, :user_id])
|> add_error(:invalid, dgettext("errors", "Please select a valid user and ammo group"))
end
defp validate_create_shot_group_count(changeset, %AmmoGroup{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)
changeset |> Changeset.add_error(:count, error)
else
changeset
end
end
@doc false @doc false
@spec update_changeset(t() | new_shot_group(), attrs :: map()) :: @spec update_changeset(t() | new_shot_group(), User.t(), attrs :: map()) ::
Changeset.t(t() | new_shot_group()) Changeset.t(t() | new_shot_group())
def update_changeset(shot_group, attrs) do def update_changeset(
%ShotGroup{user_id: user_id} = shot_group,
%User{id: user_id} = user,
attrs
)
when not (user_id |> is_nil()) do
shot_group shot_group
|> cast(attrs, [:count, :notes, :date]) |> cast(attrs, [:count, :notes, :date])
|> validate_number(:count, greater_than: 0) |> validate_number(:count, greater_than: 0)
|> validate_required([:count]) |> validate_required([:count])
|> validate_update_shot_group_count(shot_group, user)
end
defp validate_update_shot_group_count(
changeset,
%ShotGroup{count: count} = shot_group,
%User{id: user_id}
)
when not (user_id |> is_nil()) do
%{ammo_group: %AmmoGroup{count: ammo_group_count, user_id: ^user_id}} =
shot_group |> Repo.preload(:ammo_group)
new_shot_group_count = changeset |> Changeset.get_field(:count)
shot_diff_to_add = new_shot_group_count - count
cond do
shot_diff_to_add > ammo_group_count ->
error = dgettext("errors", "Count must be less than %{count}", count: ammo_group_count)
changeset |> Changeset.add_error(:count, error)
new_shot_group_count <= 0 ->
changeset |> Changeset.add_error(:count, dgettext("errors", "Count must be at least 1"))
true ->
changeset
end
end end
end end

View File

@ -3,6 +3,7 @@ defmodule Cannery.Ammo do
The Ammo context. The Ammo context.
""" """
import CanneryWeb.Gettext
import Ecto.Query, warn: false import Ecto.Query, warn: false
alias Cannery.{Accounts.User, Containers, Repo} alias Cannery.{Accounts.User, Containers, Repo}
alias Cannery.ActivityLog.ShotGroup alias Cannery.ActivityLog.ShotGroup
@ -350,18 +351,21 @@ defmodule Cannery.Ammo do
def create_ammo_groups( def create_ammo_groups(
%{"ammo_type_id" => ammo_type_id, "container_id" => container_id} = attrs, %{"ammo_type_id" => ammo_type_id, "container_id" => container_id} = attrs,
multiplier, multiplier,
%User{id: user_id} = user %User{} = user
) )
when multiplier >= 1 and multiplier <= @ammo_group_create_limit do when multiplier >= 1 and multiplier <= @ammo_group_create_limit and
# validate ammo type and container ids belong to user not (ammo_type_id |> is_nil()) and not (container_id |> is_nil()) do
_valid_ammo_type = get_ammo_type!(ammo_type_id, user)
_valid_container = Containers.get_container!(container_id, user)
now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second) now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second)
changesets = changesets =
Enum.map(1..multiplier, fn _count -> Enum.map(1..multiplier, fn _count ->
%AmmoGroup{} |> AmmoGroup.create_changeset(attrs |> Map.put("user_id", user_id)) %AmmoGroup{}
|> AmmoGroup.create_changeset(
get_ammo_type!(ammo_type_id, user),
Containers.get_container!(container_id, user),
user,
attrs
)
end) end)
if changesets |> Enum.all?(fn %{valid?: valid} -> valid end) do if changesets |> Enum.all?(fn %{valid?: valid} -> valid end) do
@ -386,8 +390,27 @@ defmodule Cannery.Ammo do
end end
end end
def create_ammo_groups(invalid_attrs, _multiplier, _user) do def create_ammo_groups(
{:error, %AmmoGroup{} |> AmmoGroup.create_changeset(invalid_attrs)} %{"ammo_type_id" => ammo_type_id, "container_id" => container_id} = attrs,
_multiplier,
user
)
when not (ammo_type_id |> is_nil()) and not (container_id |> is_nil()) do
changeset =
%AmmoGroup{}
|> AmmoGroup.create_changeset(
get_ammo_type!(ammo_type_id, user),
Containers.get_container!(container_id, user),
user,
attrs
)
|> Changeset.add_error(:multiplier, dgettext("errors", "Invalid multiplier"))
{:error, changeset}
end
def create_ammo_groups(invalid_attrs, _multiplier, user) do
{:error, %AmmoGroup{} |> AmmoGroup.create_changeset(nil, nil, user, invalid_attrs)}
end end
@doc """ @doc """
@ -436,18 +459,4 @@ defmodule Cannery.Ammo do
@spec delete_ammo_group!(AmmoGroup.t(), User.t()) :: AmmoGroup.t() @spec delete_ammo_group!(AmmoGroup.t(), User.t()) :: AmmoGroup.t()
def delete_ammo_group!(%AmmoGroup{user_id: user_id} = ammo_group, %User{id: user_id}), def delete_ammo_group!(%AmmoGroup{user_id: user_id} = ammo_group, %User{id: user_id}),
do: ammo_group |> Repo.delete!() do: ammo_group |> Repo.delete!()
@doc """
Returns an `%Changeset{}` for tracking ammo_group changes.
## Examples
iex> change_ammo_group(ammo_group)
%Changeset{data: %AmmoGroup{}}
"""
@spec change_ammo_group(AmmoGroup.t()) :: Changeset.t(AmmoGroup.t())
@spec change_ammo_group(AmmoGroup.t(), attrs :: map()) :: Changeset.t(AmmoGroup.t())
def change_ammo_group(%AmmoGroup{} = ammo_group, attrs \\ %{}),
do: AmmoGroup.update_changeset(ammo_group, attrs)
end end

View File

@ -7,6 +7,7 @@ defmodule Cannery.Ammo.AmmoGroup do
""" """
use Ecto.Schema use Ecto.Schema
import CanneryWeb.Gettext
import Ecto.Changeset import Ecto.Changeset
alias Cannery.Ammo.{AmmoGroup, AmmoType} alias Cannery.Ammo.{AmmoGroup, AmmoType}
alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Containers.Container} alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Containers.Container}
@ -48,22 +49,49 @@ defmodule Cannery.Ammo.AmmoGroup do
@type id :: UUID.t() @type id :: UUID.t()
@doc false @doc false
@spec create_changeset(new_ammo_group(), attrs :: map()) :: Changeset.t(new_ammo_group()) @spec create_changeset(
def create_changeset(ammo_group, attrs) do new_ammo_group(),
AmmoType.t() | nil,
Container.t() | nil,
User.t(),
attrs :: map()
) :: Changeset.t(new_ammo_group())
def create_changeset(
ammo_group,
%AmmoType{id: ammo_type_id},
%Container{id: container_id, user_id: user_id},
%User{id: user_id},
attrs
)
when not (ammo_type_id |> is_nil()) and not (container_id |> is_nil()) and
not (user_id |> is_nil()) do
ammo_group ammo_group
|> cast(attrs, [:count, :price_paid, :notes, :staged, :ammo_type_id, :container_id, :user_id]) |> change(ammo_type_id: ammo_type_id)
|> change(user_id: user_id)
|> change(container_id: container_id)
|> cast(attrs, [:count, :price_paid, :notes, :staged])
|> validate_number(:count, greater_than: 0) |> validate_number(:count, greater_than: 0)
|> validate_required([:count, :staged, :ammo_type_id, :container_id, :user_id]) |> validate_required([:count, :staged, :ammo_type_id, :container_id, :user_id])
end end
@doc """
Invalid changeset, used to prompt user to select ammo type and container
"""
def create_changeset(ammo_group, _invalid_ammo_type, _invalid_container, _invalid_user, attrs) do
ammo_group
|> cast(attrs, [:ammo_type_id, :container_id])
|> validate_required([:ammo_type_id, :container_id])
|> add_error(:invalid, dgettext("errors", "Please select an ammo type and container"))
end
@doc false @doc false
@spec update_changeset(t() | new_ammo_group(), attrs :: map()) :: @spec update_changeset(t() | new_ammo_group(), attrs :: map()) ::
Changeset.t(t() | new_ammo_group()) Changeset.t(t() | new_ammo_group())
def update_changeset(ammo_group, attrs) do def update_changeset(ammo_group, attrs) do
ammo_group ammo_group
|> cast(attrs, [:count, :price_paid, :notes, :staged, :ammo_type_id, :container_id]) |> cast(attrs, [:count, :price_paid, :notes, :staged])
|> validate_number(:count, greater_than_or_equal_to: 0) |> validate_number(:count, greater_than_or_equal_to: 0)
|> validate_required([:count, :staged, :ammo_type_id, :container_id, :user_id]) |> validate_required([:count, :staged])
end end
@doc """ @doc """
@ -75,6 +103,6 @@ defmodule Cannery.Ammo.AmmoGroup do
def range_changeset(ammo_group, attrs) do def range_changeset(ammo_group, attrs) do
ammo_group ammo_group
|> cast(attrs, [:count, :staged]) |> cast(attrs, [:count, :staged])
|> validate_required([:count, :staged, :ammo_type_id, :container_id, :user_id]) |> validate_required([:count, :staged])
end end
end end

View File

@ -118,6 +118,6 @@ defmodule Cannery.Ammo.AmmoType do
def update_changeset(ammo_type, attrs) do def update_changeset(ammo_type, attrs) do
ammo_type ammo_type
|> cast(attrs, changeset_fields()) |> cast(attrs, changeset_fields())
|> validate_required([:name, :user_id]) |> validate_required(:name)
end end
end end

View File

@ -207,6 +207,18 @@ defmodule Cannery.Containers do
if count == 0, do: raise("could not delete container tag"), else: count if count == 0, do: raise("could not delete container tag"), else: count
end end
@doc """
Returns number of rounds in container. If data is already preloaded, then
there will be no db hit.
"""
@spec get_container_ammo_group_count!(Container.t()) :: non_neg_integer()
def get_container_ammo_group_count!(%Container{} = container) do
container
|> Repo.preload(:ammo_groups)
|> Map.fetch!(:ammo_groups)
|> Enum.count()
end
@doc """ @doc """
Returns number of rounds in container. If data is already preloaded, then Returns number of rounds in container. If data is already preloaded, then
there will be no db hit. there will be no db hit.

View File

@ -55,6 +55,6 @@ defmodule Cannery.Containers.Container do
def update_changeset(container, attrs) do def update_changeset(container, attrs) do
container container
|> cast(attrs, [:name, :desc, :type, :location]) |> cast(attrs, [:name, :desc, :type, :location])
|> validate_required([:name, :type, :user_id]) |> validate_required([:name, :type])
end end
end end

View File

@ -51,7 +51,7 @@ defmodule Cannery.Invites.Invite do
def update_changeset(invite, attrs) do def update_changeset(invite, attrs) do
invite invite
|> cast(attrs, [:name, :uses_left, :disabled_at]) |> cast(attrs, [:name, :uses_left, :disabled_at])
|> validate_required([:name, :token, :user_id]) |> validate_required([:name])
|> validate_number(:uses_left, greater_than_or_equal_to: 0) |> validate_number(:uses_left, greater_than_or_equal_to: 0)
end end
end end

View File

@ -47,6 +47,6 @@ defmodule Cannery.Tags.Tag do
def update_changeset(tag, attrs) do def update_changeset(tag, attrs) do
tag tag
|> cast(attrs, [:name, :bg_color, :text_color]) |> cast(attrs, [:name, :bg_color, :text_color])
|> validate_required([:name, :bg_color, :text_color, :user_id]) |> validate_required([:name, :bg_color, :text_color])
end end
end end

View File

@ -16,9 +16,10 @@ defmodule CanneryWeb.Components.AddShotGroupComponent do
}, },
Socket.t() Socket.t()
) :: {:ok, Socket.t()} ) :: {:ok, Socket.t()}
def update(%{ammo_group: _ammo_group, current_user: _current_user} = assigns, socket) do def update(%{ammo_group: ammo_group, current_user: current_user} = assigns, socket) do
changeset = changeset =
%ShotGroup{date: NaiveDateTime.utc_now(), count: 1} |> ActivityLog.change_shot_group() %ShotGroup{date: NaiveDateTime.utc_now(), count: 1}
|> ShotGroup.create_changeset(current_user, ammo_group, %{})
{:ok, socket |> assign(assigns) |> assign(:changeset, changeset)} {:ok, socket |> assign(assigns) |> assign(:changeset, changeset)}
end end
@ -27,21 +28,13 @@ defmodule CanneryWeb.Components.AddShotGroupComponent do
def handle_event( def handle_event(
"validate", "validate",
%{"shot_group" => shot_group_params}, %{"shot_group" => shot_group_params},
%{ %{assigns: %{ammo_group: ammo_group, current_user: current_user}} = socket
assigns: %{
ammo_group: %AmmoGroup{id: ammo_group_id} = ammo_group,
current_user: %User{id: user_id}
}
} = socket
) do ) do
shot_group_params = params = shot_group_params |> process_params(ammo_group)
shot_group_params
|> process_params(ammo_group)
|> Map.merge(%{"ammo_group_id" => ammo_group_id, "user_id" => user_id})
changeset = changeset =
%ShotGroup{} %ShotGroup{}
|> ActivityLog.change_shot_group(shot_group_params) |> ShotGroup.create_changeset(current_user, ammo_group, params)
|> Map.put(:action, :validate) |> Map.put(:action, :validate)
{:noreply, socket |> assign(:changeset, changeset)} {:noreply, socket |> assign(:changeset, changeset)}
@ -51,17 +44,12 @@ defmodule CanneryWeb.Components.AddShotGroupComponent do
"save", "save",
%{"shot_group" => shot_group_params}, %{"shot_group" => shot_group_params},
%{ %{
assigns: %{ assigns: %{ammo_group: ammo_group, current_user: current_user, return_to: return_to}
ammo_group: %{id: ammo_group_id} = ammo_group,
current_user: %{id: user_id} = current_user,
return_to: return_to
}
} = socket } = socket
) do ) do
socket = socket =
shot_group_params shot_group_params
|> process_params(ammo_group) |> process_params(ammo_group)
|> Map.merge(%{"ammo_group_id" => ammo_group_id, "user_id" => user_id})
|> ActivityLog.create_shot_group(current_user, ammo_group) |> ActivityLog.create_shot_group(current_user, ammo_group)
|> case do |> case do
{:ok, _shot_group} -> {:ok, _shot_group} ->

View File

@ -45,7 +45,12 @@ defmodule CanneryWeb.Components.ContainerCard do
</span> </span>
<% end %> <% end %>
<%= if @container.ammo_groups do %> <%= unless @container.ammo_groups |> Enum.empty?() do %>
<span class="rounded-lg title text-lg">
<%= gettext("Packs:") %>
<%= @container |> Containers.get_container_ammo_group_count!() %>
</span>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Rounds:") %> <%= gettext("Rounds:") %>
<%= @container |> Containers.get_container_rounds!() %> <%= @container |> Containers.get_container_rounds!() %>

View File

@ -22,7 +22,7 @@ defmodule CanneryWeb.Components.MoveAmmoGroupComponent do
assigns, assigns,
socket socket
) do ) do
changeset = Ammo.change_ammo_group(ammo_group) changeset = ammo_group |> AmmoGroup.update_changeset(%{})
containers = containers =
Containers.list_containers(current_user) Containers.list_containers(current_user)

View File

@ -16,10 +16,16 @@ defmodule CanneryWeb.Components.Topbar do
<nav role="navigation" class="mb-8 px-8 py-4 w-full bg-primary-400"> <nav role="navigation" class="mb-8 px-8 py-4 w-full bg-primary-400">
<div class="flex flex-col sm:flex-row justify-between items-center"> <div class="flex flex-col sm:flex-row justify-between items-center">
<div class="mb-4 sm:mb-0 sm:mr-8 flex flex-row justify-start items-center space-x-2"> <div class="mb-4 sm:mb-0 sm:mr-8 flex flex-row justify-start items-center space-x-2">
<%= live_redirect("Cannery", <%= live_redirect to: Routes.live_path(Endpoint, HomeLive),
to: Routes.live_path(Endpoint, HomeLive), class: "inline mx-2 my-1 leading-5 text-xl text-white"
class: "mx-2 my-1 leading-5 text-xl text-white hover:underline" do %>
) %> <img
src={Routes.static_path(Endpoint, "/images/cannery.svg")}
alt={gettext("Cannery logo")}
class="inline-block h-8 mx-1"
/>
<h1 class="inline hover:underline">Cannery</h1>
<% end %>
<%= if @title_content do %> <%= if @title_content do %>
<span class="mx-2 my-1"> <span class="mx-2 my-1">
@ -47,13 +53,13 @@ defmodule CanneryWeb.Components.Topbar do
) %> ) %>
</li> </li>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= live_redirect(gettext("Ammo"), <%= live_redirect(gettext("Catalog"),
to: Routes.ammo_type_index_path(Endpoint, :index), to: Routes.ammo_type_index_path(Endpoint, :index),
class: "text-primary-600 text-white hover:underline" class: "text-primary-600 text-white hover:underline"
) %> ) %>
</li> </li>
<li class="mx-2 my-1"> <li class="mx-2 my-1">
<%= live_redirect(gettext("Manage"), <%= live_redirect(gettext("Ammo"),
to: Routes.ammo_group_index_path(Endpoint, :index), to: Routes.ammo_group_index_path(Endpoint, :index),
class: "text-primary-600 text-white hover:underline" class: "text-primary-600 text-white hover:underline"
) %> ) %>

View File

@ -25,7 +25,7 @@ defmodule CanneryWeb.AmmoGroupLive.FormComponent do
socket = socket =
socket socket
|> assign(:ammo_group_create_limit, @ammo_group_create_limit) |> assign(:ammo_group_create_limit, @ammo_group_create_limit)
|> assign(:changeset, Ammo.change_ammo_group(ammo_group)) |> assign(:changeset, ammo_group |> AmmoGroup.update_changeset(%{}))
|> assign(:ammo_types, Ammo.list_ammo_types(current_user)) |> assign(:ammo_types, Ammo.list_ammo_types(current_user))
|> assign_new(:containers, fn -> Containers.list_containers(current_user) end) |> assign_new(:containers, fn -> Containers.list_containers(current_user) end)
@ -36,7 +36,7 @@ defmodule CanneryWeb.AmmoGroupLive.FormComponent do
def handle_event( def handle_event(
"validate", "validate",
%{"ammo_group" => ammo_group_params}, %{"ammo_group" => ammo_group_params},
%{assigns: %{action: action, ammo_group: ammo_group}} = socket %{assigns: %{action: action, ammo_group: ammo_group, current_user: user}} = socket
) do ) do
changeset_action = changeset_action =
case action do case action do
@ -44,7 +44,24 @@ defmodule CanneryWeb.AmmoGroupLive.FormComponent do
:edit -> :update :edit -> :update
end end
changeset = ammo_group |> Ammo.change_ammo_group(ammo_group_params) changeset =
case action do
:new ->
ammo_type =
if ammo_group_params |> Map.has_key?("ammo_type_id"),
do: ammo_group_params |> Map.get("ammo_type_id") |> Ammo.get_ammo_type!(user),
else: nil
container =
if ammo_group_params |> Map.has_key?("container_id"),
do: ammo_group_params |> Map.get("container_id") |> Containers.get_container!(user),
else: nil
ammo_group |> AmmoGroup.create_changeset(ammo_type, container, user, ammo_group_params)
:edit ->
ammo_group |> AmmoGroup.update_changeset(ammo_group_params)
end
changeset = changeset =
case changeset |> Changeset.apply_action(changeset_action) do case changeset |> Changeset.apply_action(changeset_action) do
@ -85,7 +102,7 @@ defmodule CanneryWeb.AmmoGroupLive.FormComponent do
socket = socket =
case Ammo.update_ammo_group(ammo_group, ammo_group_params, current_user) do case Ammo.update_ammo_group(ammo_group, ammo_group_params, current_user) do
{:ok, _ammo_group} -> {:ok, _ammo_group} ->
prompt = dgettext("prompts", "Ammo group updated successfully") prompt = dgettext("prompts", "Ammo updated successfully")
socket |> put_flash(:info, prompt) |> push_redirect(to: return_to) socket |> put_flash(:info, prompt) |> push_redirect(to: return_to)
{:error, %Changeset{} = changeset} -> {:error, %Changeset{} = changeset} ->
@ -146,8 +163,8 @@ defmodule CanneryWeb.AmmoGroupLive.FormComponent do
prompt = prompt =
dngettext( dngettext(
"prompts", "prompts",
"Ammo group created successfully", "Ammo added successfully",
"Ammo groups created successfully", "Ammo added successfully",
count count
) )

View File

@ -39,7 +39,7 @@
) %> ) %>
</div> </div>
<% else %> <% else %>
<%= live_patch(dgettext("actions", "New Ammo group"), <%= live_patch(dgettext("actions", "Add Ammo"),
to: Routes.ammo_group_index_path(Endpoint, :new), to: Routes.ammo_group_index_path(Endpoint, :new),
class: "btn btn-primary" class: "btn btn-primary"
) %> ) %>

View File

@ -35,9 +35,9 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
defp page_title(:add_shot_group), do: gettext("Record Shots") defp page_title(:add_shot_group), do: gettext("Record Shots")
defp page_title(:edit_shot_group), do: gettext("Edit Shot Records") defp page_title(:edit_shot_group), do: gettext("Edit Shot Records")
defp page_title(:move), do: gettext("Move Ammo group") defp page_title(:move), do: gettext("Move Ammo")
defp page_title(:show), do: gettext("Show Ammo group") defp page_title(:show), do: gettext("Show Ammo")
defp page_title(:edit), do: gettext("Edit Ammo group") defp page_title(:edit), do: gettext("Edit Ammo")
@impl true @impl true
def handle_event( def handle_event(
@ -47,7 +47,7 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
) do ) do
ammo_group |> Ammo.delete_ammo_group!(current_user) ammo_group |> Ammo.delete_ammo_group!(current_user)
prompt = dgettext("prompts", "Ammo group deleted succesfully") prompt = dgettext("prompts", "Ammo deleted succesfully")
redirect_to = Routes.ammo_group_index_path(socket, :index) redirect_to = Routes.ammo_group_index_path(socket, :index)
{:noreply, socket |> put_flash(:info, prompt) |> push_redirect(to: redirect_to)} {:noreply, socket |> put_flash(:info, prompt) |> push_redirect(to: redirect_to)}

View File

@ -52,7 +52,7 @@
<div class="flex flex-col justify-center items-center"> <div class="flex flex-col justify-center items-center">
<div class="flex flex-wrap justify-center items-center text-primary-600"> <div class="flex flex-wrap justify-center items-center text-primary-600">
<%= live_patch(dgettext("actions", "Ammo Details"), <%= live_patch(dgettext("actions", "View in Catalog"),
to: Routes.ammo_type_show_path(Endpoint, :show, @ammo_group.ammo_type), to: 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"] data: [qa: "details"]
@ -105,7 +105,7 @@
<.container_card container={@ammo_group.container} /> <.container_card container={@ammo_group.container} />
<% else %> <% else %>
<%= gettext("This ammo group is not in a container") %> <%= gettext("This ammo is not in a container") %>
<% end %> <% end %>
</div> </div>

View File

@ -1,6 +1,6 @@
<div class="flex flex-col space-y-8 justify-center items-center"> <div class="flex flex-col space-y-8 justify-center items-center">
<h1 class="title text-2xl title-primary-500"> <h1 class="title text-2xl title-primary-500">
<%= gettext("Ammo Types") %> <%= gettext("Catalog") %>
</h1> </h1>
<%= if @rows |> Enum.empty?() do %> <%= if @rows |> Enum.empty?() do %>

View File

@ -22,6 +22,18 @@
</span> </span>
<% end %> <% end %>
<%= unless @container.ammo_groups |> Enum.empty?() do %>
<span class="rounded-lg title text-lg">
<%= gettext("Packs:") %>
<%= @container |> Containers.get_container_ammo_group_count!() %>
</span>
<span class="rounded-lg title text-lg">
<%= gettext("Rounds:") %>
<%= @container |> Containers.get_container_rounds!() %>
</span>
<% end %>
<div class="flex space-x-4 justify-center items-center text-primary-600"> <div class="flex space-x-4 justify-center items-center text-primary-600">
<%= live_patch to: Routes.container_show_path(Endpoint, :edit, @container), <%= live_patch to: Routes.container_show_path(Endpoint, :edit, @container),
class: "text-primary-600 link", class: "text-primary-600 link",
@ -75,7 +87,7 @@
<div> <div>
<%= if @container.ammo_groups |> Enum.empty?() do %> <%= if @container.ammo_groups |> Enum.empty?() do %>
<h2 class="mx-8 my-4 title text-lg text-primary-600"> <h2 class="mx-8 my-4 title text-lg text-primary-600">
<%= gettext("No ammo groups in this container") %> <%= gettext("No ammo in this container") %>
</h2> </h2>
<% else %> <% else %>
<div class="flex flex-wrap justify-center items-center"> <div class="flex flex-wrap justify-center items-center">

View File

@ -5,6 +5,7 @@ defmodule CanneryWeb.HomeLive do
use CanneryWeb, :live_view use CanneryWeb, :live_view
alias Cannery.Accounts alias Cannery.Accounts
alias CanneryWeb.Endpoint
@impl true @impl true
def mount(_params, _session, socket) do def mount(_params, _session, socket) do
@ -36,6 +37,13 @@ defmodule CanneryWeb.HomeLive do
def render(assigns) do def render(assigns) do
~H""" ~H"""
<div class="mx-auto px-8 sm:px-16 flex flex-col justify-center items-center text-center space-y-4 max-w-3xl"> <div class="mx-auto px-8 sm:px-16 flex flex-col justify-center items-center text-center space-y-4 max-w-3xl">
<img
src={Routes.static_path(Endpoint, "/images/cannery.svg")}
alt={gettext("Cannery logo")}
class="inline-block w-32 hover:-mt-2 hover:mb-2 transition-all duration-500 ease-in-out"
title={gettext("isn't he cute >:3")}
/>
<h1 class="title text-primary-600 text-2xl"> <h1 class="title text-primary-600 text-2xl">
<%= gettext("Welcome to %{name}", name: "Cannery") %> <%= gettext("Welcome to %{name}", name: "Cannery") %>
</h1> </h1>
@ -126,7 +134,7 @@ defmodule CanneryWeb.HomeLive do
to: "https://gitea.bubbletea.dev/shibao/cannery/src/branch/stable/CHANGELOG.md", to: "https://gitea.bubbletea.dev/shibao/cannery/src/branch/stable/CHANGELOG.md",
target: "_blank", target: "_blank",
rel: "noopener noreferrer" do %> rel: "noopener noreferrer" do %>
<p>0.5.3</p> <p>0.5.4</p>
<i class="fas fa-md fa-info-circle"></i> <i class="fas fa-md fa-info-circle"></i>
<% end %> <% end %>
</li> </li>

View File

@ -1,6 +1,6 @@
defmodule CanneryWeb.RangeLive.FormComponent do defmodule CanneryWeb.RangeLive.FormComponent do
@moduledoc """ @moduledoc """
Livecomponent that can update or create a ShotGroup Livecomponent that can update a ShotGroup
""" """
use CanneryWeb, :live_component use CanneryWeb, :live_component
@ -24,7 +24,7 @@ defmodule CanneryWeb.RangeLive.FormComponent do
} = assigns, } = assigns,
socket socket
) do ) do
changeset = shot_group |> ActivityLog.change_shot_group() changeset = shot_group |> ShotGroup.update_changeset(current_user, %{})
ammo_group = Ammo.get_ammo_group!(ammo_group_id, current_user) ammo_group = Ammo.get_ammo_group!(ammo_group_id, current_user)
{:ok, socket |> assign(assigns) |> assign(ammo_group: ammo_group, changeset: changeset)} {:ok, socket |> assign(assigns) |> assign(ammo_group: ammo_group, changeset: changeset)}
end end
@ -33,11 +33,11 @@ defmodule CanneryWeb.RangeLive.FormComponent do
def handle_event( def handle_event(
"validate", "validate",
%{"shot_group" => shot_group_params}, %{"shot_group" => shot_group_params},
%{assigns: %{shot_group: shot_group}} = socket %{assigns: %{current_user: current_user, shot_group: shot_group}} = socket
) do ) do
changeset = changeset =
shot_group shot_group
|> ActivityLog.change_shot_group(shot_group_params) |> ShotGroup.update_changeset(current_user, shot_group_params)
|> Map.put(:action, :validate) |> Map.put(:action, :validate)
{:noreply, assign(socket, :changeset, changeset)} {:noreply, assign(socket, :changeset, changeset)}

View File

@ -65,7 +65,7 @@ defmodule CanneryWeb.RangeLive.Index do
{:ok, _ammo_group} = {:ok, _ammo_group} =
ammo_group |> Ammo.update_ammo_group(%{"staged" => !ammo_group.staged}, current_user) ammo_group |> Ammo.update_ammo_group(%{"staged" => !ammo_group.staged}, current_user)
prompt = dgettext("prompts", "Ammo group unstaged succesfully") prompt = dgettext("prompts", "Ammo unstaged succesfully")
{:noreply, socket |> put_flash(:info, prompt) |> display_shot_groups()} {:noreply, socket |> put_flash(:info, prompt) |> display_shot_groups()}
end end

View File

@ -65,12 +65,12 @@ defmodule CanneryWeb.Router do
live "/tags/new", TagLive.Index, :new live "/tags/new", TagLive.Index, :new
live "/tags/:id/edit", TagLive.Index, :edit live "/tags/:id/edit", TagLive.Index, :edit
live "/ammo_types", AmmoTypeLive.Index, :index live "/catalog", AmmoTypeLive.Index, :index
live "/ammo_types/new", AmmoTypeLive.Index, :new live "/catalog/new", AmmoTypeLive.Index, :new
live "/ammo_types/:id/edit", AmmoTypeLive.Index, :edit live "/catalog/:id/edit", AmmoTypeLive.Index, :edit
live "/ammo_types/:id", AmmoTypeLive.Show, :show live "/catalog/:id", AmmoTypeLive.Show, :show
live "/ammo_types/:id/show/edit", AmmoTypeLive.Show, :edit live "/catalog/:id/show/edit", AmmoTypeLive.Show, :edit
live "/containers", ContainerLive.Index, :index live "/containers", ContainerLive.Index, :index
live "/containers/new", ContainerLive.Index, :new live "/containers/new", ContainerLive.Index, :new
@ -81,17 +81,17 @@ defmodule CanneryWeb.Router do
live "/containers/:id/show/edit", ContainerLive.Show, :edit live "/containers/:id/show/edit", ContainerLive.Show, :edit
live "/containers/:id/show/edit_tags", ContainerLive.Show, :edit_tags live "/containers/:id/show/edit_tags", ContainerLive.Show, :edit_tags
live "/ammo_groups", AmmoGroupLive.Index, :index live "/ammo", AmmoGroupLive.Index, :index
live "/ammo_groups/new", AmmoGroupLive.Index, :new live "/ammo/new", AmmoGroupLive.Index, :new
live "/ammo_groups/:id/edit", AmmoGroupLive.Index, :edit live "/ammo/:id/edit", AmmoGroupLive.Index, :edit
live "/ammo_groups/:id/add_shot_group", AmmoGroupLive.Index, :add_shot_group live "/ammo/:id/add_shot_group", AmmoGroupLive.Index, :add_shot_group
live "/ammo_groups/:id/move", AmmoGroupLive.Index, :move live "/ammo/:id/move", AmmoGroupLive.Index, :move
live "/ammo_groups/:id", AmmoGroupLive.Show, :show live "/ammo/:id", AmmoGroupLive.Show, :show
live "/ammo_groups/:id/show/edit", AmmoGroupLive.Show, :edit live "/ammo/:id/show/edit", AmmoGroupLive.Show, :edit
live "/ammo_groups/:id/show/add_shot_group", AmmoGroupLive.Show, :add_shot_group live "/ammo/:id/show/add_shot_group", AmmoGroupLive.Show, :add_shot_group
live "/ammo_groups/:id/show/move", AmmoGroupLive.Show, :move live "/ammo/:id/show/move", AmmoGroupLive.Show, :move
live "/ammo_groups/:id/show/:shot_group_id/edit", AmmoGroupLive.Show, :edit_shot_group live "/ammo/:id/show/:shot_group_id/edit", AmmoGroupLive.Show, :edit_shot_group
live "/range", RangeLive.Index, :index live "/range", RangeLive.Index, :index
live "/range/:id/edit", RangeLive.Index, :edit live "/range/:id/edit", RangeLive.Index, :edit

View File

@ -4,7 +4,7 @@ defmodule Cannery.MixProject do
def project do def project do
[ [
app: :cannery, app: :cannery,
version: "0.5.3", version: "0.5.4",
elixir: "1.13.4", elixir: "1.13.4",
elixirc_paths: elixirc_paths(Mix.env()), elixirc_paths: elixirc_paths(Mix.env()),
compilers: [:gettext] ++ Mix.compilers(), compilers: [:gettext] ++ Mix.compilers(),

View File

@ -12,6 +12,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "Add Ammo" msgid "Add Ammo"
msgstr "" msgstr ""
@ -65,7 +66,7 @@ msgid "Invite someone new!"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:106 #: lib/cannery_web/components/topbar.ex:112
#: lib/cannery_web/templates/user_confirmation/new.html.heex:30 #: lib/cannery_web/templates/user_confirmation/new.html.heex:30
#: lib/cannery_web/templates/user_registration/new.html.heex:48 #: lib/cannery_web/templates/user_registration/new.html.heex:48
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:48 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:48
@ -80,11 +81,6 @@ msgstr ""
msgid "Make your first tag!" msgid "Make your first tag!"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "New Ammo group"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:17 #: lib/cannery_web/live/ammo_type_live/index.html.heex:17
msgid "New Ammo type" msgid "New Ammo type"
@ -101,7 +97,7 @@ msgid "New Tag"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:99 #: lib/cannery_web/components/topbar.ex:105
#: lib/cannery_web/templates/user_confirmation/new.html.heex:25 #: lib/cannery_web/templates/user_confirmation/new.html.heex:25
#: 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:42 #: lib/cannery_web/templates/user_registration/new.html.heex:42
@ -140,7 +136,7 @@ msgid "Send instructions to reset password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:53 #: lib/cannery_web/live/container_live/show.html.heex:65
msgid "Why not add one?" msgid "Why not add one?"
msgstr "" msgstr ""
@ -166,11 +162,6 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "Ammo Details"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:89 #: lib/cannery_web/components/move_ammo_group_component.ex:89
msgid "Add another container!" msgid "Add another container!"
@ -211,3 +202,8 @@ msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:134 #: lib/cannery_web/templates/user_settings/edit.html.heex:134
msgid "Change language" msgid "Change language"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "View in Catalog"
msgstr ""

View File

@ -25,6 +25,7 @@ msgstr ""
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "Add Ammo" msgid "Add Ammo"
msgstr "Munition hinzufügen" msgstr "Munition hinzufügen"
@ -78,7 +79,7 @@ msgid "Invite someone new!"
msgstr "Laden Sie jemanden ein!" msgstr "Laden Sie jemanden ein!"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:106 #: lib/cannery_web/components/topbar.ex:112
#: lib/cannery_web/templates/user_confirmation/new.html.heex:30 #: lib/cannery_web/templates/user_confirmation/new.html.heex:30
#: lib/cannery_web/templates/user_registration/new.html.heex:48 #: lib/cannery_web/templates/user_registration/new.html.heex:48
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:48 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:48
@ -93,11 +94,6 @@ msgstr "Einloggen"
msgid "Make your first tag!" msgid "Make your first tag!"
msgstr "Erstellen Sie ihren ersten Tag!" msgstr "Erstellen Sie ihren ersten Tag!"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "New Ammo group"
msgstr "Neue Munitionsgruppe"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:17 #: lib/cannery_web/live/ammo_type_live/index.html.heex:17
msgid "New Ammo type" msgid "New Ammo type"
@ -114,7 +110,7 @@ msgid "New Tag"
msgstr "Neuer Tag" msgstr "Neuer Tag"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:99 #: lib/cannery_web/components/topbar.ex:105
#: lib/cannery_web/templates/user_confirmation/new.html.heex:25 #: lib/cannery_web/templates/user_confirmation/new.html.heex:25
#: 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:42 #: lib/cannery_web/templates/user_registration/new.html.heex:42
@ -153,7 +149,7 @@ msgid "Send instructions to reset password"
msgstr "Anleitung zum Passwort zurücksetzen zusenden" msgstr "Anleitung zum Passwort zurücksetzen zusenden"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:53 #: lib/cannery_web/live/container_live/show.html.heex:65
msgid "Why not add one?" msgid "Why not add one?"
msgstr "Warum fügen Sie keine hinzu?" msgstr "Warum fügen Sie keine hinzu?"
@ -179,11 +175,6 @@ msgstr "Warum nicht einige für den Schießstand auswählen?"
msgid "Record shots" msgid "Record shots"
msgstr "Schüsse dokumentieren" msgstr "Schüsse dokumentieren"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "Ammo Details"
msgstr "Munitionsdetails"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:89 #: lib/cannery_web/components/move_ammo_group_component.ex:89
msgid "Add another container!" msgid "Add another container!"
@ -224,3 +215,8 @@ msgstr "Sprache wechseln"
#: lib/cannery_web/templates/user_settings/edit.html.heex:134 #: lib/cannery_web/templates/user_settings/edit.html.heex:134
msgid "Change language" msgid "Change language"
msgstr "Sprache wechseln" msgstr "Sprache wechseln"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "View in Catalog"
msgstr ""

View File

@ -24,14 +24,14 @@ msgstr ""
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:56 #: lib/cannery_web/live/home_live.ex:64
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
"Mit %{name} können Sie ihren Munitionsbestand vor und nach dem Schießen " "Mit %{name} können Sie ihren Munitionsbestand vor und nach dem Schießen "
"leicht im Auge behalten" "leicht im Auge behalten"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:78 #: lib/cannery_web/live/home_live.ex:86
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"
@ -41,12 +41,12 @@ msgid "Admins"
msgstr "Admins" msgstr "Admins"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:92 #: lib/cannery_web/live/home_live.ex:100
msgid "Admins:" msgid "Admins:"
msgstr "Admins:" msgstr "Admins:"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:50 #: lib/cannery_web/components/topbar.ex:62
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
msgid "Ammo" msgid "Ammo"
@ -124,7 +124,7 @@ msgid "Container"
msgstr "Behälter" msgstr "Behälter"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:44 #: lib/cannery_web/components/topbar.ex:50
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:36
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
msgid "Containers" msgid "Containers"
@ -167,13 +167,12 @@ msgid "Disable"
msgstr "Deaktivieren" msgstr "Deaktivieren"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:53 #: lib/cannery_web/live/home_live.ex:61
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "Einfache Anwendung:" msgstr "Einfache Anwendung:"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: 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/show.ex:40
msgid "Edit Ammo group" msgid "Edit Ammo group"
msgstr "Munitionsgruppe bearbeiten" msgstr "Munitionsgruppe bearbeiten"
@ -223,7 +222,7 @@ msgid "Incendiary"
msgstr "Brandmunition" msgstr "Brandmunition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:87 #: lib/cannery_web/live/home_live.ex:95
msgid "Instance Information" msgid "Instance Information"
msgstr "Instanzinformationen" msgstr "Instanzinformationen"
@ -233,12 +232,12 @@ msgid "Invite Disabled"
msgstr "Einladung deaktiviert" msgstr "Einladung deaktiviert"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:118 #: lib/cannery_web/live/home_live.ex:126
msgid "Invite Only" msgid "Invite Only"
msgstr "Nur mit Einladung" msgstr "Nur mit Einladung"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:69 #: lib/cannery_web/components/topbar.ex:75
#: lib/cannery_web/live/invite_live/index.ex:41 #: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.html.heex:3 #: lib/cannery_web/live/invite_live/index.html.heex:3
msgid "Invites" msgid "Invites"
@ -266,11 +265,6 @@ msgstr "Standort:"
msgid "Magazine, Clip, Ammo Box, etc" msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Magazin, Ladestreifen, Munitionskiste usw." msgstr "Magazin, Ladestreifen, Munitionskiste usw."
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:56
msgid "Manage"
msgstr "Verwalten"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:73
@ -332,11 +326,6 @@ msgstr "Keine Munitionsarten"
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "Keine Munition dieser Art" msgstr "Keine Munition dieser Art"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:78
msgid "No ammo groups in this container"
msgstr "Keine Munitionsgruppe in diesem Behälter"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
msgid "No containers" msgid "No containers"
@ -399,17 +388,17 @@ msgid "Primer type"
msgstr "Zündertyp" msgstr "Zündertyp"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:117 #: lib/cannery_web/live/home_live.ex:125
msgid "Public Signups" msgid "Public Signups"
msgstr "Öffentliche Registrierung" msgstr "Öffentliche Registrierung"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:65 #: lib/cannery_web/live/home_live.ex:73
msgid "Secure:" msgid "Secure:"
msgstr "Sicher:" msgstr "Sicher:"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:68 #: lib/cannery_web/live/home_live.ex:76
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
"Hosten Sie Ihre eigene Instanz oder verwenden Sie eine Instanz, der Sie " "Hosten Sie Ihre eigene Instanz oder verwenden Sie eine Instanz, der Sie "
@ -426,18 +415,13 @@ msgstr "Unbegrenzt setzen"
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:39
msgid "Show Ammo group"
msgstr "Munitionsgruppen anzeigen"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:44 #: lib/cannery_web/live/ammo_type_live/show.ex:44
msgid "Show Ammo type" msgid "Show Ammo type"
msgstr "Zeige Munitionsarten" msgstr "Zeige Munitionsarten"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:75 #: lib/cannery_web/live/home_live.ex:83
msgid "Simple:" msgid "Simple:"
msgstr "Einfach:" msgstr "Einfach:"
@ -452,7 +436,7 @@ msgid "Stored in"
msgstr "Gelagert in" msgstr "Gelagert in"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:38 #: lib/cannery_web/components/topbar.ex:44
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
msgid "Tags" msgid "Tags"
@ -469,15 +453,10 @@ msgid "Text color"
msgstr "Textfarbe" msgstr "Textfarbe"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:52
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen" msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
msgid "This ammo group is not in a container"
msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
@ -513,22 +492,22 @@ msgid "Uses left"
msgstr "Verbleibende Nutzung" msgstr "Verbleibende Nutzung"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:40 #: lib/cannery_web/live/home_live.ex:48
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "Willkommen %{name}" msgstr "Willkommen %{name}"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:69 #: lib/cannery_web/live/home_live.ex:77
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"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:49 #: lib/cannery_web/live/container_live/show.html.heex:61
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"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:62 #: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:84 #: lib/cannery_web/live/ammo_group_live/index.ex:84
msgid "Range" msgid "Range"
msgstr "Schießplatz" msgstr "Schießplatz"
@ -572,11 +551,6 @@ msgstr "Für Schießplatz deselektieren"
msgid "Record shots" msgid "Record shots"
msgstr "Schüsse dokumentieren" msgstr "Schüsse dokumentieren"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Ammo Types"
msgstr "Munitionsarten"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:49
msgid "Ammo groups" msgid "Ammo groups"
@ -622,7 +596,6 @@ msgstr "Schießkladde"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#: lib/cannery_web/live/ammo_group_live/show.ex:38
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "Munitionsgruppe verschieben" msgstr "Munitionsgruppe verschieben"
@ -747,7 +720,8 @@ msgid "Edit %{name} tags"
msgstr "Editiere %{name} Tags" msgstr "Editiere %{name} Tags"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:50 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/container_live/show.html.heex:32
msgid "Rounds:" msgid "Rounds:"
msgstr "Patronen:" msgstr "Patronen:"
@ -889,21 +863,69 @@ msgid "Language"
msgstr "Sprache" msgstr "Sprache"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:139 #: lib/cannery_web/live/home_live.ex:147
msgid "Get involved!" msgid "Get involved!"
msgstr "Mach mit!" msgstr "Mach mit!"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:156 #: lib/cannery_web/live/home_live.ex:164
msgid "Help translate" msgid "Help translate"
msgstr "Hilf beim Übersetzen" msgstr "Hilf beim Übersetzen"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:165 #: lib/cannery_web/live/home_live.ex:173
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "Sende Bugs oder Erweiterungsvorschläge" msgstr "Sende Bugs oder Erweiterungsvorschläge"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:147 #: lib/cannery_web/live/home_live.ex:155
msgid "View the source code" msgid "View the source code"
msgstr "Quellcode ansehen" msgstr "Quellcode ansehen"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:56
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Catalog"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:40
msgid "Edit Ammo"
msgstr "Munitionstyp bearbeiten"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:38
msgid "Move Ammo"
msgstr "Munition verschieben"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "No ammo in this container"
msgstr "Keine Munitionsgruppe in diesem Behälter"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:39
msgid "Show Ammo"
msgstr "Zeige Munitionsarten"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
msgid "This ammo is not in a container"
msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:50
#: lib/cannery_web/live/container_live/show.html.heex:27
msgid "Packs:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:24
#: lib/cannery_web/live/home_live.ex:42
msgid "Cannery logo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:44
msgid "isn't he cute >:3"
msgstr ""

View File

@ -152,13 +152,13 @@ msgid "Tag could not be added"
msgstr "Tag konnte nicht hinzugefügt werden" msgstr "Tag konnte nicht hinzugefügt werden"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/activity_log.ex:125 #: lib/cannery/activity_log/shot_group.ex:115
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"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/activity_log.ex:73 #: lib/cannery/activity_log/shot_group.ex:74
#: lib/cannery/activity_log.ex:120 #: lib/cannery/activity_log/shot_group.ex:111
msgid "Count must be less than %{count}" msgid "Count must be less than %{count}"
msgstr "Anzahl muss weniger als %{count} betragen" msgstr "Anzahl muss weniger als %{count} betragen"
@ -176,13 +176,28 @@ msgid "Tag could not be removed"
msgstr "Tag konnte nicht gelöscht werden" msgstr "Tag konnte nicht gelöscht werden"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126 #: lib/cannery_web/live/ammo_group_live/form_component.ex:143
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "Konnte die Anzahl der Kopien nicht verstehen" msgstr "Konnte die Anzahl der Kopien nicht verstehen"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111 #: lib/cannery_web/live/ammo_group_live/form_component.ex:128
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
"Ungültige Nummer an Kopien. Muss zwischen 1 and %{max} liegen. War " "Ungültige Nummer an Kopien. Muss zwischen 1 and %{max} liegen. War "
"%{multiplier}" "%{multiplier}"
#, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:407
msgid "Invalid multiplier"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/ammo/ammo_group.ex:84
msgid "Please select an ammo type and container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/activity_log/shot_group.ex:69
msgid "Please select a valid user and ammo group"
msgstr ""

View File

@ -76,15 +76,9 @@ msgstr "Eine Mail zum Bestätigen ihre Mailadresse wurde Ihnen zugesandt."
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/show.ex:50
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "Munitionsgruppe erfolgreich gelöscht" msgstr "Munitionsgruppe erfolgreich gelöscht"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
msgid "Ammo group updated successfully"
msgstr "Munitionsgruppe erfolgreich aktualisiert"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:102 #: lib/cannery_web/live/invite_live/index.html.heex:102
#: lib/cannery_web/live/invite_live/index.html.heex:131 #: lib/cannery_web/live/invite_live/index.html.heex:131
@ -96,7 +90,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27 #: lib/cannery_web/live/ammo_type_live/show.html.heex:27
#: lib/cannery_web/live/container_live/index.html.heex:46 #: lib/cannery_web/live/container_live/index.html.heex:46
#: lib/cannery_web/live/container_live/show.html.heex:37 #: lib/cannery_web/live/container_live/show.html.heex:49
#: lib/cannery_web/live/tag_live/index.html.heex:38 #: lib/cannery_web/live/tag_live/index.html.heex:38
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?"
@ -119,7 +113,7 @@ 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?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:84 #: lib/cannery_web/components/topbar.ex:90
msgid "Are you sure you want to log out?" msgid "Are you sure you want to log out?"
msgstr "Wirklich ausloggen?" msgstr "Wirklich ausloggen?"
@ -168,7 +162,7 @@ msgid "Please check your email to verify your account"
msgstr "Bitte überprüfen Sie ihre Mailbox und bestätigen Sie das Nutzerkonto" msgstr "Bitte überprüfen Sie ihre Mailbox und bestätigen Sie das Nutzerkonto"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:96 #: lib/cannery_web/live/home_live.ex:104
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "Registrieren Sie sich, um %{name} zu bearbeiten" msgstr "Registrieren Sie sich, um %{name} zu bearbeiten"
@ -211,7 +205,7 @@ msgid "Adding..."
msgstr "Füge hinzu..." msgstr "Füge hinzu..."
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.ex:68 #: lib/cannery_web/components/add_shot_group_component.ex:56
msgid "Shots recorded successfully" msgid "Shots recorded successfully"
msgstr "Schüsse erfolgreich dokumentiert" msgstr "Schüsse erfolgreich dokumentiert"
@ -220,11 +214,6 @@ 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?"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:68
msgid "Ammo group unstaged succesfully"
msgstr "Munition erfolgreich demarkiert"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:130 #: lib/cannery_web/live/ammo_group_live/show.ex:130
#: lib/cannery_web/live/range_live/index.ex:128 #: lib/cannery_web/live/range_live/index.ex:128
@ -273,13 +262,6 @@ msgstr "Sie müssen"
msgid "Creating..." msgid "Creating..."
msgstr "Erstellen..." msgstr "Erstellen..."
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
msgid "Ammo group created successfully"
msgid_plural "Ammo groups created successfully"
msgstr[0] "Munitionsgruppe erfolgreich erstellt"
msgstr[1] "Munitionsgruppen erfolgreich erstellt"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:136 #: lib/cannery_web/templates/user_settings/edit.html.heex:136
msgid "Are you sure you want to change your language?" msgid "Are you sure you want to change your language?"
@ -289,3 +271,25 @@ msgstr "Möchten Sie die Sprache wechseln?"
#: lib/cannery_web/controllers/user_settings_controller.ex:65 #: lib/cannery_web/controllers/user_settings_controller.ex:65
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "Spracheinstellung gespeichert." msgstr "Spracheinstellung gespeichert."
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:50
msgid "Ammo deleted succesfully"
msgstr "Munitionsgruppe erfolgreich gelöscht"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/range_live/index.ex:68
msgid "Ammo unstaged succesfully"
msgstr "Munition erfolgreich demarkiert"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/form_component.ex:105
msgid "Ammo updated successfully"
msgstr "Munitionsgruppe erfolgreich aktualisiert"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/form_component.ex:164
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
msgstr[0] "Munitionsgruppe erfolgreich aktualisiert"
msgstr[1] "Munitionsgruppe erfolgreich aktualisiert"

View File

@ -11,12 +11,12 @@ msgid ""
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:56 #: lib/cannery_web/live/home_live.ex:64
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:78 #: lib/cannery_web/live/home_live.ex:86
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "" msgstr ""
@ -26,12 +26,12 @@ msgid "Admins"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:92 #: lib/cannery_web/live/home_live.ex:100
msgid "Admins:" msgid "Admins:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:50 #: lib/cannery_web/components/topbar.ex:62
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
msgid "Ammo" msgid "Ammo"
@ -109,7 +109,7 @@ msgid "Container"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:44 #: lib/cannery_web/components/topbar.ex:50
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:36
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
msgid "Containers" msgid "Containers"
@ -152,13 +152,12 @@ msgid "Disable"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:53 #: lib/cannery_web/live/home_live.ex:61
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: 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/show.ex:40
msgid "Edit Ammo group" msgid "Edit Ammo group"
msgstr "" msgstr ""
@ -208,7 +207,7 @@ msgid "Incendiary"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:87 #: lib/cannery_web/live/home_live.ex:95
msgid "Instance Information" msgid "Instance Information"
msgstr "" msgstr ""
@ -218,12 +217,12 @@ msgid "Invite Disabled"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:118 #: lib/cannery_web/live/home_live.ex:126
msgid "Invite Only" msgid "Invite Only"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:69 #: lib/cannery_web/components/topbar.ex:75
#: lib/cannery_web/live/invite_live/index.ex:41 #: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.html.heex:3 #: lib/cannery_web/live/invite_live/index.html.heex:3
msgid "Invites" msgid "Invites"
@ -251,11 +250,6 @@ msgstr ""
msgid "Magazine, Clip, Ammo Box, etc" msgid "Magazine, Clip, Ammo Box, etc"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:56
msgid "Manage"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:73
@ -317,11 +311,6 @@ msgstr ""
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:78
msgid "No ammo groups in this container"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
msgid "No containers" msgid "No containers"
@ -384,17 +373,17 @@ msgid "Primer type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:117 #: lib/cannery_web/live/home_live.ex:125
msgid "Public Signups" msgid "Public Signups"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:65 #: lib/cannery_web/live/home_live.ex:73
msgid "Secure:" msgid "Secure:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:68 #: lib/cannery_web/live/home_live.ex:76
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
@ -409,18 +398,13 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:39
msgid "Show Ammo group"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:44 #: lib/cannery_web/live/ammo_type_live/show.ex:44
msgid "Show Ammo type" msgid "Show Ammo type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:75 #: lib/cannery_web/live/home_live.ex:83
msgid "Simple:" msgid "Simple:"
msgstr "" msgstr ""
@ -435,7 +419,7 @@ msgid "Stored in"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:38 #: lib/cannery_web/components/topbar.ex:44
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
msgid "Tags" msgid "Tags"
@ -452,15 +436,10 @@ msgid "Text color"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:52
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
msgid "This ammo group is not in a container"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
@ -496,22 +475,22 @@ msgid "Uses left"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:40 #: lib/cannery_web/live/home_live.ex:48
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:69 #: lib/cannery_web/live/home_live.ex:77
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:49 #: lib/cannery_web/live/container_live/show.html.heex:61
msgid "No tags for this container" msgid "No tags for this container"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:62 #: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:84 #: lib/cannery_web/live/ammo_group_live/index.ex:84
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -555,11 +534,6 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Ammo Types"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:49
msgid "Ammo groups" msgid "Ammo groups"
@ -605,7 +579,6 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#: lib/cannery_web/live/ammo_group_live/show.ex:38
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "" msgstr ""
@ -730,7 +703,8 @@ msgid "Edit %{name} tags"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:50 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/container_live/show.html.heex:32
msgid "Rounds:" msgid "Rounds:"
msgstr "" msgstr ""
@ -872,21 +846,69 @@ msgid "Language"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:139 #: lib/cannery_web/live/home_live.ex:147
msgid "Get involved!" msgid "Get involved!"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:156 #: lib/cannery_web/live/home_live.ex:164
msgid "Help translate" msgid "Help translate"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:165 #: lib/cannery_web/live/home_live.ex:173
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:147 #: lib/cannery_web/live/home_live.ex:155
msgid "View the source code" msgid "View the source code"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:56
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Catalog"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:40
msgid "Edit Ammo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:38
msgid "Move Ammo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "No ammo in this container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:39
msgid "Show Ammo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
msgid "This ammo is not in a container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:50
#: lib/cannery_web/live/container_live/show.html.heex:27
msgid "Packs:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:24
#: lib/cannery_web/live/home_live.ex:42
msgid "Cannery logo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:44
msgid "isn't he cute >:3"
msgstr ""

View File

@ -13,6 +13,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "Add Ammo" msgid "Add Ammo"
msgstr "" msgstr ""
@ -66,7 +67,7 @@ msgid "Invite someone new!"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:106 #: lib/cannery_web/components/topbar.ex:112
#: lib/cannery_web/templates/user_confirmation/new.html.heex:30 #: lib/cannery_web/templates/user_confirmation/new.html.heex:30
#: lib/cannery_web/templates/user_registration/new.html.heex:48 #: lib/cannery_web/templates/user_registration/new.html.heex:48
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:48 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:48
@ -81,11 +82,6 @@ msgstr ""
msgid "Make your first tag!" msgid "Make your first tag!"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "New Ammo group"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:17 #: lib/cannery_web/live/ammo_type_live/index.html.heex:17
msgid "New Ammo type" msgid "New Ammo type"
@ -102,7 +98,7 @@ msgid "New Tag"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:99 #: lib/cannery_web/components/topbar.ex:105
#: lib/cannery_web/templates/user_confirmation/new.html.heex:25 #: lib/cannery_web/templates/user_confirmation/new.html.heex:25
#: 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:42 #: lib/cannery_web/templates/user_registration/new.html.heex:42
@ -141,7 +137,7 @@ msgid "Send instructions to reset password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:53 #: lib/cannery_web/live/container_live/show.html.heex:65
msgid "Why not add one?" msgid "Why not add one?"
msgstr "" msgstr ""
@ -167,11 +163,6 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "Ammo Details"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:89 #: lib/cannery_web/components/move_ammo_group_component.ex:89
msgid "Add another container!" msgid "Add another container!"
@ -212,3 +203,8 @@ msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:134 #: lib/cannery_web/templates/user_settings/edit.html.heex:134
msgid "Change language" msgid "Change language"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "View in Catalog"
msgstr ""

View File

@ -12,12 +12,12 @@ msgstr ""
"Plural-Forms: nplurals=2\n" "Plural-Forms: nplurals=2\n"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:56 #: lib/cannery_web/live/home_live.ex:64
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:78 #: lib/cannery_web/live/home_live.ex:86
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "" msgstr ""
@ -27,12 +27,12 @@ msgid "Admins"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:92 #: lib/cannery_web/live/home_live.ex:100
msgid "Admins:" msgid "Admins:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:50 #: lib/cannery_web/components/topbar.ex:62
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
msgid "Ammo" msgid "Ammo"
@ -110,7 +110,7 @@ msgid "Container"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:44 #: lib/cannery_web/components/topbar.ex:50
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:36
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
msgid "Containers" msgid "Containers"
@ -153,13 +153,12 @@ msgid "Disable"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:53 #: lib/cannery_web/live/home_live.ex:61
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: 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/show.ex:40
msgid "Edit Ammo group" msgid "Edit Ammo group"
msgstr "" msgstr ""
@ -209,7 +208,7 @@ msgid "Incendiary"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:87 #: lib/cannery_web/live/home_live.ex:95
msgid "Instance Information" msgid "Instance Information"
msgstr "" msgstr ""
@ -219,12 +218,12 @@ msgid "Invite Disabled"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:118 #: lib/cannery_web/live/home_live.ex:126
msgid "Invite Only" msgid "Invite Only"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:69 #: lib/cannery_web/components/topbar.ex:75
#: lib/cannery_web/live/invite_live/index.ex:41 #: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.html.heex:3 #: lib/cannery_web/live/invite_live/index.html.heex:3
msgid "Invites" msgid "Invites"
@ -252,11 +251,6 @@ msgstr ""
msgid "Magazine, Clip, Ammo Box, etc" msgid "Magazine, Clip, Ammo Box, etc"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:56
msgid "Manage"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:73
@ -318,11 +312,6 @@ msgstr ""
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:78
msgid "No ammo groups in this container"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
msgid "No containers" msgid "No containers"
@ -385,17 +374,17 @@ msgid "Primer type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:117 #: lib/cannery_web/live/home_live.ex:125
msgid "Public Signups" msgid "Public Signups"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:65 #: lib/cannery_web/live/home_live.ex:73
msgid "Secure:" msgid "Secure:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:68 #: lib/cannery_web/live/home_live.ex:76
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
@ -410,18 +399,13 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:39
msgid "Show Ammo group"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:44 #: lib/cannery_web/live/ammo_type_live/show.ex:44
msgid "Show Ammo type" msgid "Show Ammo type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:75 #: lib/cannery_web/live/home_live.ex:83
msgid "Simple:" msgid "Simple:"
msgstr "" msgstr ""
@ -436,7 +420,7 @@ msgid "Stored in"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:38 #: lib/cannery_web/components/topbar.ex:44
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
msgid "Tags" msgid "Tags"
@ -453,15 +437,10 @@ msgid "Text color"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:52
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
msgid "This ammo group is not in a container"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
@ -497,22 +476,22 @@ msgid "Uses left"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:40 #: lib/cannery_web/live/home_live.ex:48
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:69 #: lib/cannery_web/live/home_live.ex:77
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:49 #: lib/cannery_web/live/container_live/show.html.heex:61
msgid "No tags for this container" msgid "No tags for this container"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:62 #: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:84 #: lib/cannery_web/live/ammo_group_live/index.ex:84
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -556,11 +535,6 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Ammo Types"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:49
msgid "Ammo groups" msgid "Ammo groups"
@ -606,7 +580,6 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#: lib/cannery_web/live/ammo_group_live/show.ex:38
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "" msgstr ""
@ -731,7 +704,8 @@ msgid "Edit %{name} tags"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/components/container_card.ex:50 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/container_live/show.html.heex:32
msgid "Rounds:" msgid "Rounds:"
msgstr "" msgstr ""
@ -873,21 +847,69 @@ msgid "Language"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:139 #: lib/cannery_web/live/home_live.ex:147
msgid "Get involved!" msgid "Get involved!"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:156 #: lib/cannery_web/live/home_live.ex:164
msgid "Help translate" msgid "Help translate"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:165 #: lib/cannery_web/live/home_live.ex:173
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:147 #: lib/cannery_web/live/home_live.ex:155
msgid "View the source code" msgid "View the source code"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:56
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Catalog"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:40
msgid "Edit Ammo"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:38
msgid "Move Ammo"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "No ammo in this container"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:39
msgid "Show Ammo"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
msgid "This ammo is not in a container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:50
#: lib/cannery_web/live/container_live/show.html.heex:27
msgid "Packs:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:24
#: lib/cannery_web/live/home_live.ex:42
msgid "Cannery logo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:44
msgid "isn't he cute >:3"
msgstr ""

View File

@ -139,13 +139,13 @@ msgid "Tag could not be added"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/activity_log.ex:125 #: lib/cannery/activity_log/shot_group.ex:115
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/activity_log.ex:73 #: lib/cannery/activity_log/shot_group.ex:74
#: lib/cannery/activity_log.ex:120 #: lib/cannery/activity_log/shot_group.ex:111
msgid "Count must be less than %{count}" msgid "Count must be less than %{count}"
msgstr "" msgstr ""
@ -161,11 +161,26 @@ msgid "Tag could not be removed"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126 #: lib/cannery_web/live/ammo_group_live/form_component.ex:143
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111 #: lib/cannery_web/live/ammo_group_live/form_component.ex:128
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:407
msgid "Invalid multiplier"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/ammo/ammo_group.ex:84
msgid "Please select an ammo type and container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/activity_log/shot_group.ex:69
msgid "Please select a valid user and ammo group"
msgstr ""

View File

@ -64,15 +64,9 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/show.ex:50
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
msgid "Ammo group updated successfully"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:102 #: lib/cannery_web/live/invite_live/index.html.heex:102
#: lib/cannery_web/live/invite_live/index.html.heex:131 #: lib/cannery_web/live/invite_live/index.html.heex:131
@ -82,7 +76,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27 #: lib/cannery_web/live/ammo_type_live/show.html.heex:27
#: lib/cannery_web/live/container_live/index.html.heex:46 #: lib/cannery_web/live/container_live/index.html.heex:46
#: lib/cannery_web/live/container_live/show.html.heex:37 #: lib/cannery_web/live/container_live/show.html.heex:49
#: lib/cannery_web/live/tag_live/index.html.heex:38 #: lib/cannery_web/live/tag_live/index.html.heex:38
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
msgstr "" msgstr ""
@ -105,7 +99,7 @@ msgid "Are you sure you want to delete your account?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:84 #: lib/cannery_web/components/topbar.ex:90
msgid "Are you sure you want to log out?" msgid "Are you sure you want to log out?"
msgstr "" msgstr ""
@ -150,7 +144,7 @@ msgid "Please check your email to verify your account"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:96 #: lib/cannery_web/live/home_live.ex:104
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "" msgstr ""
@ -191,7 +185,7 @@ msgid "Adding..."
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.ex:68 #: lib/cannery_web/components/add_shot_group_component.ex:56
msgid "Shots recorded successfully" msgid "Shots recorded successfully"
msgstr "" msgstr ""
@ -200,11 +194,6 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:68
msgid "Ammo group unstaged succesfully"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:130 #: lib/cannery_web/live/ammo_group_live/show.ex:130
#: lib/cannery_web/live/range_live/index.ex:128 #: lib/cannery_web/live/range_live/index.ex:128
@ -253,13 +242,6 @@ msgstr ""
msgid "Creating..." msgid "Creating..."
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
msgid "Ammo group created successfully"
msgid_plural "Ammo groups created successfully"
msgstr[0] ""
msgstr[1] ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:136 #: lib/cannery_web/templates/user_settings/edit.html.heex:136
msgid "Are you sure you want to change your language?" msgid "Are you sure you want to change your language?"
@ -269,3 +251,25 @@ msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:65 #: lib/cannery_web/controllers/user_settings_controller.ex:65
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:50
msgid "Ammo deleted succesfully"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/range_live/index.ex:68
msgid "Ammo unstaged succesfully"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/form_component.ex:105
msgid "Ammo updated successfully"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/form_component.ex:164
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""

View File

@ -138,13 +138,13 @@ msgid "Tag could not be added"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/activity_log.ex:125 #: lib/cannery/activity_log/shot_group.ex:115
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/activity_log.ex:73 #: lib/cannery/activity_log/shot_group.ex:74
#: lib/cannery/activity_log.ex:120 #: lib/cannery/activity_log/shot_group.ex:111
msgid "Count must be less than %{count}" msgid "Count must be less than %{count}"
msgstr "" msgstr ""
@ -160,11 +160,26 @@ msgid "Tag could not be removed"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126 #: lib/cannery_web/live/ammo_group_live/form_component.ex:143
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111 #: lib/cannery_web/live/ammo_group_live/form_component.ex:128
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:407
msgid "Invalid multiplier"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/ammo/ammo_group.ex:84
msgid "Please select an ammo type and container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/activity_log/shot_group.ex:69
msgid "Please select a valid user and ammo group"
msgstr ""

View File

@ -23,6 +23,7 @@ msgstr ""
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "Add Ammo" msgid "Add Ammo"
msgstr "" msgstr ""
@ -76,7 +77,7 @@ msgid "Invite someone new!"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:106 #: lib/cannery_web/components/topbar.ex:112
#: lib/cannery_web/templates/user_confirmation/new.html.heex:30 #: lib/cannery_web/templates/user_confirmation/new.html.heex:30
#: lib/cannery_web/templates/user_registration/new.html.heex:48 #: lib/cannery_web/templates/user_registration/new.html.heex:48
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:48 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:48
@ -91,11 +92,6 @@ msgstr ""
msgid "Make your first tag!" msgid "Make your first tag!"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "New Ammo group"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:17 #: lib/cannery_web/live/ammo_type_live/index.html.heex:17
msgid "New Ammo type" msgid "New Ammo type"
@ -112,7 +108,7 @@ msgid "New Tag"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:99 #: lib/cannery_web/components/topbar.ex:105
#: lib/cannery_web/templates/user_confirmation/new.html.heex:25 #: lib/cannery_web/templates/user_confirmation/new.html.heex:25
#: 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:42 #: lib/cannery_web/templates/user_registration/new.html.heex:42
@ -151,7 +147,7 @@ msgid "Send instructions to reset password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:53 #: lib/cannery_web/live/container_live/show.html.heex:65
msgid "Why not add one?" msgid "Why not add one?"
msgstr "" msgstr ""
@ -177,11 +173,6 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "Ammo Details"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:89 #: lib/cannery_web/components/move_ammo_group_component.ex:89
msgid "Add another container!" msgid "Add another container!"
@ -222,3 +213,8 @@ msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:134 #: lib/cannery_web/templates/user_settings/edit.html.heex:134
msgid "Change language" msgid "Change language"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "View in Catalog"
msgstr ""

View File

@ -22,12 +22,12 @@ msgstr ""
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:56 #: lib/cannery_web/live/home_live.ex:64
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:78 #: lib/cannery_web/live/home_live.ex:86
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "" msgstr ""
@ -37,12 +37,12 @@ msgid "Admins"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:92 #: lib/cannery_web/live/home_live.ex:100
msgid "Admins:" msgid "Admins:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:50 #: lib/cannery_web/components/topbar.ex:62
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
msgid "Ammo" msgid "Ammo"
@ -120,7 +120,7 @@ msgid "Container"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:44 #: lib/cannery_web/components/topbar.ex:50
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:36
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
msgid "Containers" msgid "Containers"
@ -163,13 +163,12 @@ msgid "Disable"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:53 #: lib/cannery_web/live/home_live.ex:61
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: 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/show.ex:40
msgid "Edit Ammo group" msgid "Edit Ammo group"
msgstr "" msgstr ""
@ -219,7 +218,7 @@ msgid "Incendiary"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:87 #: lib/cannery_web/live/home_live.ex:95
msgid "Instance Information" msgid "Instance Information"
msgstr "" msgstr ""
@ -229,12 +228,12 @@ msgid "Invite Disabled"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:118 #: lib/cannery_web/live/home_live.ex:126
msgid "Invite Only" msgid "Invite Only"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:69 #: lib/cannery_web/components/topbar.ex:75
#: lib/cannery_web/live/invite_live/index.ex:41 #: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.html.heex:3 #: lib/cannery_web/live/invite_live/index.html.heex:3
msgid "Invites" msgid "Invites"
@ -262,11 +261,6 @@ msgstr ""
msgid "Magazine, Clip, Ammo Box, etc" msgid "Magazine, Clip, Ammo Box, etc"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:56
msgid "Manage"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:73
@ -328,11 +322,6 @@ msgstr ""
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:78
msgid "No ammo groups in this container"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
msgid "No containers" msgid "No containers"
@ -395,17 +384,17 @@ msgid "Primer type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:117 #: lib/cannery_web/live/home_live.ex:125
msgid "Public Signups" msgid "Public Signups"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:65 #: lib/cannery_web/live/home_live.ex:73
msgid "Secure:" msgid "Secure:"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:68 #: lib/cannery_web/live/home_live.ex:76
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
@ -420,18 +409,13 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:39
msgid "Show Ammo group"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:44 #: lib/cannery_web/live/ammo_type_live/show.ex:44
msgid "Show Ammo type" msgid "Show Ammo type"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:75 #: lib/cannery_web/live/home_live.ex:83
msgid "Simple:" msgid "Simple:"
msgstr "" msgstr ""
@ -446,7 +430,7 @@ msgid "Stored in"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:38 #: lib/cannery_web/components/topbar.ex:44
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
msgid "Tags" msgid "Tags"
@ -463,15 +447,10 @@ msgid "Text color"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:52
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
msgid "This ammo group is not in a container"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
@ -507,22 +486,22 @@ msgid "Uses left"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:40 #: lib/cannery_web/live/home_live.ex:48
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:69 #: lib/cannery_web/live/home_live.ex:77
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:49 #: lib/cannery_web/live/container_live/show.html.heex:61
msgid "No tags for this container" msgid "No tags for this container"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:62 #: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:84 #: lib/cannery_web/live/ammo_group_live/index.ex:84
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -566,11 +545,6 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Ammo Types"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:49
msgid "Ammo groups" msgid "Ammo groups"
@ -616,7 +590,6 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#: lib/cannery_web/live/ammo_group_live/show.ex:38
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "" msgstr ""
@ -741,7 +714,8 @@ msgid "Edit %{name} tags"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:50 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/container_live/show.html.heex:32
msgid "Rounds:" msgid "Rounds:"
msgstr "" msgstr ""
@ -883,21 +857,69 @@ msgid "Language"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:139 #: lib/cannery_web/live/home_live.ex:147
msgid "Get involved!" msgid "Get involved!"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:156 #: lib/cannery_web/live/home_live.ex:164
msgid "Help translate" msgid "Help translate"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:165 #: lib/cannery_web/live/home_live.ex:173
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:147 #: lib/cannery_web/live/home_live.ex:155
msgid "View the source code" msgid "View the source code"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:56
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Catalog"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:40
msgid "Edit Ammo"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:38
msgid "Move Ammo"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "No ammo in this container"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:39
msgid "Show Ammo"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
msgid "This ammo is not in a container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:50
#: lib/cannery_web/live/container_live/show.html.heex:27
msgid "Packs:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:24
#: lib/cannery_web/live/home_live.ex:42
msgid "Cannery logo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:44
msgid "isn't he cute >:3"
msgstr ""

View File

@ -149,13 +149,13 @@ msgid "Tag could not be added"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/activity_log.ex:125 #: lib/cannery/activity_log/shot_group.ex:115
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/activity_log.ex:73 #: lib/cannery/activity_log/shot_group.ex:74
#: lib/cannery/activity_log.ex:120 #: lib/cannery/activity_log/shot_group.ex:111
msgid "Count must be less than %{count}" msgid "Count must be less than %{count}"
msgstr "" msgstr ""
@ -171,11 +171,26 @@ msgid "Tag could not be removed"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126 #: lib/cannery_web/live/ammo_group_live/form_component.ex:143
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111 #: lib/cannery_web/live/ammo_group_live/form_component.ex:128
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:407
msgid "Invalid multiplier"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/ammo/ammo_group.ex:84
msgid "Please select an ammo type and container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/activity_log/shot_group.ex:69
msgid "Please select a valid user and ammo group"
msgstr ""

View File

@ -74,15 +74,9 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/show.ex:50
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
msgid "Ammo group updated successfully"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:102 #: lib/cannery_web/live/invite_live/index.html.heex:102
#: lib/cannery_web/live/invite_live/index.html.heex:131 #: lib/cannery_web/live/invite_live/index.html.heex:131
@ -92,7 +86,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27 #: lib/cannery_web/live/ammo_type_live/show.html.heex:27
#: lib/cannery_web/live/container_live/index.html.heex:46 #: lib/cannery_web/live/container_live/index.html.heex:46
#: lib/cannery_web/live/container_live/show.html.heex:37 #: lib/cannery_web/live/container_live/show.html.heex:49
#: lib/cannery_web/live/tag_live/index.html.heex:38 #: lib/cannery_web/live/tag_live/index.html.heex:38
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
msgstr "" msgstr ""
@ -115,7 +109,7 @@ msgid "Are you sure you want to delete your account?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:84 #: lib/cannery_web/components/topbar.ex:90
msgid "Are you sure you want to log out?" msgid "Are you sure you want to log out?"
msgstr "" msgstr ""
@ -160,7 +154,7 @@ msgid "Please check your email to verify your account"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:96 #: lib/cannery_web/live/home_live.ex:104
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "" msgstr ""
@ -201,7 +195,7 @@ msgid "Adding..."
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.ex:68 #: lib/cannery_web/components/add_shot_group_component.ex:56
msgid "Shots recorded successfully" msgid "Shots recorded successfully"
msgstr "" msgstr ""
@ -210,11 +204,6 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:68
msgid "Ammo group unstaged succesfully"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:130 #: lib/cannery_web/live/ammo_group_live/show.ex:130
#: lib/cannery_web/live/range_live/index.ex:128 #: lib/cannery_web/live/range_live/index.ex:128
@ -263,13 +252,6 @@ msgstr ""
msgid "Creating..." msgid "Creating..."
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
msgid "Ammo group created successfully"
msgid_plural "Ammo groups created successfully"
msgstr[0] ""
msgstr[1] ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:136 #: lib/cannery_web/templates/user_settings/edit.html.heex:136
msgid "Are you sure you want to change your language?" msgid "Are you sure you want to change your language?"
@ -279,3 +261,25 @@ msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:65 #: lib/cannery_web/controllers/user_settings_controller.ex:65
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:50
msgid "Ammo deleted succesfully"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/range_live/index.ex:68
msgid "Ammo unstaged succesfully"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/form_component.ex:105
msgid "Ammo updated successfully"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/form_component.ex:164
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""

View File

@ -25,6 +25,7 @@ msgstr ""
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "Add Ammo" msgid "Add Ammo"
msgstr "ajouter munition" msgstr "ajouter munition"
@ -78,7 +79,7 @@ msgid "Invite someone new!"
msgstr "Invitez une nouvelle personne!" msgstr "Invitez une nouvelle personne!"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:106 #: lib/cannery_web/components/topbar.ex:112
#: lib/cannery_web/templates/user_confirmation/new.html.heex:30 #: lib/cannery_web/templates/user_confirmation/new.html.heex:30
#: lib/cannery_web/templates/user_registration/new.html.heex:48 #: lib/cannery_web/templates/user_registration/new.html.heex:48
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:48 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:48
@ -93,11 +94,6 @@ msgstr "Se connecter"
msgid "Make your first tag!" msgid "Make your first tag!"
msgstr "Faîtes votre premier tag!" msgstr "Faîtes votre premier tag!"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "New Ammo group"
msgstr "Nouveau groupe de munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:17 #: lib/cannery_web/live/ammo_type_live/index.html.heex:17
msgid "New Ammo type" msgid "New Ammo type"
@ -114,7 +110,7 @@ msgid "New Tag"
msgstr "Nouveau tag" msgstr "Nouveau tag"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:99 #: lib/cannery_web/components/topbar.ex:105
#: lib/cannery_web/templates/user_confirmation/new.html.heex:25 #: lib/cannery_web/templates/user_confirmation/new.html.heex:25
#: 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:42 #: lib/cannery_web/templates/user_registration/new.html.heex:42
@ -153,7 +149,7 @@ 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"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:53 #: lib/cannery_web/live/container_live/show.html.heex:65
msgid "Why not add one?" msgid "Why not add one?"
msgstr "Pourquoi pas en ajouter un?" msgstr "Pourquoi pas en ajouter un?"
@ -179,11 +175,6 @@ msgstr "Pourquoi pas en préparer pour tirer?"
msgid "Record shots" msgid "Record shots"
msgstr "Enregistrer des tirs" msgstr "Enregistrer des tirs"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "Ammo Details"
msgstr "Détails de la munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:89 #: lib/cannery_web/components/move_ammo_group_component.ex:89
msgid "Add another container!" msgid "Add another container!"
@ -224,3 +215,8 @@ msgstr "Changer la langue"
#: lib/cannery_web/templates/user_settings/edit.html.heex:134 #: lib/cannery_web/templates/user_settings/edit.html.heex:134
msgid "Change language" msgid "Change language"
msgstr "Changer la langue" msgstr "Changer la langue"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "View in Catalog"
msgstr ""

View File

@ -24,14 +24,14 @@ msgstr ""
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:56 #: lib/cannery_web/live/home_live.ex:64
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
"%{name} vous permet de facilement garder un œil sur votre niveau de munition " "%{name} vous permet de facilement garder un œil sur votre niveau de munition "
"avant et après une journée de stand" "avant et après une journée de stand"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:78 #: lib/cannery_web/live/home_live.ex:86
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"
@ -41,12 +41,12 @@ msgid "Admins"
msgstr "Administrateur·ices" msgstr "Administrateur·ices"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:92 #: lib/cannery_web/live/home_live.ex:100
msgid "Admins:" msgid "Admins:"
msgstr "Administrateur·ices:" msgstr "Administrateur·ices:"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:50 #: lib/cannery_web/components/topbar.ex:62
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
msgid "Ammo" msgid "Ammo"
@ -124,7 +124,7 @@ msgid "Container"
msgstr "Conteneur" msgstr "Conteneur"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:44 #: lib/cannery_web/components/topbar.ex:50
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:36
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
msgid "Containers" msgid "Containers"
@ -167,13 +167,12 @@ msgid "Disable"
msgstr "Désactiver" msgstr "Désactiver"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:53 #: lib/cannery_web/live/home_live.ex:61
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "Simple à utiliser:" msgstr "Simple à utiliser:"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: 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/show.ex:40
msgid "Edit Ammo group" msgid "Edit Ammo group"
msgstr "Éditer le groupe de munition" msgstr "Éditer le groupe de munition"
@ -223,7 +222,7 @@ msgid "Incendiary"
msgstr "Incendiaire" msgstr "Incendiaire"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:87 #: lib/cannery_web/live/home_live.ex:95
msgid "Instance Information" msgid "Instance Information"
msgstr "Information de linstance" msgstr "Information de linstance"
@ -233,12 +232,12 @@ msgid "Invite Disabled"
msgstr "Invitation désactivée" msgstr "Invitation désactivée"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:118 #: lib/cannery_web/live/home_live.ex:126
msgid "Invite Only" msgid "Invite Only"
msgstr "Uniquement sur invitation" msgstr "Uniquement sur invitation"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:69 #: lib/cannery_web/components/topbar.ex:75
#: lib/cannery_web/live/invite_live/index.ex:41 #: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.html.heex:3 #: lib/cannery_web/live/invite_live/index.html.heex:3
msgid "Invites" msgid "Invites"
@ -266,11 +265,6 @@ msgstr "Localisation:"
msgid "Magazine, Clip, Ammo Box, etc" msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Chargeur, lame-chargeur, boite de munition, etc." msgstr "Chargeur, lame-chargeur, boite de munition, etc."
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:56
msgid "Manage"
msgstr "Gérer"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:73
@ -332,11 +326,6 @@ msgstr "Aucun type de munition"
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "Aucune munition pour ce type" msgstr "Aucune munition pour ce type"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:78
msgid "No ammo groups in this container"
msgstr "Aucun groupe de munition pour ce conteneur"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.html.heex:8 #: lib/cannery_web/live/container_live/index.html.heex:8
msgid "No containers" msgid "No containers"
@ -399,17 +388,17 @@ msgid "Primer type"
msgstr "Type damorce" msgstr "Type damorce"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:117 #: lib/cannery_web/live/home_live.ex:125
msgid "Public Signups" msgid "Public Signups"
msgstr "Enregistrements publics" msgstr "Enregistrements publics"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:65 #: lib/cannery_web/live/home_live.ex:73
msgid "Secure:" msgid "Secure:"
msgstr "Sécurisé:" msgstr "Sécurisé:"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:68 #: lib/cannery_web/live/home_live.ex:76
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
"Auto-hébergez votre propre instance ou utilisez celle dune personne à " "Auto-hébergez votre propre instance ou utilisez celle dune personne à "
@ -426,18 +415,13 @@ msgstr "Mettre illimité"
msgid "Settings" msgid "Settings"
msgstr "Paramètres" msgstr "Paramètres"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:39
msgid "Show Ammo group"
msgstr "Montrer le groupe de munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.ex:44 #: lib/cannery_web/live/ammo_type_live/show.ex:44
msgid "Show Ammo type" msgid "Show Ammo type"
msgstr "Montrer le type de munition" msgstr "Montrer le type de munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:75 #: lib/cannery_web/live/home_live.ex:83
msgid "Simple:" msgid "Simple:"
msgstr "Simple:" msgstr "Simple:"
@ -452,7 +436,7 @@ msgid "Stored in"
msgstr "Est stocké dans" msgstr "Est stocké dans"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:38 #: lib/cannery_web/components/topbar.ex:44
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
msgid "Tags" msgid "Tags"
@ -471,15 +455,10 @@ msgid "Text color"
msgstr "Couleur du texte" msgstr "Couleur du texte"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:52
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "Le site web de suivi darme à feux auto-hébergé" msgstr "Le site web de suivi darme à feux auto-hébergé"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
msgid "This ammo group is not in a container"
msgstr "Ce groupe de munition nest pas dans un conteneur"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
@ -515,22 +494,22 @@ msgid "Uses left"
msgstr "Utilisations restantes" msgstr "Utilisations restantes"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:40 #: lib/cannery_web/live/home_live.ex:48
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "Bienvenue à %{name}" msgstr "Bienvenue à %{name}"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:69 #: lib/cannery_web/live/home_live.ex:77
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"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:49 #: lib/cannery_web/live/container_live/show.html.heex:61
msgid "No tags for this container" msgid "No tags for this container"
msgstr "Aucun tag pour ce conteneur" msgstr "Aucun tag pour ce conteneur"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:62 #: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:84 #: lib/cannery_web/live/ammo_group_live/index.ex:84
msgid "Range" msgid "Range"
msgstr "Portée" msgstr "Portée"
@ -574,11 +553,6 @@ msgstr "Désélectionner pour le stand"
msgid "Record shots" msgid "Record shots"
msgstr "Tirs enregistrés" msgstr "Tirs enregistrés"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Ammo Types"
msgstr "Types de munition"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:49
msgid "Ammo groups" msgid "Ammo groups"
@ -624,7 +598,6 @@ msgstr "Enregistrements de tir"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#: lib/cannery_web/live/ammo_group_live/show.ex:38
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "Déplacer le groupe de munition" msgstr "Déplacer le groupe de munition"
@ -749,7 +722,8 @@ msgid "Edit %{name} tags"
msgstr "Éditer les tags de %{name}" msgstr "Éditer les tags de %{name}"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:50 #: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/container_live/show.html.heex:32
msgid "Rounds:" msgid "Rounds:"
msgstr "Cartouches:" msgstr "Cartouches:"
@ -891,21 +865,69 @@ msgid "Language"
msgstr "Langue" msgstr "Langue"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:139 #: lib/cannery_web/live/home_live.ex:147
msgid "Get involved!" msgid "Get involved!"
msgstr "Impliquez-vous!" msgstr "Impliquez-vous!"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:156 #: lib/cannery_web/live/home_live.ex:164
msgid "Help translate" msgid "Help translate"
msgstr "Aider à la traduction" msgstr "Aider à la traduction"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:165 #: lib/cannery_web/live/home_live.ex:173
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "Remonter des bugs ou une demande de fonctionnalité" msgstr "Remonter des bugs ou une demande de fonctionnalité"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:147 #: lib/cannery_web/live/home_live.ex:155
msgid "View the source code" msgid "View the source code"
msgstr "Voir le code source" msgstr "Voir le code source"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:56
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
msgid "Catalog"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:40
msgid "Edit Ammo"
msgstr "Éditer le type de munition"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:38
msgid "Move Ammo"
msgstr "Déplacer munition"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "No ammo in this container"
msgstr "Aucun groupe de munition pour ce conteneur"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:39
msgid "Show Ammo"
msgstr "Montrer le type de munition"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
msgid "This ammo is not in a container"
msgstr "Ce groupe de munition nest pas dans un conteneur"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/container_card.ex:50
#: lib/cannery_web/live/container_live/show.html.heex:27
msgid "Packs:"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:24
#: lib/cannery_web/live/home_live.ex:42
msgid "Cannery logo"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:44
msgid "isn't he cute >:3"
msgstr ""

View File

@ -153,13 +153,13 @@ msgid "Tag could not be added"
msgstr "Le tag na pas pu être ajouté" msgstr "Le tag na pas pu être ajouté"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/activity_log.ex:125 #: lib/cannery/activity_log/shot_group.ex:115
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"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/activity_log.ex:73 #: lib/cannery/activity_log/shot_group.ex:74
#: lib/cannery/activity_log.ex:120 #: lib/cannery/activity_log/shot_group.ex:111
msgid "Count must be less than %{count}" msgid "Count must be less than %{count}"
msgstr "La quantité doit être inférieur à %{count}" msgstr "La quantité doit être inférieur à %{count}"
@ -177,11 +177,26 @@ msgid "Tag could not be removed"
msgstr "Le tag na pas pu être retiré" msgstr "Le tag na pas pu être retiré"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126 #: lib/cannery_web/live/ammo_group_live/form_component.ex:143
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "Impossible d'analyser le nombre de copies" msgstr "Impossible d'analyser le nombre de copies"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111 #: lib/cannery_web/live/ammo_group_live/form_component.ex:128
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}" msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"
#, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:407
msgid "Invalid multiplier"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/ammo/ammo_group.ex:84
msgid "Please select an ammo type and container"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery/activity_log/shot_group.ex:69
msgid "Please select a valid user and ammo group"
msgstr ""

View File

@ -78,15 +78,9 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/show.ex:50
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "Groupe de munition supprimé avec succès" msgstr "Groupe de munition supprimé avec succès"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
msgid "Ammo group updated successfully"
msgstr "Groupe de munition mis à jour avec succès"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:102 #: lib/cannery_web/live/invite_live/index.html.heex:102
#: lib/cannery_web/live/invite_live/index.html.heex:131 #: lib/cannery_web/live/invite_live/index.html.heex:131
@ -97,7 +91,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27 #: lib/cannery_web/live/ammo_type_live/show.html.heex:27
#: lib/cannery_web/live/container_live/index.html.heex:46 #: lib/cannery_web/live/container_live/index.html.heex:46
#: lib/cannery_web/live/container_live/show.html.heex:37 #: lib/cannery_web/live/container_live/show.html.heex:49
#: lib/cannery_web/live/tag_live/index.html.heex:38 #: lib/cannery_web/live/tag_live/index.html.heex:38
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}?"
@ -120,7 +114,7 @@ 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?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:84 #: lib/cannery_web/components/topbar.ex:90
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?"
@ -169,7 +163,7 @@ msgid "Please check your email to verify your account"
msgstr "Veuillez vérifier votre mél pour confirmer votre compte" msgstr "Veuillez vérifier votre mél pour confirmer votre compte"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:96 #: lib/cannery_web/live/home_live.ex:104
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "Senregistrer pour mettre en place %{name}" msgstr "Senregistrer pour mettre en place %{name}"
@ -212,7 +206,7 @@ msgid "Adding..."
msgstr "Ajout en cours…" msgstr "Ajout en cours…"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.ex:68 #: lib/cannery_web/components/add_shot_group_component.ex:56
msgid "Shots recorded successfully" msgid "Shots recorded successfully"
msgstr "Tirs enregistré avec succès" msgstr "Tirs enregistré avec succès"
@ -221,11 +215,6 @@ 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?"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:68
msgid "Ammo group unstaged succesfully"
msgstr "Groupe de munition désélectionner avec succès"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:130 #: lib/cannery_web/live/ammo_group_live/show.ex:130
#: lib/cannery_web/live/range_live/index.ex:128 #: lib/cannery_web/live/range_live/index.ex:128
@ -274,13 +263,6 @@ msgstr "Vous aurez besoin de"
msgid "Creating..." msgid "Creating..."
msgstr "Création en cours…" msgstr "Création en cours…"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
msgid "Ammo group created successfully"
msgid_plural "Ammo groups created successfully"
msgstr[0] "Groupe de munition créé avec succès"
msgstr[1] "Groupes de munitions créé avec succès"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:136 #: lib/cannery_web/templates/user_settings/edit.html.heex:136
msgid "Are you sure you want to change your language?" msgid "Are you sure you want to change your language?"
@ -290,3 +272,25 @@ msgstr "Êtes-vous certain·e de vouloir changer votre langue?"
#: lib/cannery_web/controllers/user_settings_controller.ex:65 #: lib/cannery_web/controllers/user_settings_controller.ex:65
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "Langue mise à jour avec succès." msgstr "Langue mise à jour avec succès."
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/show.ex:50
msgid "Ammo deleted succesfully"
msgstr "Groupe de munition supprimé avec succès"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/range_live/index.ex:68
msgid "Ammo unstaged succesfully"
msgstr "Groupe de munition désélectionner avec succès"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/form_component.ex:105
msgid "Ammo updated successfully"
msgstr "Groupe de munition mis à jour avec succès"
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/form_component.ex:164
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
msgstr[0] "Groupe de munition mis à jour avec succès"
msgstr[1] "Groupe de munition mis à jour avec succès"

View File

@ -63,15 +63,9 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/show.ex:50
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
msgid "Ammo group updated successfully"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:102 #: lib/cannery_web/live/invite_live/index.html.heex:102
#: lib/cannery_web/live/invite_live/index.html.heex:131 #: lib/cannery_web/live/invite_live/index.html.heex:131
@ -81,7 +75,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27 #: lib/cannery_web/live/ammo_type_live/show.html.heex:27
#: lib/cannery_web/live/container_live/index.html.heex:46 #: lib/cannery_web/live/container_live/index.html.heex:46
#: lib/cannery_web/live/container_live/show.html.heex:37 #: lib/cannery_web/live/container_live/show.html.heex:49
#: lib/cannery_web/live/tag_live/index.html.heex:38 #: lib/cannery_web/live/tag_live/index.html.heex:38
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
msgstr "" msgstr ""
@ -104,7 +98,7 @@ msgid "Are you sure you want to delete your account?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:84 #: lib/cannery_web/components/topbar.ex:90
msgid "Are you sure you want to log out?" msgid "Are you sure you want to log out?"
msgstr "" msgstr ""
@ -149,7 +143,7 @@ msgid "Please check your email to verify your account"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/home_live.ex:96 #: lib/cannery_web/live/home_live.ex:104
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "" msgstr ""
@ -190,7 +184,7 @@ msgid "Adding..."
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.ex:68 #: lib/cannery_web/components/add_shot_group_component.ex:56
msgid "Shots recorded successfully" msgid "Shots recorded successfully"
msgstr "" msgstr ""
@ -199,11 +193,6 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:68
msgid "Ammo group unstaged succesfully"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:130 #: lib/cannery_web/live/ammo_group_live/show.ex:130
#: lib/cannery_web/live/range_live/index.ex:128 #: lib/cannery_web/live/range_live/index.ex:128
@ -252,13 +241,6 @@ msgstr ""
msgid "Creating..." msgid "Creating..."
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
msgid "Ammo group created successfully"
msgid_plural "Ammo groups created successfully"
msgstr[0] ""
msgstr[1] ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:136 #: lib/cannery_web/templates/user_settings/edit.html.heex:136
msgid "Are you sure you want to change your language?" msgid "Are you sure you want to change your language?"
@ -268,3 +250,25 @@ msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:65 #: lib/cannery_web/controllers/user_settings_controller.ex:65
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.ex:50
msgid "Ammo deleted succesfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.ex:68
msgid "Ammo unstaged succesfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:105
msgid "Ammo updated successfully"
msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:164
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""

View File

@ -178,10 +178,5 @@ defmodule Cannery.ActivityLogTest do
ActivityLog.get_shot_group!(shot_group.id, current_user) ActivityLog.get_shot_group!(shot_group.id, current_user)
end end
end end
test "change_shot_group/1 returns a shot_group changeset",
%{shot_group: shot_group} do
assert %Ecto.Changeset{} = ActivityLog.change_shot_group(shot_group)
end
end end
end end

View File

@ -180,9 +180,5 @@ defmodule Cannery.AmmoTest do
Ammo.get_ammo_group!(ammo_group.id, current_user) Ammo.get_ammo_group!(ammo_group.id, current_user)
end end
end end
test "change_ammo_group/1 returns a ammo_group changeset", %{ammo_group: ammo_group} do
assert %Changeset{} = Ammo.change_ammo_group(ammo_group)
end
end end
end end

View File

@ -35,15 +35,15 @@ 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))
ammo_group = ammo_group |> Repo.preload(:ammo_type) ammo_group = ammo_group |> Repo.preload(:ammo_type)
assert html =~ gettext("Ammo groups") assert html =~ gettext("Ammo")
assert html =~ ammo_group.ammo_type.name assert html =~ ammo_group.ammo_type.name
end end
test "saves a single new ammo_group", %{conn: conn} do test "saves a single new ammo_group", %{conn: conn} 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 |> element("a", dgettext("actions", "New Ammo group")) |> render_click() =~ assert index_live |> element("a", dgettext("actions", "Add Ammo")) |> render_click() =~
gettext("New Ammo group") gettext("Add Ammo")
assert_patch(index_live, Routes.ammo_group_index_path(conn, :new)) assert_patch(index_live, Routes.ammo_group_index_path(conn, :new))
@ -57,7 +57,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
|> render_submit() |> render_submit()
|> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index)) |> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index))
assert html =~ dgettext("prompts", "Ammo group created successfully") assert html =~ dgettext("prompts", "Ammo added successfully")
assert html =~ "42" assert html =~ "42"
end end
@ -66,8 +66,8 @@ 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 |> element("a", dgettext("actions", "New Ammo group")) |> render_click() =~ assert index_live |> element("a", dgettext("actions", "Add Ammo")) |> render_click() =~
gettext("New Ammo group") gettext("Add Ammo")
assert_patch(index_live, Routes.ammo_group_index_path(conn, :new)) assert_patch(index_live, Routes.ammo_group_index_path(conn, :new))
@ -83,15 +83,15 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
|> render_submit() |> render_submit()
|> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index)) |> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index))
assert html =~ dgettext("prompts", "Ammo groups created successfully") assert html =~ dgettext("prompts", "Ammo added successfully")
assert Ammo.list_ammo_groups(current_user) |> Enum.count() == multiplier + 1 assert Ammo.list_ammo_groups(current_user) |> Enum.count() == multiplier + 1
end end
test "does not save invalid number of new ammo_groups", %{conn: conn} do test "does not save invalid number of new ammo_groups", %{conn: conn} 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 |> element("a", dgettext("actions", "New Ammo group")) |> render_click() =~ assert index_live |> element("a", dgettext("actions", "Add Ammo")) |> render_click() =~
gettext("New Ammo group") gettext("Add Ammo")
assert_patch(index_live, Routes.ammo_group_index_path(conn, :new)) assert_patch(index_live, Routes.ammo_group_index_path(conn, :new))
@ -150,7 +150,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
assert index_live assert index_live
|> element("[data-qa=\"edit-#{ammo_group.id}\"]") |> element("[data-qa=\"edit-#{ammo_group.id}\"]")
|> render_click() =~ |> render_click() =~
gettext("Edit Ammo group") gettext("Edit Ammo")
assert_patch(index_live, Routes.ammo_group_index_path(conn, :edit, ammo_group)) assert_patch(index_live, Routes.ammo_group_index_path(conn, :edit, ammo_group))
@ -164,7 +164,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
|> render_submit() |> render_submit()
|> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index)) |> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index))
assert html =~ dgettext("prompts", "Ammo group updated successfully") assert html =~ dgettext("prompts", "Ammo updated successfully")
assert html =~ "43" assert html =~ "43"
end end
@ -186,7 +186,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))
ammo_group = ammo_group |> Repo.preload(:ammo_type) ammo_group = ammo_group |> Repo.preload(:ammo_type)
assert html =~ gettext("Show Ammo group") assert html =~ gettext("Show Ammo")
assert html =~ ammo_group.ammo_type.name assert html =~ ammo_group.ammo_type.name
end end
@ -196,7 +196,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
assert show_live assert show_live
|> element("[data-qa=\"edit\"]") |> element("[data-qa=\"edit\"]")
|> render_click() =~ |> render_click() =~
gettext("Edit Ammo group") gettext("Edit Ammo")
assert_patch(show_live, Routes.ammo_group_show_path(conn, :edit, ammo_group)) assert_patch(show_live, Routes.ammo_group_show_path(conn, :edit, ammo_group))
@ -210,7 +210,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
|> render_submit() |> render_submit()
|> follow_redirect(conn, Routes.ammo_group_show_path(conn, :show, ammo_group)) |> follow_redirect(conn, Routes.ammo_group_show_path(conn, :show, ammo_group))
assert html =~ dgettext("prompts", "Ammo group updated successfully") assert html =~ dgettext("prompts", "Ammo updated successfully")
assert html =~ "some updated notes" assert html =~ "some updated notes"
end end