Compare commits
No commits in common. "41bcc2f4568d6c4ff98f80c37536613844357fc3" and "5fd46c326f1297b74485177deefe4da981353e8d" have entirely different histories.
41bcc2f456
...
5fd46c326f
@ -1,7 +1,6 @@
|
|||||||
# Cannery
|
# Cannery
|
||||||
|
|
||||||
![logo](https://gitea.bubbletea.dev/shibao/cannery/raw/branch/stable/assets/static/images/cannery.png)
|
![screenshot](https://gitea.bubbletea.dev/shibao/cannery/raw/branch/stable/home.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.
Before Width: | Height: | Size: 84 KiB |
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 516 KiB |
@ -4,7 +4,8 @@ defmodule Cannery.ActivityLog do
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import Ecto.Query, warn: false
|
import Ecto.Query, warn: false
|
||||||
alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Ammo.AmmoGroup, Repo}
|
import CanneryWeb.Gettext
|
||||||
|
alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Ammo, Ammo.AmmoGroup, Repo}
|
||||||
alias Ecto.{Changeset, Multi}
|
alias Ecto.{Changeset, Multi}
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -59,30 +60,32 @@ 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(attrs, user, ammo_group) do
|
def create_shot_group(
|
||||||
Multi.new()
|
attrs,
|
||||||
|> Multi.insert(
|
%User{id: user_id},
|
||||||
:create_shot_group,
|
%AmmoGroup{id: ammo_group_id, count: ammo_group_count, user_id: user_id} = ammo_group
|
||||||
%ShotGroup{} |> ShotGroup.create_changeset(user, ammo_group, attrs)
|
) do
|
||||||
)
|
attrs = attrs |> Map.merge(%{"user_id" => user_id, "ammo_group_id" => ammo_group_id})
|
||||||
|> Multi.run(
|
changeset = %ShotGroup{} |> ShotGroup.create_changeset(attrs)
|
||||||
:ammo_group,
|
shot_group_count = changeset |> Changeset.get_field(:count)
|
||||||
fn repo, %{create_shot_group: %{ammo_group_id: ammo_group_id, user_id: user_id}} ->
|
|
||||||
{:ok,
|
if shot_group_count > ammo_group_count do
|
||||||
repo.one(from ag in AmmoGroup, where: ag.id == ^ammo_group_id and ag.user_id == ^user_id)}
|
error = dgettext("errors", "Count must be less than %{count}", count: ammo_group_count)
|
||||||
end
|
changeset = changeset |> Changeset.add_error(:count, error)
|
||||||
)
|
{:error, changeset}
|
||||||
|> Multi.update(
|
else
|
||||||
:update_ammo_group,
|
Multi.new()
|
||||||
fn %{create_shot_group: %{count: shot_group_count}, ammo_group: %{count: ammo_group_count}} ->
|
|> Multi.insert(:create_shot_group, changeset)
|
||||||
|
|> Multi.update(
|
||||||
|
:update_ammo_group,
|
||||||
ammo_group |> AmmoGroup.range_changeset(%{"count" => ammo_group_count - shot_group_count})
|
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
|
||||||
)
|
|
||||||
|> 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
|
||||||
|
|
||||||
@ -101,38 +104,42 @@ 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} = shot_group,
|
%ShotGroup{count: count, user_id: user_id, ammo_group_id: ammo_group_id} = shot_group,
|
||||||
attrs,
|
attrs,
|
||||||
%User{id: user_id} = user
|
%User{id: user_id} = user
|
||||||
) do
|
) do
|
||||||
Multi.new()
|
%{count: ammo_group_count, user_id: ^user_id} =
|
||||||
|> Multi.update(
|
ammo_group = ammo_group_id |> Ammo.get_ammo_group!(user)
|
||||||
:update_shot_group,
|
|
||||||
shot_group |> ShotGroup.update_changeset(user, attrs)
|
changeset = shot_group |> ShotGroup.update_changeset(attrs)
|
||||||
)
|
new_shot_group_count = changeset |> Changeset.get_field(:count)
|
||||||
|> Multi.run(
|
shot_diff_to_add = new_shot_group_count - count
|
||||||
:ammo_group,
|
|
||||||
fn repo, %{update_shot_group: %{ammo_group_id: ammo_group_id, user_id: user_id}} ->
|
cond do
|
||||||
{:ok,
|
shot_diff_to_add > ammo_group_count ->
|
||||||
repo.one(from ag in AmmoGroup, where: ag.id == ^ammo_group_id and ag.user_id == ^user_id)}
|
error = dgettext("errors", "Count must be less than %{count}", count: ammo_group_count)
|
||||||
end
|
changeset = changeset |> Changeset.add_error(:count, error)
|
||||||
)
|
{:error, changeset}
|
||||||
|> Multi.update(
|
|
||||||
:update_ammo_group,
|
new_shot_group_count <= 0 ->
|
||||||
fn %{
|
error = dgettext("errors", "Count must be at least 1")
|
||||||
update_shot_group: %{count: new_count},
|
changeset = changeset |> Changeset.add_error(:count, error)
|
||||||
ammo_group: %{count: ammo_group_count} = ammo_group
|
{:error, changeset}
|
||||||
} ->
|
|
||||||
shot_diff_to_add = new_count - count
|
true ->
|
||||||
new_ammo_group_count = ammo_group_count - shot_diff_to_add
|
Multi.new()
|
||||||
ammo_group |> AmmoGroup.range_changeset(%{"count" => new_ammo_group_count})
|
|> Multi.update(:update_shot_group, changeset)
|
||||||
end
|
|> Multi.update(
|
||||||
)
|
:update_ammo_group,
|
||||||
|> Repo.transaction()
|
ammo_group
|
||||||
|> case do
|
|> AmmoGroup.range_changeset(%{"count" => ammo_group_count - shot_diff_to_add})
|
||||||
{:ok, %{update_shot_group: shot_group}} -> {:ok, shot_group}
|
)
|
||||||
{:error, :update_shot_group, changeset, _changes_so_far} -> {:error, changeset}
|
|> Repo.transaction()
|
||||||
{:error, _other_transaction, _value, _changes_so_far} -> {:error, nil}
|
|> case do
|
||||||
|
{: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
|
||||||
|
|
||||||
@ -151,27 +158,18 @@ 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{user_id: user_id} = shot_group,
|
%ShotGroup{count: count, user_id: user_id, ammo_group_id: ammo_group_id} = shot_group,
|
||||||
%User{id: user_id}
|
%User{id: user_id} = user
|
||||||
) 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,
|
||||||
fn %{
|
ammo_group
|
||||||
delete_shot_group: %{count: count},
|
|> AmmoGroup.range_changeset(%{"count" => ammo_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
|
||||||
@ -180,4 +178,21 @@ 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
|
||||||
|
@ -4,9 +4,8 @@ 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, Repo}
|
alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Ammo.AmmoGroup}
|
||||||
alias Ecto.{Changeset, UUID}
|
alias Ecto.{Changeset, UUID}
|
||||||
|
|
||||||
@primary_key {:id, :binary_id, autogenerate: true}
|
@primary_key {:id, :binary_id, autogenerate: true}
|
||||||
@ -38,84 +37,21 @@ defmodule Cannery.ActivityLog.ShotGroup do
|
|||||||
@type id :: UUID.t()
|
@type id :: UUID.t()
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
@spec create_changeset(
|
@spec create_changeset(new_shot_group(), attrs :: map()) :: Changeset.t(new_shot_group())
|
||||||
new_shot_group(),
|
def create_changeset(shot_group, attrs) do
|
||||||
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
|
||||||
|> change(user_id: user_id)
|
|> cast(attrs, [:count, :notes, :date, :ammo_group_id, :user_id])
|
||||||
|> change(ammo_group_id: ammo_group_id)
|
|
||||||
|> cast(attrs, [:count, :notes, :date])
|
|
||||||
|> validate_number(:count, greater_than: 0)
|
|
||||||
|> validate_create_shot_group_count(ammo_group)
|
|
||||||
|> validate_required([:count, :ammo_group_id, :user_id])
|
|
||||||
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_number(:count, greater_than: 0)
|
||||||
|> validate_required([:count, :ammo_group_id, :user_id])
|
|> 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
|
end
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
@spec update_changeset(t() | new_shot_group(), User.t(), attrs :: map()) ::
|
@spec update_changeset(t() | new_shot_group(), attrs :: map()) ::
|
||||||
Changeset.t(t() | new_shot_group())
|
Changeset.t(t() | new_shot_group())
|
||||||
def update_changeset(
|
def update_changeset(shot_group, attrs) do
|
||||||
%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
|
||||||
|
@ -3,7 +3,6 @@ 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
|
||||||
@ -351,21 +350,18 @@ 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{} = user
|
%User{id: user_id} = user
|
||||||
)
|
)
|
||||||
when multiplier >= 1 and multiplier <= @ammo_group_create_limit and
|
when multiplier >= 1 and multiplier <= @ammo_group_create_limit do
|
||||||
not (ammo_type_id |> is_nil()) and not (container_id |> is_nil()) do
|
# validate ammo type and container ids belong to user
|
||||||
|
_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{} |> AmmoGroup.create_changeset(attrs |> Map.put("user_id", user_id))
|
||||||
|> 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
|
||||||
@ -390,27 +386,8 @@ defmodule Cannery.Ammo do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_ammo_groups(
|
def create_ammo_groups(invalid_attrs, _multiplier, _user) do
|
||||||
%{"ammo_type_id" => ammo_type_id, "container_id" => container_id} = attrs,
|
{:error, %AmmoGroup{} |> AmmoGroup.create_changeset(invalid_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 """
|
||||||
@ -459,4 +436,18 @@ 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
|
||||||
|
@ -7,7 +7,6 @@ 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}
|
||||||
@ -49,49 +48,22 @@ defmodule Cannery.Ammo.AmmoGroup do
|
|||||||
@type id :: UUID.t()
|
@type id :: UUID.t()
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
@spec create_changeset(
|
@spec create_changeset(new_ammo_group(), attrs :: map()) :: Changeset.t(new_ammo_group())
|
||||||
new_ammo_group(),
|
def create_changeset(ammo_group, attrs) do
|
||||||
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
|
||||||
|> change(ammo_type_id: ammo_type_id)
|
|> cast(attrs, [:count, :price_paid, :notes, :staged, :ammo_type_id, :container_id, :user_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])
|
|> cast(attrs, [:count, :price_paid, :notes, :staged, :ammo_type_id, :container_id])
|
||||||
|> validate_number(:count, greater_than_or_equal_to: 0)
|
|> validate_number(:count, greater_than_or_equal_to: 0)
|
||||||
|> validate_required([:count, :staged])
|
|> validate_required([:count, :staged, :ammo_type_id, :container_id, :user_id])
|
||||||
end
|
end
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -103,6 +75,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])
|
|> validate_required([:count, :staged, :ammo_type_id, :container_id, :user_id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -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)
|
|> validate_required([:name, :user_id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -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])
|
|> validate_required([:name, :type, :user_id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -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])
|
|> validate_required([:name, :token, :user_id])
|
||||||
|> validate_number(:uses_left, greater_than_or_equal_to: 0)
|
|> validate_number(:uses_left, greater_than_or_equal_to: 0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -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])
|
|> validate_required([:name, :bg_color, :text_color, :user_id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -16,10 +16,9 @@ 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}
|
%ShotGroup{date: NaiveDateTime.utc_now(), count: 1} |> ActivityLog.change_shot_group()
|
||||||
|> ShotGroup.create_changeset(current_user, ammo_group, %{})
|
|
||||||
|
|
||||||
{:ok, socket |> assign(assigns) |> assign(:changeset, changeset)}
|
{:ok, socket |> assign(assigns) |> assign(:changeset, changeset)}
|
||||||
end
|
end
|
||||||
@ -28,13 +27,21 @@ 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
|
||||||
params = shot_group_params |> process_params(ammo_group)
|
shot_group_params =
|
||||||
|
shot_group_params
|
||||||
|
|> process_params(ammo_group)
|
||||||
|
|> Map.merge(%{"ammo_group_id" => ammo_group_id, "user_id" => user_id})
|
||||||
|
|
||||||
changeset =
|
changeset =
|
||||||
%ShotGroup{}
|
%ShotGroup{}
|
||||||
|> ShotGroup.create_changeset(current_user, ammo_group, params)
|
|> ActivityLog.change_shot_group(shot_group_params)
|
||||||
|> Map.put(:action, :validate)
|
|> Map.put(:action, :validate)
|
||||||
|
|
||||||
{:noreply, socket |> assign(:changeset, changeset)}
|
{:noreply, socket |> assign(:changeset, changeset)}
|
||||||
@ -44,12 +51,17 @@ defmodule CanneryWeb.Components.AddShotGroupComponent do
|
|||||||
"save",
|
"save",
|
||||||
%{"shot_group" => shot_group_params},
|
%{"shot_group" => shot_group_params},
|
||||||
%{
|
%{
|
||||||
assigns: %{ammo_group: ammo_group, current_user: current_user, return_to: return_to}
|
assigns: %{
|
||||||
|
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} ->
|
||||||
|
@ -22,7 +22,7 @@ defmodule CanneryWeb.Components.MoveAmmoGroupComponent do
|
|||||||
assigns,
|
assigns,
|
||||||
socket
|
socket
|
||||||
) do
|
) do
|
||||||
changeset = ammo_group |> AmmoGroup.update_changeset(%{})
|
changeset = Ammo.change_ammo_group(ammo_group)
|
||||||
|
|
||||||
containers =
|
containers =
|
||||||
Containers.list_containers(current_user)
|
Containers.list_containers(current_user)
|
||||||
|
@ -16,16 +16,10 @@ 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 to: Routes.live_path(Endpoint, HomeLive),
|
<%= live_redirect("Cannery",
|
||||||
class: "inline mx-2 my-1 leading-5 text-xl text-white"
|
to: Routes.live_path(Endpoint, HomeLive),
|
||||||
do %>
|
class: "mx-2 my-1 leading-5 text-xl text-white hover:underline"
|
||||||
<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">
|
||||||
|
@ -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_group |> AmmoGroup.update_changeset(%{}))
|
|> assign(:changeset, Ammo.change_ammo_group(ammo_group))
|
||||||
|> 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, current_user: user}} = socket
|
%{assigns: %{action: action, ammo_group: ammo_group}} = socket
|
||||||
) do
|
) do
|
||||||
changeset_action =
|
changeset_action =
|
||||||
case action do
|
case action do
|
||||||
@ -44,24 +44,7 @@ defmodule CanneryWeb.AmmoGroupLive.FormComponent do
|
|||||||
:edit -> :update
|
:edit -> :update
|
||||||
end
|
end
|
||||||
|
|
||||||
changeset =
|
changeset = ammo_group |> Ammo.change_ammo_group(ammo_group_params)
|
||||||
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
|
||||||
|
@ -5,7 +5,6 @@ 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
|
||||||
@ -37,13 +36,6 @@ 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>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
defmodule CanneryWeb.RangeLive.FormComponent do
|
defmodule CanneryWeb.RangeLive.FormComponent do
|
||||||
@moduledoc """
|
@moduledoc """
|
||||||
Livecomponent that can update a ShotGroup
|
Livecomponent that can update or create 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 |> ShotGroup.update_changeset(current_user, %{})
|
changeset = shot_group |> ActivityLog.change_shot_group()
|
||||||
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: %{current_user: current_user, shot_group: shot_group}} = socket
|
%{assigns: %{shot_group: shot_group}} = socket
|
||||||
) do
|
) do
|
||||||
changeset =
|
changeset =
|
||||||
shot_group
|
shot_group
|
||||||
|> ShotGroup.update_changeset(current_user, shot_group_params)
|
|> ActivityLog.change_shot_group(shot_group_params)
|
||||||
|> Map.put(:action, :validate)
|
|> Map.put(:action, :validate)
|
||||||
|
|
||||||
{:noreply, assign(socket, :changeset, changeset)}
|
{:noreply, assign(socket, :changeset, changeset)}
|
||||||
|
@ -66,7 +66,7 @@ msgid "Invite someone new!"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:112
|
#: lib/cannery_web/components/topbar.ex:106
|
||||||
#: 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
|
||||||
@ -97,7 +97,7 @@ msgid "New Tag"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:105
|
#: lib/cannery_web/components/topbar.ex:99
|
||||||
#: 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
|
||||||
|
@ -79,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:112
|
#: lib/cannery_web/components/topbar.ex:106
|
||||||
#: 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
|
||||||
@ -110,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:105
|
#: lib/cannery_web/components/topbar.ex:99
|
||||||
#: 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
|
||||||
|
@ -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:64
|
#: lib/cannery_web/live/home_live.ex:56
|
||||||
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:86
|
#: lib/cannery_web/live/home_live.ex:78
|
||||||
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:100
|
#: lib/cannery_web/live/home_live.ex:92
|
||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr "Admins:"
|
msgstr "Admins:"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:62
|
#: lib/cannery_web/components/topbar.ex:56
|
||||||
#: 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:50
|
#: lib/cannery_web/components/topbar.ex:44
|
||||||
#: 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,7 +167,7 @@ msgid "Disable"
|
|||||||
msgstr "Deaktivieren"
|
msgstr "Deaktivieren"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:61
|
#: lib/cannery_web/live/home_live.ex:53
|
||||||
msgid "Easy to Use:"
|
msgid "Easy to Use:"
|
||||||
msgstr "Einfache Anwendung:"
|
msgstr "Einfache Anwendung:"
|
||||||
|
|
||||||
@ -222,7 +222,7 @@ msgid "Incendiary"
|
|||||||
msgstr "Brandmunition"
|
msgstr "Brandmunition"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:95
|
#: lib/cannery_web/live/home_live.ex:87
|
||||||
msgid "Instance Information"
|
msgid "Instance Information"
|
||||||
msgstr "Instanzinformationen"
|
msgstr "Instanzinformationen"
|
||||||
|
|
||||||
@ -232,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:126
|
#: lib/cannery_web/live/home_live.ex:118
|
||||||
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:75
|
#: lib/cannery_web/components/topbar.ex:69
|
||||||
#: 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"
|
||||||
@ -388,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:125
|
#: lib/cannery_web/live/home_live.ex:117
|
||||||
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:73
|
#: lib/cannery_web/live/home_live.ex:65
|
||||||
msgid "Secure:"
|
msgid "Secure:"
|
||||||
msgstr "Sicher:"
|
msgstr "Sicher:"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:76
|
#: lib/cannery_web/live/home_live.ex:68
|
||||||
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 "
|
||||||
@ -421,7 +421,7 @@ 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:83
|
#: lib/cannery_web/live/home_live.ex:75
|
||||||
msgid "Simple:"
|
msgid "Simple:"
|
||||||
msgstr "Einfach:"
|
msgstr "Einfach:"
|
||||||
|
|
||||||
@ -436,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:44
|
#: lib/cannery_web/components/topbar.ex:38
|
||||||
#: 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,7 +453,7 @@ msgid "Text color"
|
|||||||
msgstr "Textfarbe"
|
msgstr "Textfarbe"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:52
|
#: lib/cannery_web/live/home_live.ex:44
|
||||||
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"
|
||||||
|
|
||||||
@ -492,12 +492,12 @@ msgid "Uses left"
|
|||||||
msgstr "Verbleibende Nutzung"
|
msgstr "Verbleibende Nutzung"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:48
|
#: lib/cannery_web/live/home_live.ex:40
|
||||||
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:77
|
#: lib/cannery_web/live/home_live.ex:69
|
||||||
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"
|
||||||
|
|
||||||
@ -507,7 +507,7 @@ 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:68
|
#: lib/cannery_web/components/topbar.ex:62
|
||||||
#: 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"
|
||||||
@ -863,27 +863,27 @@ msgid "Language"
|
|||||||
msgstr "Sprache"
|
msgstr "Sprache"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:147
|
#: lib/cannery_web/live/home_live.ex:139
|
||||||
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:164
|
#: lib/cannery_web/live/home_live.ex:156
|
||||||
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:173
|
#: lib/cannery_web/live/home_live.ex:165
|
||||||
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:155
|
#: lib/cannery_web/live/home_live.ex:147
|
||||||
msgid "View the source code"
|
msgid "View the source code"
|
||||||
msgstr "Quellcode ansehen"
|
msgstr "Quellcode ansehen"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:56
|
#: lib/cannery_web/components/topbar.ex:50
|
||||||
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
|
||||||
msgid "Catalog"
|
msgid "Catalog"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -918,14 +918,3 @@ msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
|
|||||||
#: lib/cannery_web/live/container_live/show.html.heex:27
|
#: lib/cannery_web/live/container_live/show.html.heex:27
|
||||||
msgid "Packs:"
|
msgid "Packs:"
|
||||||
msgstr ""
|
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 ""
|
|
||||||
|
@ -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/shot_group.ex:115
|
#: lib/cannery/activity_log.ex:125
|
||||||
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/shot_group.ex:74
|
#: lib/cannery/activity_log.ex:73
|
||||||
#: lib/cannery/activity_log/shot_group.ex:111
|
#: lib/cannery/activity_log.ex:120
|
||||||
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,28 +176,13 @@ 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:143
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126
|
||||||
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:128
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111
|
||||||
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 ""
|
|
||||||
|
@ -113,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:90
|
#: lib/cannery_web/components/topbar.ex:84
|
||||||
msgid "Are you sure you want to log out?"
|
msgid "Are you sure you want to log out?"
|
||||||
msgstr "Wirklich ausloggen?"
|
msgstr "Wirklich ausloggen?"
|
||||||
|
|
||||||
@ -162,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:104
|
#: lib/cannery_web/live/home_live.ex:96
|
||||||
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"
|
||||||
|
|
||||||
@ -205,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:56
|
#: lib/cannery_web/components/add_shot_group_component.ex:68
|
||||||
msgid "Shots recorded successfully"
|
msgid "Shots recorded successfully"
|
||||||
msgstr "Schüsse erfolgreich dokumentiert"
|
msgstr "Schüsse erfolgreich dokumentiert"
|
||||||
|
|
||||||
@ -283,12 +283,12 @@ msgid "Ammo unstaged succesfully"
|
|||||||
msgstr "Munition erfolgreich demarkiert"
|
msgstr "Munition erfolgreich demarkiert"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:105
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
|
||||||
msgid "Ammo updated successfully"
|
msgid "Ammo updated successfully"
|
||||||
msgstr "Munitionsgruppe erfolgreich aktualisiert"
|
msgstr "Munitionsgruppe erfolgreich aktualisiert"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:164
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
|
||||||
msgid "Ammo added successfully"
|
msgid "Ammo added successfully"
|
||||||
msgid_plural "Ammo added successfully"
|
msgid_plural "Ammo added successfully"
|
||||||
msgstr[0] "Munitionsgruppe erfolgreich aktualisiert"
|
msgstr[0] "Munitionsgruppe erfolgreich aktualisiert"
|
||||||
|
@ -11,12 +11,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:64
|
#: lib/cannery_web/live/home_live.ex:56
|
||||||
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:86
|
#: lib/cannery_web/live/home_live.ex:78
|
||||||
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:100
|
#: lib/cannery_web/live/home_live.ex:92
|
||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:62
|
#: lib/cannery_web/components/topbar.ex:56
|
||||||
#: 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:50
|
#: lib/cannery_web/components/topbar.ex:44
|
||||||
#: 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,7 +152,7 @@ msgid "Disable"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:61
|
#: lib/cannery_web/live/home_live.ex:53
|
||||||
msgid "Easy to Use:"
|
msgid "Easy to Use:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -207,7 +207,7 @@ msgid "Incendiary"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:95
|
#: lib/cannery_web/live/home_live.ex:87
|
||||||
msgid "Instance Information"
|
msgid "Instance Information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -217,12 +217,12 @@ msgid "Invite Disabled"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:126
|
#: lib/cannery_web/live/home_live.ex:118
|
||||||
msgid "Invite Only"
|
msgid "Invite Only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:75
|
#: lib/cannery_web/components/topbar.ex:69
|
||||||
#: 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"
|
||||||
@ -373,17 +373,17 @@ msgid "Primer type"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:125
|
#: lib/cannery_web/live/home_live.ex:117
|
||||||
msgid "Public Signups"
|
msgid "Public Signups"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:73
|
#: lib/cannery_web/live/home_live.ex:65
|
||||||
msgid "Secure:"
|
msgid "Secure:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:76
|
#: lib/cannery_web/live/home_live.ex:68
|
||||||
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 ""
|
||||||
|
|
||||||
@ -404,7 +404,7 @@ msgid "Show Ammo type"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:83
|
#: lib/cannery_web/live/home_live.ex:75
|
||||||
msgid "Simple:"
|
msgid "Simple:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -419,7 +419,7 @@ msgid "Stored in"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:44
|
#: lib/cannery_web/components/topbar.ex:38
|
||||||
#: 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"
|
||||||
@ -436,7 +436,7 @@ msgid "Text color"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:52
|
#: lib/cannery_web/live/home_live.ex:44
|
||||||
msgid "The self-hosted firearm tracker website"
|
msgid "The self-hosted firearm tracker website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -475,12 +475,12 @@ msgid "Uses left"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:48
|
#: lib/cannery_web/live/home_live.ex:40
|
||||||
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:77
|
#: lib/cannery_web/live/home_live.ex:69
|
||||||
msgid "Your data stays with you, period"
|
msgid "Your data stays with you, period"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -490,7 +490,7 @@ msgid "No tags for this container"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:68
|
#: lib/cannery_web/components/topbar.ex:62
|
||||||
#: 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 ""
|
||||||
@ -846,27 +846,27 @@ msgid "Language"
|
|||||||
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:139
|
||||||
msgid "Get involved!"
|
msgid "Get involved!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:164
|
#: lib/cannery_web/live/home_live.ex:156
|
||||||
msgid "Help translate"
|
msgid "Help translate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:173
|
#: lib/cannery_web/live/home_live.ex:165
|
||||||
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:155
|
#: lib/cannery_web/live/home_live.ex:147
|
||||||
msgid "View the source code"
|
msgid "View the source code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:56
|
#: lib/cannery_web/components/topbar.ex:50
|
||||||
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
|
||||||
msgid "Catalog"
|
msgid "Catalog"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -901,14 +901,3 @@ msgstr ""
|
|||||||
#: lib/cannery_web/live/container_live/show.html.heex:27
|
#: lib/cannery_web/live/container_live/show.html.heex:27
|
||||||
msgid "Packs:"
|
msgid "Packs:"
|
||||||
msgstr ""
|
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 ""
|
|
||||||
|
@ -67,7 +67,7 @@ msgid "Invite someone new!"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:112
|
#: lib/cannery_web/components/topbar.ex:106
|
||||||
#: 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
|
||||||
@ -98,7 +98,7 @@ msgid "New Tag"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:105
|
#: lib/cannery_web/components/topbar.ex:99
|
||||||
#: 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
|
||||||
|
@ -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:64
|
#: lib/cannery_web/live/home_live.ex:56
|
||||||
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:86
|
#: lib/cannery_web/live/home_live.ex:78
|
||||||
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:100
|
#: lib/cannery_web/live/home_live.ex:92
|
||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:62
|
#: lib/cannery_web/components/topbar.ex:56
|
||||||
#: 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:50
|
#: lib/cannery_web/components/topbar.ex:44
|
||||||
#: 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,7 +153,7 @@ msgid "Disable"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:61
|
#: lib/cannery_web/live/home_live.ex:53
|
||||||
msgid "Easy to Use:"
|
msgid "Easy to Use:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -208,7 +208,7 @@ msgid "Incendiary"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:95
|
#: lib/cannery_web/live/home_live.ex:87
|
||||||
msgid "Instance Information"
|
msgid "Instance Information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -218,12 +218,12 @@ msgid "Invite Disabled"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:126
|
#: lib/cannery_web/live/home_live.ex:118
|
||||||
msgid "Invite Only"
|
msgid "Invite Only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:75
|
#: lib/cannery_web/components/topbar.ex:69
|
||||||
#: 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"
|
||||||
@ -374,17 +374,17 @@ msgid "Primer type"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:125
|
#: lib/cannery_web/live/home_live.ex:117
|
||||||
msgid "Public Signups"
|
msgid "Public Signups"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:73
|
#: lib/cannery_web/live/home_live.ex:65
|
||||||
msgid "Secure:"
|
msgid "Secure:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:76
|
#: lib/cannery_web/live/home_live.ex:68
|
||||||
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 ""
|
||||||
|
|
||||||
@ -405,7 +405,7 @@ msgid "Show Ammo type"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:83
|
#: lib/cannery_web/live/home_live.ex:75
|
||||||
msgid "Simple:"
|
msgid "Simple:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -420,7 +420,7 @@ msgid "Stored in"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:44
|
#: lib/cannery_web/components/topbar.ex:38
|
||||||
#: 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"
|
||||||
@ -437,7 +437,7 @@ msgid "Text color"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:52
|
#: lib/cannery_web/live/home_live.ex:44
|
||||||
msgid "The self-hosted firearm tracker website"
|
msgid "The self-hosted firearm tracker website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -476,12 +476,12 @@ msgid "Uses left"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:48
|
#: lib/cannery_web/live/home_live.ex:40
|
||||||
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:77
|
#: lib/cannery_web/live/home_live.ex:69
|
||||||
msgid "Your data stays with you, period"
|
msgid "Your data stays with you, period"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -491,7 +491,7 @@ msgid "No tags for this container"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:68
|
#: lib/cannery_web/components/topbar.ex:62
|
||||||
#: 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 ""
|
||||||
@ -847,27 +847,27 @@ msgid "Language"
|
|||||||
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:139
|
||||||
msgid "Get involved!"
|
msgid "Get involved!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:164
|
#: lib/cannery_web/live/home_live.ex:156
|
||||||
msgid "Help translate"
|
msgid "Help translate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:173
|
#: lib/cannery_web/live/home_live.ex:165
|
||||||
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:155
|
#: lib/cannery_web/live/home_live.ex:147
|
||||||
msgid "View the source code"
|
msgid "View the source code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:56
|
#: lib/cannery_web/components/topbar.ex:50
|
||||||
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
|
||||||
msgid "Catalog"
|
msgid "Catalog"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -902,14 +902,3 @@ msgstr ""
|
|||||||
#: lib/cannery_web/live/container_live/show.html.heex:27
|
#: lib/cannery_web/live/container_live/show.html.heex:27
|
||||||
msgid "Packs:"
|
msgid "Packs:"
|
||||||
msgstr ""
|
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 ""
|
|
||||||
|
@ -139,13 +139,13 @@ msgid "Tag could not be added"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery/activity_log/shot_group.ex:115
|
#: lib/cannery/activity_log.ex:125
|
||||||
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/shot_group.ex:74
|
#: lib/cannery/activity_log.ex:73
|
||||||
#: lib/cannery/activity_log/shot_group.ex:111
|
#: lib/cannery/activity_log.ex:120
|
||||||
msgid "Count must be less than %{count}"
|
msgid "Count must be less than %{count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -161,26 +161,11 @@ 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:143
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126
|
||||||
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:128
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111
|
||||||
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 ""
|
|
||||||
|
@ -99,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:90
|
#: lib/cannery_web/components/topbar.ex:84
|
||||||
msgid "Are you sure you want to log out?"
|
msgid "Are you sure you want to log out?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -144,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:104
|
#: lib/cannery_web/live/home_live.ex:96
|
||||||
msgid "Register to setup %{name}"
|
msgid "Register to setup %{name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ msgid "Adding..."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/add_shot_group_component.ex:56
|
#: lib/cannery_web/components/add_shot_group_component.ex:68
|
||||||
msgid "Shots recorded successfully"
|
msgid "Shots recorded successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -263,12 +263,12 @@ msgid "Ammo unstaged succesfully"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:105
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
|
||||||
msgid "Ammo updated successfully"
|
msgid "Ammo updated successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:164
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
|
||||||
msgid "Ammo added successfully"
|
msgid "Ammo added successfully"
|
||||||
msgid_plural "Ammo added successfully"
|
msgid_plural "Ammo added successfully"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
|
@ -138,13 +138,13 @@ msgid "Tag could not be added"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery/activity_log/shot_group.ex:115
|
#: lib/cannery/activity_log.ex:125
|
||||||
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/shot_group.ex:74
|
#: lib/cannery/activity_log.ex:73
|
||||||
#: lib/cannery/activity_log/shot_group.ex:111
|
#: lib/cannery/activity_log.ex:120
|
||||||
msgid "Count must be less than %{count}"
|
msgid "Count must be less than %{count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -160,26 +160,11 @@ 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:143
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126
|
||||||
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:128
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111
|
||||||
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 ""
|
|
||||||
|
@ -77,7 +77,7 @@ msgid "Invite someone new!"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:112
|
#: lib/cannery_web/components/topbar.ex:106
|
||||||
#: 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
|
||||||
@ -108,7 +108,7 @@ msgid "New Tag"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:105
|
#: lib/cannery_web/components/topbar.ex:99
|
||||||
#: 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
|
||||||
|
@ -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:64
|
#: lib/cannery_web/live/home_live.ex:56
|
||||||
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:86
|
#: lib/cannery_web/live/home_live.ex:78
|
||||||
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:100
|
#: lib/cannery_web/live/home_live.ex:92
|
||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:62
|
#: lib/cannery_web/components/topbar.ex:56
|
||||||
#: 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:50
|
#: lib/cannery_web/components/topbar.ex:44
|
||||||
#: 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,7 +163,7 @@ msgid "Disable"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:61
|
#: lib/cannery_web/live/home_live.ex:53
|
||||||
msgid "Easy to Use:"
|
msgid "Easy to Use:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ msgid "Incendiary"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:95
|
#: lib/cannery_web/live/home_live.ex:87
|
||||||
msgid "Instance Information"
|
msgid "Instance Information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -228,12 +228,12 @@ msgid "Invite Disabled"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:126
|
#: lib/cannery_web/live/home_live.ex:118
|
||||||
msgid "Invite Only"
|
msgid "Invite Only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:75
|
#: lib/cannery_web/components/topbar.ex:69
|
||||||
#: 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"
|
||||||
@ -384,17 +384,17 @@ msgid "Primer type"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:125
|
#: lib/cannery_web/live/home_live.ex:117
|
||||||
msgid "Public Signups"
|
msgid "Public Signups"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:73
|
#: lib/cannery_web/live/home_live.ex:65
|
||||||
msgid "Secure:"
|
msgid "Secure:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:76
|
#: lib/cannery_web/live/home_live.ex:68
|
||||||
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 ""
|
||||||
|
|
||||||
@ -415,7 +415,7 @@ msgid "Show Ammo type"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:83
|
#: lib/cannery_web/live/home_live.ex:75
|
||||||
msgid "Simple:"
|
msgid "Simple:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -430,7 +430,7 @@ msgid "Stored in"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:44
|
#: lib/cannery_web/components/topbar.ex:38
|
||||||
#: 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"
|
||||||
@ -447,7 +447,7 @@ msgid "Text color"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:52
|
#: lib/cannery_web/live/home_live.ex:44
|
||||||
msgid "The self-hosted firearm tracker website"
|
msgid "The self-hosted firearm tracker website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -486,12 +486,12 @@ msgid "Uses left"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:48
|
#: lib/cannery_web/live/home_live.ex:40
|
||||||
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:77
|
#: lib/cannery_web/live/home_live.ex:69
|
||||||
msgid "Your data stays with you, period"
|
msgid "Your data stays with you, period"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -501,7 +501,7 @@ msgid "No tags for this container"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:68
|
#: lib/cannery_web/components/topbar.ex:62
|
||||||
#: 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 ""
|
||||||
@ -857,27 +857,27 @@ msgid "Language"
|
|||||||
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:139
|
||||||
msgid "Get involved!"
|
msgid "Get involved!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:164
|
#: lib/cannery_web/live/home_live.ex:156
|
||||||
msgid "Help translate"
|
msgid "Help translate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:173
|
#: lib/cannery_web/live/home_live.ex:165
|
||||||
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:155
|
#: lib/cannery_web/live/home_live.ex:147
|
||||||
msgid "View the source code"
|
msgid "View the source code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:56
|
#: lib/cannery_web/components/topbar.ex:50
|
||||||
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
|
||||||
msgid "Catalog"
|
msgid "Catalog"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -912,14 +912,3 @@ msgstr ""
|
|||||||
#: lib/cannery_web/live/container_live/show.html.heex:27
|
#: lib/cannery_web/live/container_live/show.html.heex:27
|
||||||
msgid "Packs:"
|
msgid "Packs:"
|
||||||
msgstr ""
|
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 ""
|
|
||||||
|
@ -149,13 +149,13 @@ msgid "Tag could not be added"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery/activity_log/shot_group.ex:115
|
#: lib/cannery/activity_log.ex:125
|
||||||
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/shot_group.ex:74
|
#: lib/cannery/activity_log.ex:73
|
||||||
#: lib/cannery/activity_log/shot_group.ex:111
|
#: lib/cannery/activity_log.ex:120
|
||||||
msgid "Count must be less than %{count}"
|
msgid "Count must be less than %{count}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -171,26 +171,11 @@ 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:143
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126
|
||||||
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:128
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111
|
||||||
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 ""
|
|
||||||
|
@ -109,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:90
|
#: lib/cannery_web/components/topbar.ex:84
|
||||||
msgid "Are you sure you want to log out?"
|
msgid "Are you sure you want to log out?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -154,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:104
|
#: lib/cannery_web/live/home_live.ex:96
|
||||||
msgid "Register to setup %{name}"
|
msgid "Register to setup %{name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -195,7 +195,7 @@ msgid "Adding..."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/add_shot_group_component.ex:56
|
#: lib/cannery_web/components/add_shot_group_component.ex:68
|
||||||
msgid "Shots recorded successfully"
|
msgid "Shots recorded successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -273,12 +273,12 @@ msgid "Ammo unstaged succesfully"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:105
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
|
||||||
msgid "Ammo updated successfully"
|
msgid "Ammo updated successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:164
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
|
||||||
msgid "Ammo added successfully"
|
msgid "Ammo added successfully"
|
||||||
msgid_plural "Ammo added successfully"
|
msgid_plural "Ammo added successfully"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
|
@ -79,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:112
|
#: lib/cannery_web/components/topbar.ex:106
|
||||||
#: 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
|
||||||
@ -110,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:105
|
#: lib/cannery_web/components/topbar.ex:99
|
||||||
#: 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
|
||||||
|
@ -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:64
|
#: lib/cannery_web/live/home_live.ex:56
|
||||||
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:86
|
#: lib/cannery_web/live/home_live.ex:78
|
||||||
msgid "Access from any internet-capable device"
|
msgid "Access from any internet-capable device"
|
||||||
msgstr "Accédez depuis n’importe quel appareil connecté à internet"
|
msgstr "Accédez depuis n’importe 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:100
|
#: lib/cannery_web/live/home_live.ex:92
|
||||||
msgid "Admins:"
|
msgid "Admins:"
|
||||||
msgstr "Administrateur·ices :"
|
msgstr "Administrateur·ices :"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:62
|
#: lib/cannery_web/components/topbar.ex:56
|
||||||
#: 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:50
|
#: lib/cannery_web/components/topbar.ex:44
|
||||||
#: 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,7 +167,7 @@ msgid "Disable"
|
|||||||
msgstr "Désactiver"
|
msgstr "Désactiver"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:61
|
#: lib/cannery_web/live/home_live.ex:53
|
||||||
msgid "Easy to Use:"
|
msgid "Easy to Use:"
|
||||||
msgstr "Simple à utiliser :"
|
msgstr "Simple à utiliser :"
|
||||||
|
|
||||||
@ -222,7 +222,7 @@ msgid "Incendiary"
|
|||||||
msgstr "Incendiaire"
|
msgstr "Incendiaire"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:95
|
#: lib/cannery_web/live/home_live.ex:87
|
||||||
msgid "Instance Information"
|
msgid "Instance Information"
|
||||||
msgstr "Information de l’instance"
|
msgstr "Information de l’instance"
|
||||||
|
|
||||||
@ -232,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:126
|
#: lib/cannery_web/live/home_live.ex:118
|
||||||
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:75
|
#: lib/cannery_web/components/topbar.ex:69
|
||||||
#: 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"
|
||||||
@ -388,17 +388,17 @@ msgid "Primer type"
|
|||||||
msgstr "Type d’amorce"
|
msgstr "Type d’amorce"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:125
|
#: lib/cannery_web/live/home_live.ex:117
|
||||||
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:73
|
#: lib/cannery_web/live/home_live.ex:65
|
||||||
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:76
|
#: lib/cannery_web/live/home_live.ex:68
|
||||||
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 d’une personne à "
|
"Auto-hébergez votre propre instance ou utilisez celle d’une personne à "
|
||||||
@ -421,7 +421,7 @@ 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:83
|
#: lib/cannery_web/live/home_live.ex:75
|
||||||
msgid "Simple:"
|
msgid "Simple:"
|
||||||
msgstr "Simple :"
|
msgstr "Simple :"
|
||||||
|
|
||||||
@ -436,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:44
|
#: lib/cannery_web/components/topbar.ex:38
|
||||||
#: 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"
|
||||||
@ -455,7 +455,7 @@ 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:52
|
#: lib/cannery_web/live/home_live.ex:44
|
||||||
msgid "The self-hosted firearm tracker website"
|
msgid "The self-hosted firearm tracker website"
|
||||||
msgstr "Le site web de suivi d’arme à feux auto-hébergé"
|
msgstr "Le site web de suivi d’arme à feux auto-hébergé"
|
||||||
|
|
||||||
@ -494,12 +494,12 @@ msgid "Uses left"
|
|||||||
msgstr "Utilisations restantes"
|
msgstr "Utilisations restantes"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:48
|
#: lib/cannery_web/live/home_live.ex:40
|
||||||
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:77
|
#: lib/cannery_web/live/home_live.ex:69
|
||||||
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"
|
||||||
|
|
||||||
@ -509,7 +509,7 @@ 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:68
|
#: lib/cannery_web/components/topbar.ex:62
|
||||||
#: 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"
|
||||||
@ -865,27 +865,27 @@ msgid "Language"
|
|||||||
msgstr "Langue"
|
msgstr "Langue"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/home_live.ex:147
|
#: lib/cannery_web/live/home_live.ex:139
|
||||||
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:164
|
#: lib/cannery_web/live/home_live.ex:156
|
||||||
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:173
|
#: lib/cannery_web/live/home_live.ex:165
|
||||||
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:155
|
#: lib/cannery_web/live/home_live.ex:147
|
||||||
msgid "View the source code"
|
msgid "View the source code"
|
||||||
msgstr "Voir le code source"
|
msgstr "Voir le code source"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/topbar.ex:56
|
#: lib/cannery_web/components/topbar.ex:50
|
||||||
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
|
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
|
||||||
msgid "Catalog"
|
msgid "Catalog"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -920,14 +920,3 @@ msgstr "Ce groupe de munition n’est pas dans un conteneur"
|
|||||||
#: lib/cannery_web/live/container_live/show.html.heex:27
|
#: lib/cannery_web/live/container_live/show.html.heex:27
|
||||||
msgid "Packs:"
|
msgid "Packs:"
|
||||||
msgstr ""
|
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 ""
|
|
||||||
|
@ -153,13 +153,13 @@ msgid "Tag could not be added"
|
|||||||
msgstr "Le tag n’a pas pu être ajouté"
|
msgstr "Le tag n’a pas pu être ajouté"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery/activity_log/shot_group.ex:115
|
#: lib/cannery/activity_log.ex:125
|
||||||
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/shot_group.ex:74
|
#: lib/cannery/activity_log.ex:73
|
||||||
#: lib/cannery/activity_log/shot_group.ex:111
|
#: lib/cannery/activity_log.ex:120
|
||||||
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,26 +177,11 @@ msgid "Tag could not be removed"
|
|||||||
msgstr "Le tag n’a pas pu être retiré"
|
msgstr "Le tag n’a pas pu être retiré"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:143
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126
|
||||||
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:128
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111
|
||||||
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 ""
|
|
||||||
|
@ -114,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:90
|
#: lib/cannery_web/components/topbar.ex:84
|
||||||
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 ?"
|
||||||
|
|
||||||
@ -163,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:104
|
#: lib/cannery_web/live/home_live.ex:96
|
||||||
msgid "Register to setup %{name}"
|
msgid "Register to setup %{name}"
|
||||||
msgstr "S’enregistrer pour mettre en place %{name}"
|
msgstr "S’enregistrer pour mettre en place %{name}"
|
||||||
|
|
||||||
@ -206,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:56
|
#: lib/cannery_web/components/add_shot_group_component.ex:68
|
||||||
msgid "Shots recorded successfully"
|
msgid "Shots recorded successfully"
|
||||||
msgstr "Tirs enregistré avec succès"
|
msgstr "Tirs enregistré avec succès"
|
||||||
|
|
||||||
@ -284,12 +284,12 @@ msgid "Ammo unstaged succesfully"
|
|||||||
msgstr "Groupe de munition désélectionner avec succès"
|
msgstr "Groupe de munition désélectionner avec succès"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:105
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
|
||||||
msgid "Ammo updated successfully"
|
msgid "Ammo updated successfully"
|
||||||
msgstr "Groupe de munition mis à jour avec succès"
|
msgstr "Groupe de munition mis à jour avec succès"
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:164
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
|
||||||
msgid "Ammo added successfully"
|
msgid "Ammo added successfully"
|
||||||
msgid_plural "Ammo added successfully"
|
msgid_plural "Ammo added successfully"
|
||||||
msgstr[0] "Groupe de munition mis à jour avec succès"
|
msgstr[0] "Groupe de munition mis à jour avec succès"
|
||||||
|
@ -98,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:90
|
#: lib/cannery_web/components/topbar.ex:84
|
||||||
msgid "Are you sure you want to log out?"
|
msgid "Are you sure you want to log out?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -143,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:104
|
#: lib/cannery_web/live/home_live.ex:96
|
||||||
msgid "Register to setup %{name}"
|
msgid "Register to setup %{name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ msgid "Adding..."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/components/add_shot_group_component.ex:56
|
#: lib/cannery_web/components/add_shot_group_component.ex:68
|
||||||
msgid "Shots recorded successfully"
|
msgid "Shots recorded successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -262,12 +262,12 @@ msgid "Ammo unstaged succesfully"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:105
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
|
||||||
msgid "Ammo updated successfully"
|
msgid "Ammo updated successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
#: lib/cannery_web/live/ammo_group_live/form_component.ex:164
|
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
|
||||||
msgid "Ammo added successfully"
|
msgid "Ammo added successfully"
|
||||||
msgid_plural "Ammo added successfully"
|
msgid_plural "Ammo added successfully"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
|
@ -178,5 +178,10 @@ 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
|
||||||
|
@ -180,5 +180,9 @@ 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
|
||||||
|
Loading…
Reference in New Issue
Block a user