Compare commits

...

12 Commits
0.8.4 ... 0.8.6

59 changed files with 1217 additions and 885 deletions

View File

@ -1,3 +1,18 @@
# v0.8.6
- Fix duplicate entries showing up
- Show ammo packs under a type in a table by default
- Only show historical ammo type information when displaying "Show used" in table
- Only show historical ammo pack information when displaying "Show used" in table
- Fix some values not being sorted in tables properly
- Code quality improvements
- Show link to ammo pack in ammo pack table while viewing ammo type
# v0.8.5
- Add link in readme to github mirror
- Fix tables unable to sort on empty dates
- Only show historical ammo type information when displaying "Show used"
- Fix even more accessibility issues
# v0.8.4
- Improve accessibility
- Code quality improvements

View File

@ -92,6 +92,15 @@ Cannery is licensed under AGPLv3 or later. A copy of the latest version of the
license can be found at
[LICENSE.md](https://gitea.bubbletea.dev/shibao/cannery/src/branch/stable/LICENSE.md).
# Links
- [Gitea](https://gitea.bubbletea.dev/shibao/cannery): Main repo, feature
requests and bug reports
- [Github](https://github.com/shibaobun/cannery): Source code mirror, please
don't open pull requests to this repository
- [Weblate](https://weblate.bubbletea.dev/engage/cannery): Contribute to
translations!
---
[![Build

View File

@ -60,7 +60,8 @@ defmodule Cannery.ActivityLog do
sg.search,
^trimmed_search
)
}
},
distinct: sg.id
)
end

View File

@ -715,6 +715,7 @@ defmodule Cannery.Ammo do
on: c.user_id == t.user_id,
as: :t,
where: ag.user_id == ^user_id,
distinct: ag.id,
preload: ^@ammo_group_preloads
)
|> list_ammo_groups_include_empty(include_empty)
@ -842,12 +843,39 @@ defmodule Cannery.Ammo do
"""
@spec get_percentage_remaining(AmmoGroup.t(), User.t()) :: non_neg_integer()
def get_percentage_remaining(%AmmoGroup{count: 0, user_id: user_id}, %User{id: user_id}) do
0
def get_percentage_remaining(%AmmoGroup{id: ammo_group_id} = ammo_group, user) do
[ammo_group]
|> get_percentages_remaining(user)
|> Map.fetch!(ammo_group_id)
end
def get_percentage_remaining(%AmmoGroup{count: count} = ammo_group, current_user) do
round(count / get_original_count(ammo_group, current_user) * 100)
@doc """
Calculates the percentages remaining of multiple ammo groups out of 100
## Examples
iex> get_percentages_remaining(
...> [%AmmoGroup{id: 123, count: 5, user_id: 456}],
...> %User{id: 456}
...> )
%{123 => 100}
"""
@spec get_percentages_remaining([AmmoGroup.t()], User.t()) ::
%{optional(AmmoGroup.id()) => non_neg_integer()}
def get_percentages_remaining(ammo_groups, %User{id: user_id} = user) do
original_counts = get_original_counts(ammo_groups, user)
ammo_groups
|> Map.new(fn %AmmoGroup{id: ammo_group_id, count: count, user_id: ^user_id} ->
percentage =
case count do
0 -> 0
count -> round(count / Map.fetch!(original_counts, ammo_group_id) * 100)
end
{ammo_group_id, percentage}
end)
end
@doc """

View File

@ -0,0 +1,12 @@
defmodule Cannery.ComparableDate do
@moduledoc """
A custom `Date` module that provides a `compare/2` function that is comparable
with nil values
"""
@spec compare(Date.t() | any(), Date.t() | any()) :: :lt | :gt | :eq
def compare(%Date{} = date_1, %Date{} = date_2), do: Date.compare(date_1, date_2)
def compare(%Date{}, _date_2), do: :lt
def compare(_date_1, %Date{}), do: :gt
def compare(_date_1, _date_2), do: :eq
end

View File

@ -0,0 +1,15 @@
defmodule Cannery.ComparableDateTime do
@moduledoc """
A custom `DateTime` module that provides a `compare/2` function that is
comparable with nil values
"""
@spec compare(DateTime.t() | any(), DateTime.t() | any()) :: :lt | :gt | :eq
def compare(%DateTime{} = datetime_1, %DateTime{} = datetime_2) do
DateTime.compare(datetime_1, datetime_2)
end
def compare(%DateTime{}, _datetime_2), do: :lt
def compare(_datetime_1, %DateTime{}), do: :gt
def compare(_datetime_1, _datetime_2), do: :eq
end

View File

@ -32,6 +32,7 @@ defmodule Cannery.Containers do
as: :t,
where: c.user_id == ^user_id,
order_by: c.name,
distinct: c.id,
preload: ^@container_preloads
)
|> list_containers_search(search)
@ -91,7 +92,7 @@ defmodule Cannery.Containers do
@doc """
Gets a single container.
Raises `Ecto.NoResultsError` if the Container does not exist.
Raises `KeyError` if the Container does not exist.
## Examples
@ -99,18 +100,37 @@ defmodule Cannery.Containers do
%Container{}
iex> get_container!(456, %User{id: 123})
** (Ecto.NoResultsError)
** (KeyError)
"""
@spec get_container!(Container.id(), User.t()) :: Container.t()
def get_container!(id, %User{id: user_id}) do
Repo.one!(
def get_container!(id, user) do
[id]
|> get_containers(user)
|> Map.fetch!(id)
end
@doc """
Gets multiple containers.
## Examples
iex> get_containers([123], %User{id: 123})
%{123 => %Container{}}
"""
@spec get_containers([Container.id()], User.t()) :: %{optional(Container.id()) => Container.t()}
def get_containers(ids, %User{id: user_id}) do
Repo.all(
from c in Container,
where: c.user_id == ^user_id,
where: c.id == ^id,
where: c.id in ^ids,
order_by: c.name,
preload: ^@container_preloads
preload: ^@container_preloads,
select: {c.id, c}
)
|> Map.new()
end
@doc """

View File

@ -3,7 +3,8 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
A component that displays a list of ammo groups
"""
use CanneryWeb, :live_component
alias Cannery.{Accounts.User, ActivityLog, Ammo, Ammo.AmmoGroup, Containers}
alias Cannery.{Accounts.User, Ammo.AmmoGroup, ComparableDate}
alias Cannery.{ActivityLog, Ammo, Containers}
alias Ecto.UUID
alias Phoenix.LiveView.{Rendered, Socket}
@ -13,6 +14,7 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
required(:id) => UUID.t(),
required(:current_user) => User.t(),
required(:ammo_groups) => [AmmoGroup.t()],
required(:show_used) => boolean(),
optional(:ammo_type) => Rendered.t(),
optional(:range) => Rendered.t(),
optional(:container) => Rendered.t(),
@ -21,7 +23,11 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
},
Socket.t()
) :: {:ok, Socket.t()}
def update(%{id: _id, ammo_groups: _ammo_group, current_user: _current_user} = assigns, socket) do
def update(
%{id: _id, ammo_groups: _ammo_group, current_user: _current_user, show_used: _show_used} =
assigns,
socket
) do
socket =
socket
|> assign(assigns)
@ -42,7 +48,8 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
ammo_type: ammo_type,
range: range,
container: container,
actions: actions
actions: actions,
show_used: show_used
}
} = socket
) do
@ -50,12 +57,12 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
if actions == [] do
[]
else
[%{label: nil, key: :actions, sortable: false}]
[%{label: gettext("Actions"), key: :actions, sortable: false}]
end
columns = [
%{label: gettext("Purchased on"), key: :purchased_on, type: Date},
%{label: gettext("Last used on"), key: :used_up_on, type: Date} | columns
%{label: gettext("Purchased on"), key: :purchased_on, type: ComparableDate},
%{label: gettext("Last used on"), key: :used_up_on, type: ComparableDate} | columns
]
columns =
@ -73,12 +80,24 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
end
columns = [
%{label: gettext("Count"), key: :count},
%{label: gettext("Original Count"), key: :original_count},
%{label: gettext("Price paid"), key: :price_paid},
%{label: gettext("CPR"), key: :cpr},
%{label: gettext("% left"), key: :remaining},
%{label: gettext("Notes"), key: :notes}
%{label: gettext("CPR"), key: :cpr}
| columns
]
columns =
if show_used do
[
%{label: gettext("Original Count"), key: :original_count},
%{label: gettext("% left"), key: :remaining}
| columns
]
else
columns
end
columns = [
%{label: if(show_used, do: gettext("Current Count"), else: gettext("Count")), key: :count}
| columns
]
@ -89,14 +108,21 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
[%{label: gettext("Ammo type"), key: :ammo_type} | columns]
end
containers =
ammo_groups
|> Enum.map(fn %{container_id: container_id} -> container_id end)
|> Containers.get_containers(current_user)
extra_data = %{
current_user: current_user,
ammo_type: ammo_type,
columns: columns,
container: container,
containers: containers,
original_counts: Ammo.get_original_counts(ammo_groups, current_user),
cprs: Ammo.get_cprs(ammo_groups, current_user),
last_used_dates: ActivityLog.get_last_used_dates(ammo_groups, current_user),
percentages_remaining: Ammo.get_percentages_remaining(ammo_groups, current_user),
actions: actions,
range: range
}
@ -147,10 +173,11 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
"""}
end
defp get_value_for_key(:price_paid, %{price_paid: nil}, _additional_data), do: {"", nil}
defp get_value_for_key(:price_paid, %{price_paid: nil}, _additional_data),
do: {0, gettext("No cost information")}
defp get_value_for_key(:price_paid, %{price_paid: price_paid}, _additional_data),
do: gettext("$%{amount}", amount: display_currency(price_paid))
do: {price_paid, gettext("$%{amount}", amount: display_currency(price_paid))}
defp get_value_for_key(:purchased_on, %{purchased_on: purchased_on} = assigns, _additional_data) do
{purchased_on,
@ -182,11 +209,14 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
"""}
end
defp get_value_for_key(:remaining, ammo_group, %{current_user: current_user}),
do:
gettext("%{percentage}%",
percentage: ammo_group |> Ammo.get_percentage_remaining(current_user)
)
defp get_value_for_key(
:remaining,
%{id: ammo_group_id},
%{percentages_remaining: percentages_remaining}
) do
percentage = Map.fetch!(percentages_remaining, ammo_group_id)
{percentage, gettext("%{percentage}%", percentage: percentage)}
end
defp get_value_for_key(:actions, ammo_group, %{actions: actions}) do
assigns = %{actions: actions, ammo_group: ammo_group}
@ -201,12 +231,13 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
defp get_value_for_key(
:container,
%{container_id: container_id} = ammo_group,
%{container: container, current_user: current_user}
%{container: container_block, containers: containers}
) do
container = %{name: container_name} = Map.fetch!(containers, container_id)
assigns = %{
container:
%{name: container_name} = container_id |> Containers.get_container!(current_user),
container_block: container,
container: container,
container_block: container_block,
ammo_group: ammo_group
}
@ -216,21 +247,24 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
"""}
end
defp get_value_for_key(:original_count, %{id: ammo_group_id}, %{
original_counts: original_counts
}) do
defp get_value_for_key(
:original_count,
%{id: ammo_group_id},
%{original_counts: original_counts}
) do
Map.fetch!(original_counts, ammo_group_id)
end
defp get_value_for_key(:cpr, %{price_paid: nil}, _additional_data),
do: gettext("No cost information")
do: {0, gettext("No cost information")}
defp get_value_for_key(:cpr, %{id: ammo_group_id}, %{cprs: cprs}) do
gettext("$%{amount}", amount: display_currency(Map.fetch!(cprs, ammo_group_id)))
amount = Map.fetch!(cprs, ammo_group_id)
{amount, gettext("$%{amount}", amount: display_currency(amount))}
end
defp get_value_for_key(:count, %{count: count}, _additional_data),
do: if(count == 0, do: gettext("Empty"), else: count)
do: if(count == 0, do: {0, gettext("Empty")}, else: count)
defp get_value_for_key(key, ammo_group, _additional_data), do: ammo_group |> Map.get(key)

View File

@ -103,13 +103,13 @@ defmodule CanneryWeb.Components.AmmoTypeTableComponent do
[
%{
label: gettext("Used packs"),
key: :used_packs_count,
type: :used_packs_count
key: :used_pack_count,
type: :used_pack_count
},
%{
label: gettext("Total ever packs"),
key: :historical_packs_count,
type: :historical_packs_count
key: :historical_pack_count,
type: :historical_pack_count
}
]
else
@ -118,27 +118,25 @@ defmodule CanneryWeb.Components.AmmoTypeTableComponent do
)
|> Kernel.++([
%{label: gettext("Average CPR"), key: :avg_price_paid, type: :avg_price_paid},
%{label: nil, key: "actions", type: :actions, sortable: false}
%{label: gettext("Actions"), key: "actions", type: :actions, sortable: false}
])
round_counts = ammo_types |> Ammo.get_round_count_for_ammo_types(current_user)
used_counts =
show_used && ammo_types |> ActivityLog.get_used_count_for_ammo_types(current_user)
historical_round_counts =
show_used && ammo_types |> Ammo.get_historical_count_for_ammo_types(current_user)
packs_count = ammo_types |> Ammo.get_ammo_groups_count_for_types(current_user)
historical_packs_count =
show_used && ammo_types |> Ammo.get_ammo_groups_count_for_types(current_user, true)
used_packs_count =
show_used && ammo_types |> Ammo.get_used_ammo_groups_count_for_types(current_user)
average_costs = ammo_types |> Ammo.get_average_cost_for_ammo_types(current_user)
[used_counts, historical_round_counts, historical_pack_counts, used_pack_counts] =
if show_used do
[
ammo_types |> ActivityLog.get_used_count_for_ammo_types(current_user),
ammo_types |> Ammo.get_historical_count_for_ammo_types(current_user),
ammo_types |> Ammo.get_ammo_groups_count_for_types(current_user, true),
ammo_types |> Ammo.get_used_ammo_groups_count_for_types(current_user)
]
else
[nil, nil, nil, nil]
end
extra_data = %{
actions: actions,
current_user: current_user,
@ -146,8 +144,8 @@ defmodule CanneryWeb.Components.AmmoTypeTableComponent do
round_counts: round_counts,
historical_round_counts: historical_round_counts,
packs_count: packs_count,
used_packs_count: used_packs_count,
historical_packs_count: historical_packs_count,
used_pack_counts: used_pack_counts,
historical_pack_counts: historical_pack_counts,
average_costs: average_costs
}
@ -185,54 +183,68 @@ defmodule CanneryWeb.Components.AmmoTypeTableComponent do
do: ammo_type |> Map.get(key) |> humanize()
defp get_ammo_type_value(:round_count, _key, %{id: ammo_type_id}, %{round_counts: round_counts}),
do: Map.get(round_counts, ammo_type_id)
do: Map.get(round_counts, ammo_type_id, 0)
defp get_ammo_type_value(
:historical_round_count,
_key,
%{id: ammo_type_id},
%{historical_round_counts: historical_round_counts}
),
do: Map.get(historical_round_counts, ammo_type_id)
defp get_ammo_type_value(:used_round_count, _key, %{id: ammo_type_id}, %{
used_counts: used_counts
}),
do: Map.get(used_counts, ammo_type_id)
) do
Map.get(historical_round_counts, ammo_type_id, 0)
end
defp get_ammo_type_value(
:historical_packs_count,
:used_round_count,
_key,
%{id: ammo_type_id},
%{historical_packs_count: historical_packs_count}
),
do: Map.get(historical_packs_count, ammo_type_id)
%{used_counts: used_counts}
) do
Map.get(used_counts, ammo_type_id, 0)
end
defp get_ammo_type_value(:used_packs_count, _key, %{id: ammo_type_id}, %{
used_packs_count: used_packs_count
}),
do: Map.get(used_packs_count, ammo_type_id)
defp get_ammo_type_value(
:historical_pack_count,
_key,
%{id: ammo_type_id},
%{historical_pack_counts: historical_pack_counts}
) do
Map.get(historical_pack_counts, ammo_type_id, 0)
end
defp get_ammo_type_value(
:used_pack_count,
_key,
%{id: ammo_type_id},
%{used_pack_counts: used_pack_counts}
) do
Map.get(used_pack_counts, ammo_type_id, 0)
end
defp get_ammo_type_value(:ammo_count, _key, %{id: ammo_type_id}, %{packs_count: packs_count}),
do: Map.get(packs_count, ammo_type_id)
defp get_ammo_type_value(:avg_price_paid, _key, %{id: ammo_type_id}, %{
average_costs: average_costs
}) do
defp get_ammo_type_value(
:avg_price_paid,
_key,
%{id: ammo_type_id},
%{average_costs: average_costs}
) do
case Map.get(average_costs, ammo_type_id) do
nil -> gettext("No cost information")
count -> gettext("$%{amount}", amount: display_currency(count))
nil -> {0, gettext("No cost information")}
count -> {count, gettext("$%{amount}", amount: display_currency(count))}
end
end
defp get_ammo_type_value(:name, _key, ammo_type, _other_data) do
defp get_ammo_type_value(:name, _key, %{name: ammo_type_name} = ammo_type, _other_data) do
assigns = %{ammo_type: ammo_type}
~H"""
<.link navigate={Routes.ammo_type_show_path(Endpoint, :show, @ammo_type)} class="link">
<%= @ammo_type.name %>
</.link>
"""
{ammo_type_name,
~H"""
<.link navigate={Routes.ammo_type_show_path(Endpoint, :show, @ammo_type)} class="link">
<%= @ammo_type.name %>
</.link>
"""}
end
defp get_ammo_type_value(:actions, _key, ammo_type, %{actions: actions}) do

View File

@ -64,7 +64,7 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
%{label: gettext("Packs"), key: :packs, type: :integer},
%{label: gettext("Rounds"), key: :rounds, type: :integer},
%{label: gettext("Tags"), key: :tags, type: :tags},
%{label: nil, key: :actions, sortable: false, type: :actions}
%{label: gettext("Actions"), key: :actions, sortable: false, type: :actions}
])
extra_data = %{

View File

@ -6,7 +6,7 @@ defmodule CanneryWeb.CoreComponents do
import CanneryWeb.{Gettext, ViewHelpers}
alias Cannery.{Accounts, Accounts.Invite, Accounts.User}
alias Cannery.{Ammo, Ammo.AmmoGroup}
alias Cannery.{Containers, Containers.Container, Containers.Tag}
alias Cannery.{Containers.Container, Containers.Tag}
alias CanneryWeb.{Endpoint, HomeLive}
alias CanneryWeb.Router.Helpers, as: Routes
alias Phoenix.LiveView.{JS, Rendered}
@ -91,7 +91,7 @@ defmodule CanneryWeb.CoreComponents do
attr :original_count, :integer, default: nil
attr :cpr, :integer, default: nil
attr :last_used_date, Date, default: nil
attr :show_container, :boolean, default: false
attr :container, Container, default: nil
slot(:inner_block)
def ammo_group_card(assigns)

View File

@ -17,7 +17,10 @@
<%= if @ammo_group.count == 0, do: gettext("Empty"), else: @ammo_group.count %>
</span>
<span :if={@original_count != @ammo_group.count} class="rounded-lg title text-lg">
<span
:if={@original_count && @original_count != @ammo_group.count}
class="rounded-lg title text-lg"
>
<%= gettext("Original Count:") %>
<%= @original_count %>
</span>
@ -27,7 +30,7 @@
<%= @ammo_group.notes %>
</span>
<span class="rounded-lg title text-lg">
<span :if={@ammo_group.purchased_on} class="rounded-lg title text-lg">
<%= gettext("Purchased on:") %>
<.date id={"#{@ammo_group.id}-purchased-on"} date={@ammo_group.purchased_on} />
</span>
@ -47,17 +50,11 @@
<%= gettext("$%{amount}", amount: display_currency(@cpr)) %>
</span>
<span
:if={@show_container && Containers.get_container!(@ammo_group.container_id, @current_user)}
class="rounded-lg title text-lg"
>
<span :if={@container} class="rounded-lg title text-lg">
<%= gettext("Container:") %>
<.link
navigate={Routes.container_show_path(Endpoint, :show, @ammo_group.container_id)}
class="link"
>
<%= Containers.get_container!(@ammo_group.container_id, @current_user).name %>
<.link navigate={Routes.container_show_path(Endpoint, :show, @container)} class="link">
<%= @container.name %>
</.link>
</span>
</div>

View File

@ -1,4 +1,4 @@
<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-500">
<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">
<.link
@ -87,6 +87,7 @@
href={Routes.user_session_path(Endpoint, :delete)}
method="delete"
data-confirm={dgettext("prompts", "Are you sure you want to log out?")}
aria-label={gettext("Log out")}
>
<i class="fas fa-sign-out-alt"></i>
</.link>
@ -101,6 +102,7 @@
<.link
navigate={Routes.live_dashboard_path(Endpoint, :home)}
class="text-white hover:underline"
aria-label={gettext("Live Dashboard")}
>
<i class="fas fa-gauge"></i>
</.link>

View File

@ -67,7 +67,7 @@ defmodule CanneryWeb.Components.MoveAmmoGroupComponent do
%{label: gettext("Container"), key: :name},
%{label: gettext("Type"), key: :type},
%{label: gettext("Location"), key: :location},
%{label: nil, key: :actions, sortable: false}
%{label: gettext("Actions"), key: :actions, sortable: false}
]
rows = containers |> get_rows_for_containers(assigns, columns)

View File

@ -3,7 +3,7 @@ defmodule CanneryWeb.Components.ShotGroupTableComponent do
A component that displays a list of shot groups
"""
use CanneryWeb, :live_component
alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Ammo}
alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Ammo, ComparableDate}
alias Ecto.UUID
alias Phoenix.LiveView.{Rendered, Socket}
@ -41,8 +41,8 @@ defmodule CanneryWeb.Components.ShotGroupTableComponent do
%{label: gettext("Ammo"), key: :name},
%{label: gettext("Rounds shot"), key: :count},
%{label: gettext("Notes"), key: :notes},
%{label: gettext("Date"), key: :date, type: Date},
%{label: nil, key: :actions, sortable: false}
%{label: gettext("Date"), key: :date, type: ComparableDate},
%{label: gettext("Actions"), key: :actions, sortable: false}
]
ammo_groups =

View File

@ -32,18 +32,17 @@ defmodule CanneryWeb.ExportController do
used_counts = ammo_groups |> ActivityLog.get_used_counts(current_user)
original_counts = ammo_groups |> Ammo.get_original_counts(current_user)
cprs = ammo_groups |> Ammo.get_cprs(current_user)
percentages_remaining = ammo_groups |> Ammo.get_percentages_remaining(current_user)
ammo_groups =
ammo_groups
|> Enum.map(fn %{id: ammo_group_id} = ammo_group ->
percentage_remaining = ammo_group |> Ammo.get_percentage_remaining(current_user)
ammo_group
|> Jason.encode!()
|> Jason.decode!()
|> Map.merge(%{
"used_count" => Map.get(used_counts, ammo_group_id),
"percentage_remaining" => percentage_remaining,
"percentage_remaining" => Map.fetch!(percentages_remaining, ammo_group_id),
"original_count" => Map.get(original_counts, ammo_group_id),
"cpr" => Map.get(cprs, ammo_group_id)
})

View File

@ -54,6 +54,7 @@
<%= text_input(f, :search_term,
class: "input input-primary",
value: @search,
role: "search",
phx_debounce: 300,
placeholder: gettext("Search ammo")
) %>
@ -77,6 +78,7 @@
id="ammo-group-index-table"
ammo_groups={@ammo_groups}
current_user={@current_user}
show_used={@show_used}
>
<:ammo_type :let={%{name: ammo_type_name} = ammo_type}>
<.link navigate={Routes.ammo_type_show_path(Endpoint, :show, ammo_type)} class="link">

View File

@ -6,7 +6,7 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
use CanneryWeb, :live_view
alias Cannery.{ActivityLog, ActivityLog.ShotGroup}
alias Cannery.{Ammo, Ammo.AmmoGroup}
alias Cannery.Containers
alias Cannery.{ComparableDate, Containers}
alias CanneryWeb.Endpoint
alias Phoenix.LiveView.Socket
@ -90,8 +90,8 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
columns = [
%{label: gettext("Rounds shot"), key: :count},
%{label: gettext("Notes"), key: :notes},
%{label: gettext("Date"), key: :date, type: Date},
%{label: nil, key: :actions, sortable: false}
%{label: gettext("Date"), key: :date, type: ComparableDate},
%{label: gettext("Actions"), key: :actions, sortable: false}
]
shot_groups = ActivityLog.list_shot_groups_for_ammo_group(ammo_group, current_user)

View File

@ -29,6 +29,7 @@
<%= text_input(f, :search_term,
class: "input input-primary",
value: @search,
role: "search",
phx_debounce: 300,
placeholder: gettext("Search catalog")
) %>

View File

@ -4,7 +4,7 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
"""
use CanneryWeb, :live_view
alias Cannery.{ActivityLog, Ammo, Ammo.AmmoType}
alias Cannery.{ActivityLog, Ammo, Ammo.AmmoType, Containers}
alias CanneryWeb.Endpoint
@fields_list [
@ -30,17 +30,12 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
]
@impl true
def mount(_params, _session, %{assigns: %{live_action: live_action}} = socket),
do: {:ok, socket |> assign(show_used: false, view_table: live_action == :table)}
def mount(_params, _session, socket),
do: {:ok, socket |> assign(show_used: false, view_table: true)}
@impl true
def handle_params(%{"id" => id}, _params, %{assigns: %{live_action: live_action}} = socket) do
socket =
socket
|> assign(view_table: live_action == :table)
|> display_ammo_type(id)
{:noreply, socket}
def handle_params(%{"id" => id}, _params, socket) do
{:noreply, socket |> display_ammo_type(id)}
end
@impl true
@ -61,23 +56,14 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_type()}
end
def handle_event(
"toggle_table",
_params,
%{assigns: %{view_table: view_table, ammo_type: ammo_type}} = socket
) do
new_path =
if view_table,
do: Routes.ammo_type_show_path(Endpoint, :show, ammo_type),
else: Routes.ammo_type_show_path(Endpoint, :table, ammo_type)
{:noreply, socket |> push_patch(to: new_path)}
def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do
{:noreply, socket |> assign(:view_table, !view_table)}
end
defp display_ammo_type(
%{assigns: %{live_action: live_action, current_user: current_user, show_used: show_used}} =
socket,
%AmmoType{} = ammo_type
%AmmoType{name: ammo_type_name} = ammo_type
) do
fields_to_display =
@fields_list
@ -92,25 +78,52 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
end)
ammo_groups = ammo_type |> Ammo.list_ammo_groups_for_type(current_user, show_used)
original_counts = ammo_groups |> Ammo.get_original_counts(current_user)
cprs = ammo_groups |> Ammo.get_cprs(current_user)
historical_packs_count = ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user, true)
last_used_dates = ammo_groups |> ActivityLog.get_last_used_dates(current_user)
[
original_counts,
used_packs_count,
historical_packs_count,
used_rounds,
historical_round_count
] =
if show_used do
[
ammo_groups |> Ammo.get_original_counts(current_user),
ammo_type |> Ammo.get_used_ammo_groups_count_for_type(current_user),
ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user, true),
ammo_type |> ActivityLog.get_used_count_for_ammo_type(current_user),
ammo_type |> Ammo.get_historical_count_for_ammo_type(current_user)
]
else
[nil, nil, nil, nil, nil]
end
page_title =
case live_action do
:show -> ammo_type_name
:edit -> gettext("Edit %{ammo_type_name}", ammo_type_name: ammo_type_name)
end
containers =
ammo_groups
|> Enum.map(fn %{container_id: container_id} -> container_id end)
|> Containers.get_containers(current_user)
socket
|> assign(
page_title: page_title(live_action, ammo_type),
page_title: page_title,
ammo_type: ammo_type,
ammo_groups: ammo_groups,
original_counts: original_counts,
cprs: cprs,
last_used_dates: last_used_dates,
containers: containers,
cprs: ammo_groups |> Ammo.get_cprs(current_user),
last_used_dates: ammo_groups |> ActivityLog.get_last_used_dates(current_user),
avg_cost_per_round: ammo_type |> Ammo.get_average_cost_for_ammo_type(current_user),
rounds: ammo_type |> Ammo.get_round_count_for_ammo_type(current_user),
used_rounds: ammo_type |> ActivityLog.get_used_count_for_ammo_type(current_user),
historical_round_count: ammo_type |> Ammo.get_historical_count_for_ammo_type(current_user),
original_counts: original_counts,
used_rounds: used_rounds,
historical_round_count: historical_round_count,
packs_count: ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user),
used_packs_count: ammo_type |> Ammo.get_used_ammo_groups_count_for_type(current_user),
used_packs_count: used_packs_count,
historical_packs_count: historical_packs_count,
fields_list: @fields_list,
fields_to_display: fields_to_display
@ -127,10 +140,4 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
@spec display_currency(float()) :: String.t()
defp display_currency(float), do: :erlang.float_to_binary(float, decimals: 2)
defp page_title(action, %{name: ammo_type_name}) when action in [:show, :table],
do: ammo_type_name
defp page_title(:edit, %{name: ammo_type_name}),
do: gettext("Edit %{ammo_type_name}", ammo_type_name: ammo_type_name)
end

View File

@ -74,26 +74,24 @@
<%= @rounds %>
</span>
<h3 class="title text-lg">
<%= gettext("Used rounds:") %>
</h3>
<%= if @show_used do %>
<h3 class="title text-lg">
<%= gettext("Used rounds:") %>
</h3>
<span class="text-primary-600">
<%= @used_rounds %>
</span>
<span class="text-primary-600">
<%= @used_rounds %>
</span>
<h3 class="title text-lg">
<%= gettext("Total ever rounds:") %>
</h3>
<h3 class="title text-lg">
<%= gettext("Total ever rounds:") %>
</h3>
<span class="text-primary-600">
<%= @historical_round_count %>
</span>
</div>
<span class="text-primary-600">
<%= @historical_round_count %>
</span>
<% end %>
<hr class="hr" />
<div class="grid sm:grid-cols-2 gap-4 text-center justify-center items-center">
<h3 class="title text-lg">
<%= gettext("Packs:") %>
</h3>
@ -102,26 +100,24 @@
<%= @packs_count %>
</span>
<h3 class="title text-lg">
<%= gettext("Used packs:") %>
</h3>
<%= if @show_used do %>
<h3 class="title text-lg">
<%= gettext("Used packs:") %>
</h3>
<span class="text-primary-600">
<%= @used_packs_count %>
</span>
<span class="text-primary-600">
<%= @used_packs_count %>
</span>
<h3 class="title text-lg">
<%= gettext("Total ever packs:") %>
</h3>
<h3 class="title text-lg">
<%= gettext("Total ever packs:") %>
</h3>
<span class="text-primary-600">
<%= @historical_packs_count %>
</span>
</div>
<span class="text-primary-600">
<%= @historical_packs_count %>
</span>
<% end %>
<hr class="hr" />
<div class="grid sm:grid-cols-2 gap-4 text-center justify-center items-center">
<h3 class="title text-lg">
<%= gettext("Added on:") %>
</h3>
@ -174,6 +170,7 @@
id="ammo-type-show-table"
ammo_groups={@ammo_groups}
current_user={@current_user}
show_used={@show_used}
>
<:container :let={{_ammo_group, %{name: container_name} = container}}>
<.link
@ -183,17 +180,32 @@
<%= container_name %>
</.link>
</:container>
<:actions :let={%{count: ammo_group_count} = ammo_group}>
<div class="py-2 px-4 h-full space-x-4 flex justify-center items-center">
<.link
navigate={Routes.ammo_group_show_path(Endpoint, :show, ammo_group)}
class="text-primary-600 link"
aria-label={
dgettext("actions", "View ammo group of %{ammo_group_count} bullets",
ammo_group_count: ammo_group_count
)
}
>
<i class="fa-fw fa-lg fas fa-eye"></i>
</.link>
</div>
</:actions>
</.live_component>
<% else %>
<div class="flex flex-wrap justify-center items-stretch">
<.ammo_group_card
:for={%{id: ammo_group_id} = ammo_group <- @ammo_groups}
:for={%{id: ammo_group_id, container_id: container_id} = ammo_group <- @ammo_groups}
ammo_group={ammo_group}
original_count={Map.fetch!(@original_counts, ammo_group_id)}
original_count={@original_counts && Map.fetch!(@original_counts, ammo_group_id)}
cpr={Map.get(@cprs, ammo_group_id)}
last_used_date={Map.get(@last_used_dates, ammo_group_id)}
current_user={@current_user}
show_container={true}
container={Map.fetch!(@containers, container_id)}
/>
</div>
<% end %>

View File

@ -29,6 +29,7 @@
<%= text_input(f, :search_term,
class: "input input-primary",
value: @search,
role: "search",
phx_debounce: 300,
placeholder: gettext("Search containers")
) %>

View File

@ -104,7 +104,7 @@ defmodule CanneryWeb.ContainerLive.Show do
page_title =
case live_action do
action when action in [:show, :table] -> container_name
:show -> container_name
:edit -> gettext("Edit %{name}", name: container_name)
:edit_tags -> gettext("Edit %{name} tags", name: container_name)
end

View File

@ -118,6 +118,7 @@
id="ammo-type-show-table"
ammo_groups={@ammo_groups}
current_user={@current_user}
show_used={@show_used}
>
<:ammo_type :let={%{name: ammo_type_name} = ammo_type}>
<.link navigate={Routes.ammo_type_show_path(Endpoint, :show, ammo_type)} class="link">

View File

@ -6,21 +6,11 @@ defmodule CanneryWeb.InviteLive.Index do
use CanneryWeb, :live_view
alias Cannery.Accounts
alias Cannery.Accounts.{Invite, Invites}
alias CanneryWeb.HomeLive
alias Phoenix.LiveView.JS
@impl true
def mount(_params, _session, %{assigns: %{current_user: current_user}} = socket) do
socket =
if current_user |> Map.get(:role) == :admin do
socket |> display_invites()
else
prompt = dgettext("errors", "You are not authorized to view this page")
return_to = Routes.live_path(Endpoint, HomeLive)
socket |> put_flash(:error, prompt) |> push_redirect(to: return_to)
end
{:ok, socket}
def mount(_params, _session, socket) do
{:ok, socket |> display_invites()}
end
@impl true

View File

@ -86,6 +86,7 @@
<%= text_input(f, :search_term,
class: "input input-primary",
value: @search,
role: "search",
phx_debounce: 300,
placeholder: gettext("Search shot records")
) %>

View File

@ -32,6 +32,7 @@
<%= text_input(f, :search_term,
class: "input input-primary",
value: @search,
role: "search",
phx_debounce: 300,
placeholder: gettext("Search tags")
) %>

View File

@ -77,7 +77,6 @@ defmodule CanneryWeb.Router do
live "/type/:id", AmmoTypeLive.Show, :show
live "/type/:id/edit", AmmoTypeLive.Show, :edit
live "/type/:id/table", AmmoTypeLive.Show, :table
live "/containers", ContainerLive.Index, :index
live "/containers/new", ContainerLive.Index, :new

View File

@ -107,9 +107,9 @@
action={Routes.user_settings_path(@conn, :update)}
class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
>
<h3 class="title text-primary-600 text-lg text-center col-span-3">
<%= dgettext("actions", "Change Language") %>
</h3>
<%= label(f, :locale, dgettext("actions", "Change Language"),
class: "title text-primary-600 text-lg text-center col-span-3"
) %>
<div
:if={@locale_changeset.action && not @locale_changeset.valid?()}

View File

@ -4,7 +4,7 @@ defmodule Cannery.MixProject do
def project do
[
app: :cannery,
version: "0.8.4",
version: "0.8.6",
elixir: "1.14.1",
elixirc_paths: elixirc_paths(Mix.env()),
compilers: Mix.compilers(),

View File

@ -66,7 +66,7 @@ msgstr ""
msgid "Invite someone new!"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:122
#: lib/cannery_web/components/core_components/topbar.html.heex:124
#: lib/cannery_web/templates/user_confirmation/new.html.heex:32
#: lib/cannery_web/templates/user_registration/new.html.heex:44
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
@ -97,7 +97,7 @@ msgstr ""
msgid "New Tag"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:114
#: lib/cannery_web/components/core_components/topbar.html.heex:116
#: lib/cannery_web/templates/user_confirmation/new.html.heex:29
#: lib/cannery_web/templates/user_registration/new.html.heex:3
#: lib/cannery_web/templates/user_registration/new.html.heex:37
@ -156,7 +156,7 @@ msgstr ""
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:103
#: lib/cannery_web/live/ammo_group_live/index.html.heex:105
#: lib/cannery_web/live/ammo_group_live/show.html.heex:103
#: lib/cannery_web/live/range_live/index.html.heex:45
#, elixir-autogen, elixir-format
@ -188,7 +188,7 @@ msgstr ""
msgid "Create"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
#: lib/cannery_web/templates/user_settings/edit.html.heex:110
#, elixir-autogen, elixir-format
msgid "Change Language"
msgstr ""
@ -209,7 +209,7 @@ msgid "add an ammo type first"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.html.heex:120
#: lib/cannery_web/live/ammo_group_live/index.html.heex:122
#: lib/cannery_web/live/ammo_group_live/show.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -237,13 +237,13 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:84
#: lib/cannery_web/live/ammo_type_live/index.html.heex:85
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:143
#: lib/cannery_web/live/container_live/index.html.heex:88
#: lib/cannery_web/live/container_live/index.html.heex:144
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -253,20 +253,20 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.html.heex:104
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:102
#: lib/cannery_web/live/container_live/index.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:103
#: lib/cannery_web/live/container_live/index.html.heex:159
#: lib/cannery_web/live/container_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:65
#: lib/cannery_web/live/tag_live/index.html.heex:66
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
@ -277,30 +277,30 @@ msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:161
#: lib/cannery_web/live/range_live/index.html.heex:130
#: lib/cannery_web/live/range_live/index.html.heex:131
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:74
#: lib/cannery_web/live/ammo_type_live/index.html.heex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:133
#: lib/cannery_web/live/container_live/index.html.heex:78
#: lib/cannery_web/live/container_live/index.html.heex:134
#: lib/cannery_web/live/container_live/show.html.heex:42
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:53
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:142
#: lib/cannery_web/live/ammo_group_live/index.html.heex:144
#: lib/cannery_web/live/ammo_group_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
@ -316,44 +316,45 @@ msgstr ""
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:113
#: lib/cannery_web/live/range_live/index.html.heex:114
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#: lib/cannery_web/live/ammo_group_live/index.html.heex:98
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:122
#: lib/cannery_web/live/container_live/index.html.heex:66
#: lib/cannery_web/live/container_live/index.html.heex:123
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:65
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:154
#: lib/cannery_web/live/ammo_group_live/index.html.heex:156
#, elixir-autogen, elixir-format
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/index.html.heex:171
#: lib/cannery_web/live/ammo_group_live/show.html.heex:76
#, elixir-autogen, elixir-format
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:130
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_type_live/show.html.heex:189
#, elixir-autogen, elixir-format
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -79,7 +79,7 @@ msgstr "Passwort vergessen?"
msgid "Invite someone new!"
msgstr "Laden Sie jemanden ein!"
#: lib/cannery_web/components/core_components/topbar.html.heex:122
#: lib/cannery_web/components/core_components/topbar.html.heex:124
#: lib/cannery_web/templates/user_confirmation/new.html.heex:32
#: lib/cannery_web/templates/user_registration/new.html.heex:44
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
@ -110,7 +110,7 @@ msgstr "Neuer Behälter"
msgid "New Tag"
msgstr "Neuer Tag"
#: lib/cannery_web/components/core_components/topbar.html.heex:114
#: lib/cannery_web/components/core_components/topbar.html.heex:116
#: lib/cannery_web/templates/user_confirmation/new.html.heex:29
#: lib/cannery_web/templates/user_registration/new.html.heex:3
#: lib/cannery_web/templates/user_registration/new.html.heex:37
@ -169,7 +169,7 @@ msgstr "Munition markieren"
msgid "Why not get some ready to shoot?"
msgstr "Warum nicht einige für den Schießstand auswählen?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:103
#: lib/cannery_web/live/ammo_group_live/index.html.heex:105
#: lib/cannery_web/live/ammo_group_live/show.html.heex:103
#: lib/cannery_web/live/range_live/index.html.heex:45
#, elixir-autogen, elixir-format
@ -201,7 +201,7 @@ msgstr "Zuerst einen Behälter hinzufügen"
msgid "Create"
msgstr "Erstellen"
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
#: lib/cannery_web/templates/user_settings/edit.html.heex:110
#, elixir-autogen, elixir-format
msgid "Change Language"
msgstr "Sprache wechseln"
@ -222,7 +222,7 @@ msgid "add an ammo type first"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.html.heex:120
#: lib/cannery_web/live/ammo_group_live/index.html.heex:122
#: lib/cannery_web/live/ammo_group_live/show.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -250,13 +250,13 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:84
#: lib/cannery_web/live/ammo_type_live/index.html.heex:85
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:143
#: lib/cannery_web/live/container_live/index.html.heex:88
#: lib/cannery_web/live/container_live/index.html.heex:144
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -266,20 +266,20 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.html.heex:104
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:102
#: lib/cannery_web/live/container_live/index.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:103
#: lib/cannery_web/live/container_live/index.html.heex:159
#: lib/cannery_web/live/container_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:65
#: lib/cannery_web/live/tag_live/index.html.heex:66
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
@ -290,30 +290,30 @@ msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:161
#: lib/cannery_web/live/range_live/index.html.heex:130
#: lib/cannery_web/live/range_live/index.html.heex:131
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:74
#: lib/cannery_web/live/ammo_type_live/index.html.heex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:133
#: lib/cannery_web/live/container_live/index.html.heex:78
#: lib/cannery_web/live/container_live/index.html.heex:134
#: lib/cannery_web/live/container_live/show.html.heex:42
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:53
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:142
#: lib/cannery_web/live/ammo_group_live/index.html.heex:144
#: lib/cannery_web/live/ammo_group_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
@ -329,44 +329,45 @@ msgstr ""
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:113
#: lib/cannery_web/live/range_live/index.html.heex:114
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#: lib/cannery_web/live/ammo_group_live/index.html.heex:98
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr "Munition markieren"
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:122
#: lib/cannery_web/live/container_live/index.html.heex:66
#: lib/cannery_web/live/container_live/index.html.heex:123
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:65
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:154
#: lib/cannery_web/live/ammo_group_live/index.html.heex:156
#, elixir-autogen, elixir-format, fuzzy
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/index.html.heex:171
#: lib/cannery_web/live/ammo_group_live/show.html.heex:76
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:130
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_type_live/show.html.heex:189
#, elixir-autogen, elixir-format, fuzzy
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -38,7 +38,7 @@ msgstr "Admins:"
msgid "Ammo"
msgstr "Munition"
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/components/ammo_group_table_component.ex:108
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:22
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -90,7 +90,7 @@ msgstr "Patrone"
msgid "Case material"
msgstr "Gehäusematerial"
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
@ -111,7 +111,7 @@ msgstr "Behälter"
msgid "Corrosive"
msgstr "Korrosiv"
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:28
#, elixir-autogen, elixir-format
msgid "Count"
@ -141,7 +141,7 @@ msgstr "Beschreibung:"
msgid "Easy to Use:"
msgstr "Einfache Anwendung:"
#: lib/cannery_web/live/invite_live/index.ex:33
#: lib/cannery_web/live/invite_live/index.ex:23
#, elixir-autogen, elixir-format
msgid "Edit Invite"
msgstr "Einladung bearbeiten"
@ -189,7 +189,7 @@ msgid "Invite Only"
msgstr "Nur mit Einladung"
#: lib/cannery_web/components/core_components/topbar.html.heex:74
#: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.ex:31
#: lib/cannery_web/live/invite_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Invites"
@ -256,7 +256,7 @@ msgstr "Neuer Munitionstyp"
msgid "New Container"
msgstr "Neuer Behälter"
#: lib/cannery_web/live/invite_live/index.ex:37
#: lib/cannery_web/live/invite_live/index.ex:27
#, elixir-autogen, elixir-format
msgid "New Invite"
msgstr "Neue Einladung"
@ -267,18 +267,18 @@ msgid "New Tag"
msgstr "Neuer Tag"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "No Ammo"
msgstr "Keine Munition"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167
#: lib/cannery_web/live/ammo_type_live/show.html.heex:163
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
msgstr "Keine Munition dieser Art"
#: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47
#: lib/cannery_web/live/container_live/index.html.heex:48
#, elixir-autogen, elixir-format
msgid "No containers"
msgstr "Kein Behälter"
@ -290,13 +290,12 @@ msgstr "Keine Einladung"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43
#: lib/cannery_web/live/tag_live/index.html.heex:44
#, elixir-autogen, elixir-format
msgid "No tags"
msgstr "Keine Tags"
#: lib/cannery_web/components/add_shot_group_component.html.heex:38
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:92
@ -305,7 +304,7 @@ msgstr "Keine Tags"
msgid "Notes"
msgstr "Bemerkungen"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:26
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:29
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -322,13 +321,13 @@ msgstr "Auf dem Bücherregal"
msgid "Pressure"
msgstr "Druck"
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr "Kaufpreis"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:41
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:44
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr "Kaufpreis:"
@ -440,7 +439,7 @@ msgstr "Ihre Daten bleiben bei Ihnen, Punkt"
msgid "No tags for this container"
msgstr "Keine Tags für diesen Behälter"
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/core_components/topbar.html.heex:66
#, elixir-autogen, elixir-format
msgid "Range"
@ -487,7 +486,7 @@ msgid "New Shot Records"
msgstr "Neue Schießkladde"
#: lib/cannery_web/live/range_live/index.html.heex:55
#: lib/cannery_web/live/range_live/index.html.heex:97
#: lib/cannery_web/live/range_live/index.html.heex:98
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr "Keine Schüsse dokumentiert"
@ -526,14 +525,14 @@ msgstr "Kein weiterer Behälter"
msgid "Shot log"
msgstr "Schießkladde"
#: lib/cannery_web/components/ammo_group_table_component.ex:153
#: lib/cannery_web/components/ammo_group_table_component.ex:229
#: lib/cannery_web/components/ammo_type_table_component.ex:224
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:42
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:47
#: lib/cannery_web/components/ammo_group_table_component.ex:180
#: lib/cannery_web/components/ammo_group_table_component.ex:263
#: lib/cannery_web/components/ammo_type_table_component.ex:235
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:42
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format
msgid "$%{amount}"
msgstr "$%{amount}"
@ -621,14 +620,15 @@ msgstr "Editiere %{name} Tags"
msgid "Rounds:"
msgstr "Patronen:"
#: lib/cannery_web/components/ammo_group_table_component.ex:226
#: lib/cannery_web/components/ammo_type_table_component.ex:223
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#: lib/cannery_web/components/ammo_group_table_component.ex:259
#: lib/cannery_web/components/ammo_type_table_component.ex:234
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr "Keine Preisinformationen"
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#: lib/cannery_web/components/ammo_group_table_component.ex:92
#, elixir-autogen, elixir-format
msgid "% left"
msgstr "% verbleibend"
@ -694,7 +694,7 @@ msgstr "Schüsse dokumentieren"
msgid "Copies"
msgstr "Kopien"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/ammo_type_live/show.html.heex:122
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr "Hinzugefügt am:"
@ -774,7 +774,7 @@ msgid "This ammo is not in a container"
msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
#: lib/cannery_web/components/core_components/container_card.html.heex:32
#: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96
#: lib/cannery_web/live/container_live/show.html.heex:23
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -801,15 +801,15 @@ msgstr ""
msgid "Container:"
msgstr "Behälter"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153
#: lib/cannery_web/live/ammo_group_live/index.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.html.heex:40
#: lib/cannery_web/live/ammo_type_live/show.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:98
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:187
#: lib/cannery_web/components/ammo_group_table_component.ex:218
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -832,8 +832,8 @@ msgstr ""
msgid "Rounds"
msgstr "Patronen:"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159
#: lib/cannery_web/live/container_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:104
#, elixir-autogen, elixir-format
msgid "View as table"
@ -844,7 +844,7 @@ msgstr ""
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
@ -854,7 +854,7 @@ msgstr ""
msgid "Total ever rounds"
msgstr "Summe aller Patronen"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#: lib/cannery_web/live/ammo_type_live/show.html.heex:87
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:"
msgstr "Summe abgegebener Schüsse:"
@ -864,7 +864,7 @@ msgstr "Summe abgegebener Schüsse:"
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
@ -874,7 +874,7 @@ msgstr ""
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:79
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:"
msgstr ""
@ -985,39 +985,39 @@ msgid "UPC:"
msgstr "UPC"
#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#: lib/cannery_web/live/ammo_type_live/show.html.heex:131
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:135
#: lib/cannery_web/live/ammo_type_live/show.ex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}"
msgstr "%{name} bearbeiten"
#: lib/cannery_web/components/ammo_group_table_component.ex:233
#: lib/cannery_web/components/ammo_group_table_component.ex:267
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:17
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:46
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:49
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#: lib/cannery_web/components/ammo_group_table_component.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr "Ursprüngliche Anzahl:"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:21
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:24
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count:"
msgstr "Ursprüngliche Anzahl:"
@ -1032,28 +1032,28 @@ msgstr ""
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:36
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:39
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:171
#: lib/cannery_web/components/ammo_group_table_component.ex:198
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/components/ammo_group_table_component.ex:64
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:42
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:31
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
@ -1065,32 +1065,32 @@ msgid "Edit ammo"
msgstr "Munitionstyp bearbeiten"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#: lib/cannery_web/live/ammo_type_live/index.html.heex:47
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr "Keine Munitionsarten"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33
#: lib/cannery_web/live/ammo_type_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58
#: lib/cannery_web/live/ammo_group_live/index.html.heex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33
#: lib/cannery_web/live/container_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:37
#, elixir-autogen, elixir-format, fuzzy
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:91
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
@ -1229,3 +1229,28 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:60
#: lib/cannery_web/components/ammo_type_table_component.ex:121
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/move_ammo_group_component.ex:70
#: lib/cannery_web/components/shot_group_table_component.ex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:105
#, elixir-autogen, elixir-format
msgid "Live Dashboard"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:90
#, elixir-autogen, elixir-format
msgid "Log out"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#, elixir-autogen, elixir-format
msgid "Current Count"
msgstr ""

View File

@ -23,7 +23,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:200
#: lib/cannery/containers.ex:220
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr "Behälter muss vor dem Löschen leer sein"
@ -112,11 +112,6 @@ msgstr "Unbefugt"
msgid "User confirmation link is invalid or it has expired."
msgstr "Nutzerkonto Bestätigungslink ist ungültig oder abgelaufen."
#: lib/cannery_web/live/invite_live/index.ex:18
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page"
msgstr "Sie sind nicht berechtigt, diese Seite aufzurufen"
#: lib/cannery_web/controllers/user_auth.ex:177
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page."
@ -177,7 +172,7 @@ msgstr ""
"Ungültige Nummer an Kopien. Muss zwischen 1 and %{max} liegen. War "
"%{multiplier}"
#: lib/cannery/ammo.ex:1015
#: lib/cannery/ammo.ex:1043
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr ""

View File

@ -32,7 +32,7 @@ msgid "%{name} created successfully"
msgstr "%{name} erfolgreich erstellt"
#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.ex:54
#: lib/cannery_web/live/ammo_type_live/show.ex:49
#: lib/cannery_web/live/tag_live/index.ex:65
#, elixir-autogen, elixir-format
msgid "%{name} deleted succesfully"
@ -65,15 +65,15 @@ msgstr ""
"Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht "
"zurückgenommen werden!"
#: lib/cannery_web/live/container_live/index.html.heex:99
#: lib/cannery_web/live/container_live/index.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:100
#: lib/cannery_web/live/container_live/index.html.heex:156
#: lib/cannery_web/live/container_live/show.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:63
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:167
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/show.html.heex:74
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -177,7 +177,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?"
#: lib/cannery_web/live/ammo_group_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:127
#: lib/cannery_web/live/range_live/index.html.heex:128
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?"
@ -203,7 +203,7 @@ msgstr "%{email} erfolgreich bestätigt."
msgid "Ammo moved to %{name} successfully"
msgstr "Munition erfolgreich zu %{name} verschoben"
#: lib/cannery_web/live/invite_live/index.ex:126
#: lib/cannery_web/live/invite_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Copied to clipboard"
msgstr "Der Zwischenablage hinzugefügt"
@ -257,7 +257,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] "Munitionsgruppe erfolgreich aktualisiert"
msgstr[1] "Munitionsgruppe erfolgreich aktualisiert"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:96
#: lib/cannery_web/live/ammo_type_live/index.html.heex:97
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -268,27 +268,27 @@ msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"
msgid "Register to setup Cannery"
msgstr "Registrieren Sie sich, um %{name} zu bearbeiten"
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:43
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} deleted succesfully"
msgstr "%{name} erfolgreich gelöscht"
#: lib/cannery_web/live/invite_live/index.ex:114
#: lib/cannery_web/live/invite_live/index.ex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} disabled succesfully"
msgstr "%{name} erfolgreich deaktiviert"
#: lib/cannery_web/live/invite_live/index.ex:90
#: lib/cannery_web/live/invite_live/index.ex:80
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} enabled succesfully"
msgstr "%{name} erfolgreich aktiviert"
#: lib/cannery_web/live/invite_live/index.ex:68
#: lib/cannery_web/live/invite_live/index.ex:58
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} updated succesfully"
msgstr "%{name} erfolgreich aktualisiert"
#: lib/cannery_web/live/invite_live/index.ex:135
#: lib/cannery_web/live/invite_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully"
msgstr "%{name} erfolgreich gelöscht"

View File

@ -34,7 +34,7 @@ msgstr ""
msgid "Ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/components/ammo_group_table_component.ex:108
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:22
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -86,7 +86,7 @@ msgstr ""
msgid "Case material"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
@ -107,7 +107,7 @@ msgstr ""
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:28
#, elixir-autogen, elixir-format
msgid "Count"
@ -137,7 +137,7 @@ msgstr ""
msgid "Easy to Use:"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:33
#: lib/cannery_web/live/invite_live/index.ex:23
#, elixir-autogen, elixir-format
msgid "Edit Invite"
msgstr ""
@ -185,7 +185,7 @@ msgid "Invite Only"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:74
#: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.ex:31
#: lib/cannery_web/live/invite_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Invites"
@ -252,7 +252,7 @@ msgstr ""
msgid "New Container"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:37
#: lib/cannery_web/live/invite_live/index.ex:27
#, elixir-autogen, elixir-format
msgid "New Invite"
msgstr ""
@ -263,18 +263,18 @@ msgid "New Tag"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "No Ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167
#: lib/cannery_web/live/ammo_type_live/show.html.heex:163
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47
#: lib/cannery_web/live/container_live/index.html.heex:48
#, elixir-autogen, elixir-format
msgid "No containers"
msgstr ""
@ -286,13 +286,12 @@ msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43
#: lib/cannery_web/live/tag_live/index.html.heex:44
#, elixir-autogen, elixir-format
msgid "No tags"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:38
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:92
@ -301,7 +300,7 @@ msgstr ""
msgid "Notes"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:26
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:29
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -318,13 +317,13 @@ msgstr ""
msgid "Pressure"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:41
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:44
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr ""
@ -434,7 +433,7 @@ msgstr ""
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/core_components/topbar.html.heex:66
#, elixir-autogen, elixir-format
msgid "Range"
@ -481,7 +480,7 @@ msgid "New Shot Records"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:55
#: lib/cannery_web/live/range_live/index.html.heex:97
#: lib/cannery_web/live/range_live/index.html.heex:98
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr ""
@ -520,14 +519,14 @@ msgstr ""
msgid "Shot log"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:153
#: lib/cannery_web/components/ammo_group_table_component.ex:229
#: lib/cannery_web/components/ammo_type_table_component.ex:224
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:42
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:47
#: lib/cannery_web/components/ammo_group_table_component.ex:180
#: lib/cannery_web/components/ammo_group_table_component.ex:263
#: lib/cannery_web/components/ammo_type_table_component.ex:235
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:42
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format
msgid "$%{amount}"
msgstr ""
@ -615,14 +614,15 @@ msgstr ""
msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:226
#: lib/cannery_web/components/ammo_type_table_component.ex:223
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#: lib/cannery_web/components/ammo_group_table_component.ex:259
#: lib/cannery_web/components/ammo_type_table_component.ex:234
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#: lib/cannery_web/components/ammo_group_table_component.ex:92
#, elixir-autogen, elixir-format
msgid "% left"
msgstr ""
@ -688,7 +688,7 @@ msgstr ""
msgid "Copies"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/ammo_type_live/show.html.heex:122
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr ""
@ -768,7 +768,7 @@ msgid "This ammo is not in a container"
msgstr ""
#: lib/cannery_web/components/core_components/container_card.html.heex:32
#: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96
#: lib/cannery_web/live/container_live/show.html.heex:23
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -795,15 +795,15 @@ msgstr ""
msgid "Container:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153
#: lib/cannery_web/live/ammo_group_live/index.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.html.heex:40
#: lib/cannery_web/live/ammo_type_live/show.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:98
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:187
#: lib/cannery_web/components/ammo_group_table_component.ex:218
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -826,8 +826,8 @@ msgstr ""
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159
#: lib/cannery_web/live/container_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:104
#, elixir-autogen, elixir-format
msgid "View as table"
@ -838,7 +838,7 @@ msgstr ""
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
@ -848,7 +848,7 @@ msgstr ""
msgid "Total ever rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#: lib/cannery_web/live/ammo_type_live/show.html.heex:87
#, elixir-autogen, elixir-format
msgid "Total ever rounds:"
msgstr ""
@ -858,7 +858,7 @@ msgstr ""
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
@ -868,7 +868,7 @@ msgstr ""
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:79
#, elixir-autogen, elixir-format
msgid "Used rounds:"
msgstr ""
@ -979,39 +979,39 @@ msgid "UPC:"
msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#: lib/cannery_web/live/ammo_type_live/show.html.heex:131
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:135
#: lib/cannery_web/live/ammo_type_live/show.ex:104
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:233
#: lib/cannery_web/components/ammo_group_table_component.ex:267
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:17
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:46
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:49
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#: lib/cannery_web/components/ammo_group_table_component.ex:91
#, elixir-autogen, elixir-format
msgid "Original Count"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:21
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:24
#, elixir-autogen, elixir-format
msgid "Original Count:"
msgstr ""
@ -1026,28 +1026,28 @@ msgstr ""
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:36
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:39
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:171
#: lib/cannery_web/components/ammo_group_table_component.ex:198
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/components/ammo_group_table_component.ex:64
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:42
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:31
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
@ -1059,32 +1059,32 @@ msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#: lib/cannery_web/live/ammo_type_live/index.html.heex:47
#, elixir-autogen, elixir-format
msgid "No Ammo types"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33
#: lib/cannery_web/live/ammo_type_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58
#: lib/cannery_web/live/ammo_group_live/index.html.heex:59
#, elixir-autogen, elixir-format
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33
#: lib/cannery_web/live/container_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:37
#, elixir-autogen, elixir-format
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:91
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
@ -1212,3 +1212,28 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:60
#: lib/cannery_web/components/ammo_type_table_component.ex:121
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/move_ammo_group_component.ex:70
#: lib/cannery_web/components/shot_group_table_component.ex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:105
#, elixir-autogen, elixir-format
msgid "Live Dashboard"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:90
#, elixir-autogen, elixir-format
msgid "Log out"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#, elixir-autogen, elixir-format
msgid "Current Count"
msgstr ""

View File

@ -66,7 +66,7 @@ msgstr ""
msgid "Invite someone new!"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:122
#: lib/cannery_web/components/core_components/topbar.html.heex:124
#: lib/cannery_web/templates/user_confirmation/new.html.heex:32
#: lib/cannery_web/templates/user_registration/new.html.heex:44
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
@ -97,7 +97,7 @@ msgstr ""
msgid "New Tag"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:114
#: lib/cannery_web/components/core_components/topbar.html.heex:116
#: lib/cannery_web/templates/user_confirmation/new.html.heex:29
#: lib/cannery_web/templates/user_registration/new.html.heex:3
#: lib/cannery_web/templates/user_registration/new.html.heex:37
@ -156,7 +156,7 @@ msgstr ""
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:103
#: lib/cannery_web/live/ammo_group_live/index.html.heex:105
#: lib/cannery_web/live/ammo_group_live/show.html.heex:103
#: lib/cannery_web/live/range_live/index.html.heex:45
#, elixir-autogen, elixir-format
@ -188,7 +188,7 @@ msgstr ""
msgid "Create"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
#: lib/cannery_web/templates/user_settings/edit.html.heex:110
#, elixir-autogen, elixir-format
msgid "Change Language"
msgstr ""
@ -209,7 +209,7 @@ msgid "add an ammo type first"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.html.heex:120
#: lib/cannery_web/live/ammo_group_live/index.html.heex:122
#: lib/cannery_web/live/ammo_group_live/show.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -237,13 +237,13 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:84
#: lib/cannery_web/live/ammo_type_live/index.html.heex:85
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:143
#: lib/cannery_web/live/container_live/index.html.heex:88
#: lib/cannery_web/live/container_live/index.html.heex:144
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -253,20 +253,20 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.html.heex:104
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:102
#: lib/cannery_web/live/container_live/index.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:103
#: lib/cannery_web/live/container_live/index.html.heex:159
#: lib/cannery_web/live/container_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:65
#: lib/cannery_web/live/tag_live/index.html.heex:66
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
@ -277,30 +277,30 @@ msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:161
#: lib/cannery_web/live/range_live/index.html.heex:130
#: lib/cannery_web/live/range_live/index.html.heex:131
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:74
#: lib/cannery_web/live/ammo_type_live/index.html.heex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:133
#: lib/cannery_web/live/container_live/index.html.heex:78
#: lib/cannery_web/live/container_live/index.html.heex:134
#: lib/cannery_web/live/container_live/show.html.heex:42
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:53
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:142
#: lib/cannery_web/live/ammo_group_live/index.html.heex:144
#: lib/cannery_web/live/ammo_group_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
@ -316,44 +316,45 @@ msgstr ""
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:113
#: lib/cannery_web/live/range_live/index.html.heex:114
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#: lib/cannery_web/live/ammo_group_live/index.html.heex:98
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:122
#: lib/cannery_web/live/container_live/index.html.heex:66
#: lib/cannery_web/live/container_live/index.html.heex:123
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:65
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:154
#: lib/cannery_web/live/ammo_group_live/index.html.heex:156
#, elixir-autogen, elixir-format, fuzzy
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/index.html.heex:171
#: lib/cannery_web/live/ammo_group_live/show.html.heex:76
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:130
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_type_live/show.html.heex:189
#, elixir-autogen, elixir-format, fuzzy
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -34,7 +34,7 @@ msgstr ""
msgid "Ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/components/ammo_group_table_component.ex:108
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:22
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -86,7 +86,7 @@ msgstr ""
msgid "Case material"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
@ -107,7 +107,7 @@ msgstr ""
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:28
#, elixir-autogen, elixir-format
msgid "Count"
@ -137,7 +137,7 @@ msgstr ""
msgid "Easy to Use:"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:33
#: lib/cannery_web/live/invite_live/index.ex:23
#, elixir-autogen, elixir-format
msgid "Edit Invite"
msgstr ""
@ -185,7 +185,7 @@ msgid "Invite Only"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:74
#: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.ex:31
#: lib/cannery_web/live/invite_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Invites"
@ -252,7 +252,7 @@ msgstr ""
msgid "New Container"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:37
#: lib/cannery_web/live/invite_live/index.ex:27
#, elixir-autogen, elixir-format
msgid "New Invite"
msgstr ""
@ -263,18 +263,18 @@ msgid "New Tag"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "No Ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167
#: lib/cannery_web/live/ammo_type_live/show.html.heex:163
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47
#: lib/cannery_web/live/container_live/index.html.heex:48
#, elixir-autogen, elixir-format
msgid "No containers"
msgstr ""
@ -286,13 +286,12 @@ msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43
#: lib/cannery_web/live/tag_live/index.html.heex:44
#, elixir-autogen, elixir-format
msgid "No tags"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:38
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:92
@ -301,7 +300,7 @@ msgstr ""
msgid "Notes"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:26
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:29
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -318,13 +317,13 @@ msgstr ""
msgid "Pressure"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:41
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:44
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr ""
@ -434,7 +433,7 @@ msgstr ""
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/core_components/topbar.html.heex:66
#, elixir-autogen, elixir-format
msgid "Range"
@ -481,7 +480,7 @@ msgid "New Shot Records"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:55
#: lib/cannery_web/live/range_live/index.html.heex:97
#: lib/cannery_web/live/range_live/index.html.heex:98
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr ""
@ -520,14 +519,14 @@ msgstr ""
msgid "Shot log"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:153
#: lib/cannery_web/components/ammo_group_table_component.ex:229
#: lib/cannery_web/components/ammo_type_table_component.ex:224
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:42
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:47
#: lib/cannery_web/components/ammo_group_table_component.ex:180
#: lib/cannery_web/components/ammo_group_table_component.ex:263
#: lib/cannery_web/components/ammo_type_table_component.ex:235
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:42
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format
msgid "$%{amount}"
msgstr ""
@ -615,14 +614,15 @@ msgstr ""
msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:226
#: lib/cannery_web/components/ammo_type_table_component.ex:223
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#: lib/cannery_web/components/ammo_group_table_component.ex:259
#: lib/cannery_web/components/ammo_type_table_component.ex:234
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#: lib/cannery_web/components/ammo_group_table_component.ex:92
#, elixir-autogen, elixir-format
msgid "% left"
msgstr ""
@ -688,7 +688,7 @@ msgstr ""
msgid "Copies"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/ammo_type_live/show.html.heex:122
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr ""
@ -768,7 +768,7 @@ msgid "This ammo is not in a container"
msgstr ""
#: lib/cannery_web/components/core_components/container_card.html.heex:32
#: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96
#: lib/cannery_web/live/container_live/show.html.heex:23
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -795,15 +795,15 @@ msgstr ""
msgid "Container:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153
#: lib/cannery_web/live/ammo_group_live/index.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.html.heex:40
#: lib/cannery_web/live/ammo_type_live/show.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:98
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:187
#: lib/cannery_web/components/ammo_group_table_component.ex:218
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -826,8 +826,8 @@ msgstr ""
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159
#: lib/cannery_web/live/container_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:104
#, elixir-autogen, elixir-format
msgid "View as table"
@ -838,7 +838,7 @@ msgstr ""
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
@ -848,7 +848,7 @@ msgstr ""
msgid "Total ever rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#: lib/cannery_web/live/ammo_type_live/show.html.heex:87
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:"
msgstr ""
@ -858,7 +858,7 @@ msgstr ""
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
@ -868,7 +868,7 @@ msgstr ""
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:79
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:"
msgstr ""
@ -979,39 +979,39 @@ msgid "UPC:"
msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#: lib/cannery_web/live/ammo_type_live/show.html.heex:131
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:135
#: lib/cannery_web/live/ammo_type_live/show.ex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:233
#: lib/cannery_web/components/ammo_group_table_component.ex:267
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:17
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:46
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:49
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#: lib/cannery_web/components/ammo_group_table_component.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:21
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:24
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count:"
msgstr ""
@ -1026,28 +1026,28 @@ msgstr ""
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:36
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:39
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:171
#: lib/cannery_web/components/ammo_group_table_component.ex:198
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/components/ammo_group_table_component.ex:64
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:42
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:31
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
@ -1059,32 +1059,32 @@ msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#: lib/cannery_web/live/ammo_type_live/index.html.heex:47
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33
#: lib/cannery_web/live/ammo_type_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58
#: lib/cannery_web/live/ammo_group_live/index.html.heex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33
#: lib/cannery_web/live/container_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:37
#, elixir-autogen, elixir-format, fuzzy
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:91
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
@ -1212,3 +1212,28 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:60
#: lib/cannery_web/components/ammo_type_table_component.ex:121
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/move_ammo_group_component.ex:70
#: lib/cannery_web/components/shot_group_table_component.ex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:105
#, elixir-autogen, elixir-format
msgid "Live Dashboard"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:90
#, elixir-autogen, elixir-format
msgid "Log out"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#, elixir-autogen, elixir-format
msgid "Current Count"
msgstr ""

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Language: en\n"
#: lib/cannery/containers.ex:200
#: lib/cannery/containers.ex:220
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr ""
@ -98,11 +98,6 @@ msgstr ""
msgid "User confirmation link is invalid or it has expired."
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:18
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page"
msgstr ""
#: lib/cannery_web/controllers/user_auth.ex:177
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page."
@ -160,7 +155,7 @@ msgstr ""
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr ""
#: lib/cannery/ammo.ex:1015
#: lib/cannery/ammo.ex:1043
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr ""

View File

@ -19,7 +19,7 @@ msgid "%{name} created successfully"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.ex:54
#: lib/cannery_web/live/ammo_type_live/show.ex:49
#: lib/cannery_web/live/tag_live/index.ex:65
#, elixir-autogen, elixir-format
msgid "%{name} deleted succesfully"
@ -50,15 +50,15 @@ msgstr ""
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:99
#: lib/cannery_web/live/container_live/index.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:100
#: lib/cannery_web/live/container_live/index.html.heex:156
#: lib/cannery_web/live/container_live/show.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:63
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:167
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/show.html.heex:74
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -156,7 +156,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:127
#: lib/cannery_web/live/range_live/index.html.heex:128
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""
@ -182,7 +182,7 @@ msgstr ""
msgid "Ammo moved to %{name} successfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:126
#: lib/cannery_web/live/invite_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Copied to clipboard"
msgstr ""
@ -236,7 +236,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:96
#: lib/cannery_web/live/ammo_type_live/index.html.heex:97
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -247,27 +247,27 @@ msgstr ""
msgid "Register to setup Cannery"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:43
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} deleted succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:114
#: lib/cannery_web/live/invite_live/index.ex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} disabled succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:90
#: lib/cannery_web/live/invite_live/index.ex:80
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} enabled succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:68
#: lib/cannery_web/live/invite_live/index.ex:58
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} updated succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:135
#: lib/cannery_web/live/invite_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully"
msgstr ""

View File

@ -10,7 +10,7 @@
msgid ""
msgstr ""
#: lib/cannery/containers.ex:200
#: lib/cannery/containers.ex:220
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr ""
@ -98,11 +98,6 @@ msgstr ""
msgid "User confirmation link is invalid or it has expired."
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:18
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page"
msgstr ""
#: lib/cannery_web/controllers/user_auth.ex:177
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page."
@ -159,7 +154,7 @@ msgstr ""
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr ""
#: lib/cannery/ammo.ex:1015
#: lib/cannery/ammo.ex:1043
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr ""

View File

@ -79,7 +79,7 @@ msgstr "¿Has olvidado tu contraseña?"
msgid "Invite someone new!"
msgstr "¡Invita a alguien nuevo!"
#: lib/cannery_web/components/core_components/topbar.html.heex:122
#: lib/cannery_web/components/core_components/topbar.html.heex:124
#: lib/cannery_web/templates/user_confirmation/new.html.heex:32
#: lib/cannery_web/templates/user_registration/new.html.heex:44
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
@ -110,7 +110,7 @@ msgstr "Nuevo Contenedor"
msgid "New Tag"
msgstr "Nueva Etiqueta"
#: lib/cannery_web/components/core_components/topbar.html.heex:114
#: lib/cannery_web/components/core_components/topbar.html.heex:116
#: lib/cannery_web/templates/user_confirmation/new.html.heex:29
#: lib/cannery_web/templates/user_registration/new.html.heex:3
#: lib/cannery_web/templates/user_registration/new.html.heex:37
@ -169,7 +169,7 @@ msgstr "Preparar munición"
msgid "Why not get some ready to shoot?"
msgstr "¿Por qué no preparar parte para disparar?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:103
#: lib/cannery_web/live/ammo_group_live/index.html.heex:105
#: lib/cannery_web/live/ammo_group_live/show.html.heex:103
#: lib/cannery_web/live/range_live/index.html.heex:45
#, elixir-autogen, elixir-format
@ -201,7 +201,7 @@ msgstr "añade primero un contenedor"
msgid "Create"
msgstr "Crear"
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
#: lib/cannery_web/templates/user_settings/edit.html.heex:110
#, elixir-autogen, elixir-format
msgid "Change Language"
msgstr "Cambiar Lenguaje"
@ -222,7 +222,7 @@ msgid "add an ammo type first"
msgstr "añade primero un tipo de munición"
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.html.heex:120
#: lib/cannery_web/live/ammo_group_live/index.html.heex:122
#: lib/cannery_web/live/ammo_group_live/show.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -250,13 +250,13 @@ msgstr "Desmontar del campo de tiro"
msgid "Export Data as JSON"
msgstr "Exportar datos como JSON"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:84
#: lib/cannery_web/live/ammo_type_live/index.html.heex:85
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:143
#: lib/cannery_web/live/container_live/index.html.heex:88
#: lib/cannery_web/live/container_live/index.html.heex:144
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -266,20 +266,20 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.html.heex:104
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:102
#: lib/cannery_web/live/container_live/index.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:103
#: lib/cannery_web/live/container_live/index.html.heex:159
#: lib/cannery_web/live/container_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:65
#: lib/cannery_web/live/tag_live/index.html.heex:66
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
@ -290,30 +290,30 @@ msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:161
#: lib/cannery_web/live/range_live/index.html.heex:130
#: lib/cannery_web/live/range_live/index.html.heex:131
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:74
#: lib/cannery_web/live/ammo_type_live/index.html.heex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:133
#: lib/cannery_web/live/container_live/index.html.heex:78
#: lib/cannery_web/live/container_live/index.html.heex:134
#: lib/cannery_web/live/container_live/show.html.heex:42
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:53
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:142
#: lib/cannery_web/live/ammo_group_live/index.html.heex:144
#: lib/cannery_web/live/ammo_group_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
@ -329,44 +329,45 @@ msgstr ""
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:113
#: lib/cannery_web/live/range_live/index.html.heex:114
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#: lib/cannery_web/live/ammo_group_live/index.html.heex:98
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr "Preparar munición"
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:122
#: lib/cannery_web/live/container_live/index.html.heex:66
#: lib/cannery_web/live/container_live/index.html.heex:123
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:65
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:154
#: lib/cannery_web/live/ammo_group_live/index.html.heex:156
#, elixir-autogen, elixir-format, fuzzy
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/index.html.heex:171
#: lib/cannery_web/live/ammo_group_live/show.html.heex:76
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:130
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_type_live/show.html.heex:189
#, elixir-autogen, elixir-format, fuzzy
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -38,7 +38,7 @@ msgstr "Aministradores:"
msgid "Ammo"
msgstr "Munición"
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/components/ammo_group_table_component.ex:108
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:22
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -90,7 +90,7 @@ msgstr "Cartucho"
msgid "Case material"
msgstr "Material del casquillo"
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
@ -111,7 +111,7 @@ msgstr "Contenedores"
msgid "Corrosive"
msgstr "Corrosiva"
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:28
#, elixir-autogen, elixir-format
msgid "Count"
@ -141,7 +141,7 @@ msgstr "Descripción:"
msgid "Easy to Use:"
msgstr "Facil de Usar:"
#: lib/cannery_web/live/invite_live/index.ex:33
#: lib/cannery_web/live/invite_live/index.ex:23
#, elixir-autogen, elixir-format
msgid "Edit Invite"
msgstr "Editar Invitación"
@ -189,7 +189,7 @@ msgid "Invite Only"
msgstr "Solo Invitación"
#: lib/cannery_web/components/core_components/topbar.html.heex:74
#: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.ex:31
#: lib/cannery_web/live/invite_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Invites"
@ -256,7 +256,7 @@ msgstr "Nuevo tipo de Munición"
msgid "New Container"
msgstr "Nuevo Contenedor"
#: lib/cannery_web/live/invite_live/index.ex:37
#: lib/cannery_web/live/invite_live/index.ex:27
#, elixir-autogen, elixir-format
msgid "New Invite"
msgstr "Nueva Invitación"
@ -267,18 +267,18 @@ msgid "New Tag"
msgstr "Nueva Etiqueta"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "No Ammo"
msgstr "Sin Munición"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167
#: lib/cannery_web/live/ammo_type_live/show.html.heex:163
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
msgstr "Sin munición para este tipo"
#: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47
#: lib/cannery_web/live/container_live/index.html.heex:48
#, elixir-autogen, elixir-format
msgid "No containers"
msgstr "Sin contenedores"
@ -290,13 +290,12 @@ msgstr "Sin invitaciones"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43
#: lib/cannery_web/live/tag_live/index.html.heex:44
#, elixir-autogen, elixir-format
msgid "No tags"
msgstr "Sin etiquetas"
#: lib/cannery_web/components/add_shot_group_component.html.heex:38
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:92
@ -305,7 +304,7 @@ msgstr "Sin etiquetas"
msgid "Notes"
msgstr "Notas"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:26
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:29
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -322,13 +321,13 @@ msgstr "En la estantería"
msgid "Pressure"
msgstr "Presión"
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr "Precio pagado"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:41
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:44
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr "Precio pagado:"
@ -441,7 +440,7 @@ msgstr "Tus datos se quedan contigo, sin excepciones"
msgid "No tags for this container"
msgstr "Contenedor sin etiquetas"
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/core_components/topbar.html.heex:66
#, elixir-autogen, elixir-format
msgid "Range"
@ -488,7 +487,7 @@ msgid "New Shot Records"
msgstr "Nuevos Tiros Récord"
#: lib/cannery_web/live/range_live/index.html.heex:55
#: lib/cannery_web/live/range_live/index.html.heex:97
#: lib/cannery_web/live/range_live/index.html.heex:98
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr "No se han grabado tiros"
@ -527,14 +526,14 @@ msgstr "No hay otros contenedores"
msgid "Shot log"
msgstr "Registro de tiros"
#: lib/cannery_web/components/ammo_group_table_component.ex:153
#: lib/cannery_web/components/ammo_group_table_component.ex:229
#: lib/cannery_web/components/ammo_type_table_component.ex:224
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:42
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:47
#: lib/cannery_web/components/ammo_group_table_component.ex:180
#: lib/cannery_web/components/ammo_group_table_component.ex:263
#: lib/cannery_web/components/ammo_type_table_component.ex:235
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:42
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format
msgid "$%{amount}"
msgstr "$%{amount}"
@ -622,14 +621,15 @@ msgstr "Editar etiquetas de %{name}"
msgid "Rounds:"
msgstr "Balas:"
#: lib/cannery_web/components/ammo_group_table_component.ex:226
#: lib/cannery_web/components/ammo_type_table_component.ex:223
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#: lib/cannery_web/components/ammo_group_table_component.ex:259
#: lib/cannery_web/components/ammo_type_table_component.ex:234
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr "No hay información de coste"
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#: lib/cannery_web/components/ammo_group_table_component.ex:92
#, elixir-autogen, elixir-format
msgid "% left"
msgstr "% restantes"
@ -695,7 +695,7 @@ msgstr "Tiros Récord"
msgid "Copies"
msgstr "Copias"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/ammo_type_live/show.html.heex:122
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr "Añadido en:"
@ -775,7 +775,7 @@ msgid "This ammo is not in a container"
msgstr "Esta munición no está en un contenedor"
#: lib/cannery_web/components/core_components/container_card.html.heex:32
#: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96
#: lib/cannery_web/live/container_live/show.html.heex:23
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -803,15 +803,15 @@ msgstr ""
msgid "Container:"
msgstr "Contenedor:"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153
#: lib/cannery_web/live/ammo_group_live/index.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.html.heex:40
#: lib/cannery_web/live/ammo_type_live/show.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:98
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr "Mostrar usadas"
#: lib/cannery_web/components/ammo_group_table_component.ex:187
#: lib/cannery_web/components/ammo_group_table_component.ex:218
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -834,8 +834,8 @@ msgstr "Paquetes"
msgid "Rounds"
msgstr "Balas"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159
#: lib/cannery_web/live/container_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:104
#, elixir-autogen, elixir-format
msgid "View as table"
@ -846,7 +846,7 @@ msgstr "Ver como tabla"
msgid "Total ever packs"
msgstr "Paquetes totales"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr "Paquetes totales:"
@ -856,7 +856,7 @@ msgstr "Paquetes totales:"
msgid "Total ever rounds"
msgstr "Balas totales"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#: lib/cannery_web/live/ammo_type_live/show.html.heex:87
#, elixir-autogen, elixir-format
msgid "Total ever rounds:"
msgstr "Balas totales:"
@ -866,7 +866,7 @@ msgstr "Balas totales:"
msgid "Used packs"
msgstr "Paquetes usados"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr "Paquetes usados:"
@ -876,7 +876,7 @@ msgstr "Paquetes usados:"
msgid "Used rounds"
msgstr "Balas usadas"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:79
#, elixir-autogen, elixir-format
msgid "Used rounds:"
msgstr "Balas usadas:"
@ -987,39 +987,39 @@ msgid "UPC:"
msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#: lib/cannery_web/live/ammo_type_live/show.html.heex:131
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:135
#: lib/cannery_web/live/ammo_type_live/show.ex:104
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr "Editar %{ammo_type_name}"
#: lib/cannery_web/components/ammo_group_table_component.ex:233
#: lib/cannery_web/components/ammo_group_table_component.ex:267
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:17
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr "Vacio"
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:46
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:49
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#: lib/cannery_web/components/ammo_group_table_component.ex:91
#, elixir-autogen, elixir-format
msgid "Original Count"
msgstr "Cantidad Original"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:21
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:24
#, elixir-autogen, elixir-format
msgid "Original Count:"
msgstr "Cantidad Original:"
@ -1034,28 +1034,28 @@ msgstr "Menu principal"
msgid "Total packs:"
msgstr "Paquetes totales:"
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr "Usada por última vez en"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:36
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:39
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr "Usada por última vez en:"
#: lib/cannery_web/components/ammo_group_table_component.ex:171
#: lib/cannery_web/components/ammo_group_table_component.ex:198
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr "Nunca usada"
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/components/ammo_group_table_component.ex:64
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:42
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr "Comprada en"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:31
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
@ -1067,32 +1067,32 @@ msgid "Edit ammo"
msgstr "Editar munición"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#: lib/cannery_web/live/ammo_type_live/index.html.heex:47
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr "Sin tipo de Munición"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33
#: lib/cannery_web/live/ammo_type_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58
#: lib/cannery_web/live/ammo_group_live/index.html.heex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33
#: lib/cannery_web/live/container_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:37
#, elixir-autogen, elixir-format, fuzzy
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:91
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
@ -1231,3 +1231,28 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:60
#: lib/cannery_web/components/ammo_type_table_component.ex:121
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/move_ammo_group_component.ex:70
#: lib/cannery_web/components/shot_group_table_component.ex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:105
#, elixir-autogen, elixir-format
msgid "Live Dashboard"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:90
#, elixir-autogen, elixir-format
msgid "Log out"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#, elixir-autogen, elixir-format
msgid "Current Count"
msgstr ""

View File

@ -23,7 +23,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:200
#: lib/cannery/containers.ex:220
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr "El contenedor debe estar vacío antes de ser borrado"
@ -114,11 +114,6 @@ msgstr "No autorizado"
msgid "User confirmation link is invalid or it has expired."
msgstr "El enlace de confirmación de usuario no es válido o ha caducado."
#: lib/cannery_web/live/invite_live/index.ex:18
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page"
msgstr "No está autorizado a ver esta página"
#: lib/cannery_web/controllers/user_auth.ex:177
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page."
@ -175,7 +170,7 @@ msgstr "No se ha podido procesar el número de copias"
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "Número inválido de copias, debe ser entre 1 y %{max}. Fue %{multiplier"
#: lib/cannery/ammo.ex:1015
#: lib/cannery/ammo.ex:1043
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr "Multiplicador inválido"

View File

@ -32,7 +32,7 @@ msgid "%{name} created successfully"
msgstr "%{name} creado exitosamente"
#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.ex:54
#: lib/cannery_web/live/ammo_type_live/show.ex:49
#: lib/cannery_web/live/tag_live/index.ex:65
#, elixir-autogen, elixir-format
msgid "%{name} deleted succesfully"
@ -65,15 +65,15 @@ msgstr ""
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!"
#: lib/cannery_web/live/container_live/index.html.heex:99
#: lib/cannery_web/live/container_live/index.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:100
#: lib/cannery_web/live/container_live/index.html.heex:156
#: lib/cannery_web/live/container_live/show.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:63
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr "Está seguro que desea eliminar %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:167
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/show.html.heex:74
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -176,7 +176,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr "Está seguro que desea desmontar esta munición?"
#: lib/cannery_web/live/ammo_group_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:127
#: lib/cannery_web/live/range_live/index.html.heex:128
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "¿Está segure que quiere borrar este récord de disparos?"
@ -202,7 +202,7 @@ msgstr "%{email} confirmado exitosamente."
msgid "Ammo moved to %{name} successfully"
msgstr "Munición movida a %{name} exitosamente"
#: lib/cannery_web/live/invite_live/index.ex:126
#: lib/cannery_web/live/invite_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Copied to clipboard"
msgstr "Copiado al portapapeles"
@ -256,7 +256,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] "Munición añadida exitosamente"
msgstr[1] "Municiones añadidas exitosamente"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:96
#: lib/cannery_web/live/ammo_type_live/index.html.heex:97
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -269,27 +269,27 @@ msgstr ""
msgid "Register to setup Cannery"
msgstr "Regístrese para configurar %{name}"
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:43
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} deleted succesfully"
msgstr "%{name} borrado exitosamente"
#: lib/cannery_web/live/invite_live/index.ex:114
#: lib/cannery_web/live/invite_live/index.ex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} disabled succesfully"
msgstr "%{name} desactivado exitosamente"
#: lib/cannery_web/live/invite_live/index.ex:90
#: lib/cannery_web/live/invite_live/index.ex:80
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} enabled succesfully"
msgstr "%{name} activado exitosamente"
#: lib/cannery_web/live/invite_live/index.ex:68
#: lib/cannery_web/live/invite_live/index.ex:58
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} updated succesfully"
msgstr "%{name} actualizado exitosamente"
#: lib/cannery_web/live/invite_live/index.ex:135
#: lib/cannery_web/live/invite_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully"
msgstr "%{name} borrado exitosamente"

View File

@ -79,7 +79,7 @@ msgstr "Mot de passe oublié?"
msgid "Invite someone new!"
msgstr "Invitez une nouvelle personne!"
#: lib/cannery_web/components/core_components/topbar.html.heex:122
#: lib/cannery_web/components/core_components/topbar.html.heex:124
#: lib/cannery_web/templates/user_confirmation/new.html.heex:32
#: lib/cannery_web/templates/user_registration/new.html.heex:44
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
@ -110,7 +110,7 @@ msgstr "Nouveau conteneur"
msgid "New Tag"
msgstr "Nouveau tag"
#: lib/cannery_web/components/core_components/topbar.html.heex:114
#: lib/cannery_web/components/core_components/topbar.html.heex:116
#: lib/cannery_web/templates/user_confirmation/new.html.heex:29
#: lib/cannery_web/templates/user_registration/new.html.heex:3
#: lib/cannery_web/templates/user_registration/new.html.heex:37
@ -169,7 +169,7 @@ msgstr "Munition préparée"
msgid "Why not get some ready to shoot?"
msgstr "Pourquoi pas en préparer pour tirer?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:103
#: lib/cannery_web/live/ammo_group_live/index.html.heex:105
#: lib/cannery_web/live/ammo_group_live/show.html.heex:103
#: lib/cannery_web/live/range_live/index.html.heex:45
#, elixir-autogen, elixir-format
@ -201,7 +201,7 @@ msgstr "ajouter un conteneur en premier"
msgid "Create"
msgstr "Créer"
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
#: lib/cannery_web/templates/user_settings/edit.html.heex:110
#, elixir-autogen, elixir-format
msgid "Change Language"
msgstr "Changer la langue"
@ -222,7 +222,7 @@ msgid "add an ammo type first"
msgstr "Ajoutez d'abord un type de munitions"
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.html.heex:120
#: lib/cannery_web/live/ammo_group_live/index.html.heex:122
#: lib/cannery_web/live/ammo_group_live/show.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -250,13 +250,13 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:84
#: lib/cannery_web/live/ammo_type_live/index.html.heex:85
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:143
#: lib/cannery_web/live/container_live/index.html.heex:88
#: lib/cannery_web/live/container_live/index.html.heex:144
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -266,20 +266,20 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.html.heex:104
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:102
#: lib/cannery_web/live/container_live/index.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:103
#: lib/cannery_web/live/container_live/index.html.heex:159
#: lib/cannery_web/live/container_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:65
#: lib/cannery_web/live/tag_live/index.html.heex:66
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
@ -290,30 +290,30 @@ msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:161
#: lib/cannery_web/live/range_live/index.html.heex:130
#: lib/cannery_web/live/range_live/index.html.heex:131
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:74
#: lib/cannery_web/live/ammo_type_live/index.html.heex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:133
#: lib/cannery_web/live/container_live/index.html.heex:78
#: lib/cannery_web/live/container_live/index.html.heex:134
#: lib/cannery_web/live/container_live/show.html.heex:42
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:53
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:142
#: lib/cannery_web/live/ammo_group_live/index.html.heex:144
#: lib/cannery_web/live/ammo_group_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
@ -329,44 +329,45 @@ msgstr ""
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:113
#: lib/cannery_web/live/range_live/index.html.heex:114
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#: lib/cannery_web/live/ammo_group_live/index.html.heex:98
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr "Munition préparée"
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:122
#: lib/cannery_web/live/container_live/index.html.heex:66
#: lib/cannery_web/live/container_live/index.html.heex:123
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:65
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:154
#: lib/cannery_web/live/ammo_group_live/index.html.heex:156
#, elixir-autogen, elixir-format, fuzzy
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/index.html.heex:171
#: lib/cannery_web/live/ammo_group_live/show.html.heex:76
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:130
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_type_live/show.html.heex:189
#, elixir-autogen, elixir-format, fuzzy
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -38,7 +38,7 @@ msgstr "Administrateur·ices:"
msgid "Ammo"
msgstr "Munition"
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/components/ammo_group_table_component.ex:108
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:22
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -90,7 +90,7 @@ msgstr "Cartouche"
msgid "Case material"
msgstr "Matériau de la caisse"
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
@ -111,7 +111,7 @@ msgstr "Conteneurs"
msgid "Corrosive"
msgstr "Corrosive"
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:28
#, elixir-autogen, elixir-format
msgid "Count"
@ -141,7 +141,7 @@ msgstr "Description:"
msgid "Easy to Use:"
msgstr "Simple à utiliser:"
#: lib/cannery_web/live/invite_live/index.ex:33
#: lib/cannery_web/live/invite_live/index.ex:23
#, elixir-autogen, elixir-format
msgid "Edit Invite"
msgstr "Modifier linvitation"
@ -189,7 +189,7 @@ msgid "Invite Only"
msgstr "Uniquement sur invitation"
#: lib/cannery_web/components/core_components/topbar.html.heex:74
#: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.ex:31
#: lib/cannery_web/live/invite_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Invites"
@ -256,7 +256,7 @@ msgstr "Nouveau type de munition"
msgid "New Container"
msgstr "Nouveau conteneur"
#: lib/cannery_web/live/invite_live/index.ex:37
#: lib/cannery_web/live/invite_live/index.ex:27
#, elixir-autogen, elixir-format
msgid "New Invite"
msgstr "Nouvelle invitation"
@ -267,18 +267,18 @@ msgid "New Tag"
msgstr "Nouveau tag"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "No Ammo"
msgstr "Aucune munition"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167
#: lib/cannery_web/live/ammo_type_live/show.html.heex:163
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
msgstr "Aucune munition pour ce type"
#: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47
#: lib/cannery_web/live/container_live/index.html.heex:48
#, elixir-autogen, elixir-format
msgid "No containers"
msgstr "Aucun conteneur"
@ -290,13 +290,12 @@ msgstr "Aucune invitation"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43
#: lib/cannery_web/live/tag_live/index.html.heex:44
#, elixir-autogen, elixir-format
msgid "No tags"
msgstr "Aucun tag"
#: lib/cannery_web/components/add_shot_group_component.html.heex:38
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:92
@ -305,7 +304,7 @@ msgstr "Aucun tag"
msgid "Notes"
msgstr "Notes"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:26
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:29
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -322,13 +321,13 @@ msgstr "Sur létagère"
msgid "Pressure"
msgstr "Pression"
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr "Prix payé"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:41
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:44
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr "Prix payé:"
@ -442,7 +441,7 @@ msgstr "Vos données restent avec vous, point final"
msgid "No tags for this container"
msgstr "Aucun tag pour ce conteneur"
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/core_components/topbar.html.heex:66
#, elixir-autogen, elixir-format
msgid "Range"
@ -489,7 +488,7 @@ msgid "New Shot Records"
msgstr "Nouveaux enregistrements de tir"
#: lib/cannery_web/live/range_live/index.html.heex:55
#: lib/cannery_web/live/range_live/index.html.heex:97
#: lib/cannery_web/live/range_live/index.html.heex:98
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr "Aucun tir enregistré"
@ -528,14 +527,14 @@ msgstr "Aucun autre conteneur"
msgid "Shot log"
msgstr "Évènements de tir"
#: lib/cannery_web/components/ammo_group_table_component.ex:153
#: lib/cannery_web/components/ammo_group_table_component.ex:229
#: lib/cannery_web/components/ammo_type_table_component.ex:224
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:42
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:47
#: lib/cannery_web/components/ammo_group_table_component.ex:180
#: lib/cannery_web/components/ammo_group_table_component.ex:263
#: lib/cannery_web/components/ammo_type_table_component.ex:235
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:42
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format
msgid "$%{amount}"
msgstr "%{amount}$"
@ -623,14 +622,15 @@ msgstr "Éditer les tags de %{name}"
msgid "Rounds:"
msgstr "Cartouches:"
#: lib/cannery_web/components/ammo_group_table_component.ex:226
#: lib/cannery_web/components/ammo_type_table_component.ex:223
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#: lib/cannery_web/components/ammo_group_table_component.ex:259
#: lib/cannery_web/components/ammo_type_table_component.ex:234
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr "Aucune information de prix"
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#: lib/cannery_web/components/ammo_group_table_component.ex:92
#, elixir-autogen, elixir-format
msgid "% left"
msgstr "%restante"
@ -696,7 +696,7 @@ msgstr "Enregistrer des tirs"
msgid "Copies"
msgstr "Exemplaires"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/ammo_type_live/show.html.heex:122
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr "Ajouté le:"
@ -776,7 +776,7 @@ msgid "This ammo is not in a container"
msgstr "Ce groupe de munition nest pas dans un conteneur"
#: lib/cannery_web/components/core_components/container_card.html.heex:32
#: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96
#: lib/cannery_web/live/container_live/show.html.heex:23
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -804,15 +804,15 @@ msgstr ""
msgid "Container:"
msgstr "Conteneur"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153
#: lib/cannery_web/live/ammo_group_live/index.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.html.heex:40
#: lib/cannery_web/live/ammo_type_live/show.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:98
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:187
#: lib/cannery_web/components/ammo_group_table_component.ex:218
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -835,8 +835,8 @@ msgstr "Packages:"
msgid "Rounds"
msgstr "Cartouches:"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159
#: lib/cannery_web/live/container_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:104
#, elixir-autogen, elixir-format
msgid "View as table"
@ -847,7 +847,7 @@ msgstr ""
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
@ -857,7 +857,7 @@ msgstr ""
msgid "Total ever rounds"
msgstr "Quantité de cartouches"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#: lib/cannery_web/live/ammo_type_live/show.html.heex:87
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:"
msgstr "Nombre totale de cartouches tirées:"
@ -867,7 +867,7 @@ msgstr "Nombre totale de cartouches tirées:"
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
@ -877,7 +877,7 @@ msgstr ""
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:79
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:"
msgstr ""
@ -988,39 +988,39 @@ msgid "UPC:"
msgstr "UPC"
#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#: lib/cannery_web/live/ammo_type_live/show.html.heex:131
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:135
#: lib/cannery_web/live/ammo_type_live/show.ex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}"
msgstr "Éditer %{name}"
#: lib/cannery_web/components/ammo_group_table_component.ex:233
#: lib/cannery_web/components/ammo_group_table_component.ex:267
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:17
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:46
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:49
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#: lib/cannery_web/components/ammo_group_table_component.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr "Nombre original:"
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:21
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:24
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count:"
msgstr "Nombre original:"
@ -1035,28 +1035,28 @@ msgstr ""
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:36
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:39
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:171
#: lib/cannery_web/components/ammo_group_table_component.ex:198
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/components/ammo_group_table_component.ex:64
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:42
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:31
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
@ -1068,32 +1068,32 @@ msgid "Edit ammo"
msgstr "Éditer le type de munition"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#: lib/cannery_web/live/ammo_type_live/index.html.heex:47
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr "Aucun type de munition"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33
#: lib/cannery_web/live/ammo_type_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58
#: lib/cannery_web/live/ammo_group_live/index.html.heex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33
#: lib/cannery_web/live/container_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:37
#, elixir-autogen, elixir-format, fuzzy
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:91
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
@ -1232,3 +1232,28 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:60
#: lib/cannery_web/components/ammo_type_table_component.ex:121
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/move_ammo_group_component.ex:70
#: lib/cannery_web/components/shot_group_table_component.ex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:105
#, elixir-autogen, elixir-format
msgid "Live Dashboard"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:90
#, elixir-autogen, elixir-format
msgid "Log out"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#, elixir-autogen, elixir-format
msgid "Current Count"
msgstr ""

View File

@ -23,7 +23,7 @@ msgstr ""
# # Run "mix gettext.extract" to bring this file up to
# # date. Leave "msgstr"s empty as changing them here has no
# # effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:200
#: lib/cannery/containers.ex:220
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr "Le conteneur doit être vide pour être supprimé"
@ -113,11 +113,6 @@ msgstr "Non autorisé·e"
msgid "User confirmation link is invalid or it has expired."
msgstr "Le lien de confirmation dutilisateur·ice est invalide ou a expiré."
#: lib/cannery_web/live/invite_live/index.ex:18
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page"
msgstr "Vous nêtes pas autorisé·e à voir cette page"
#: lib/cannery_web/controllers/user_auth.ex:177
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page."
@ -176,7 +171,7 @@ msgstr "Impossible d'analyser le nombre de copies"
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}"
#: lib/cannery/ammo.ex:1015
#: lib/cannery/ammo.ex:1043
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr "Multiplicateur invalide"

View File

@ -32,7 +32,7 @@ msgid "%{name} created successfully"
msgstr "%{name} créé· avec succès"
#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.ex:54
#: lib/cannery_web/live/ammo_type_live/show.ex:49
#: lib/cannery_web/live/tag_live/index.ex:65
#, elixir-autogen, elixir-format
msgid "%{name} deleted succesfully"
@ -66,15 +66,15 @@ msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
"Êtes-vous certain·e de supprimer %{email}? Cette action est définitive!"
#: lib/cannery_web/live/container_live/index.html.heex:99
#: lib/cannery_web/live/container_live/index.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:100
#: lib/cannery_web/live/container_live/index.html.heex:156
#: lib/cannery_web/live/container_live/show.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:63
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr "Êtes-vous certain·e de supprimer %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:167
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/show.html.heex:74
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -178,7 +178,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition?"
#: lib/cannery_web/live/ammo_group_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:127
#: lib/cannery_web/live/range_live/index.html.heex:128
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir?"
@ -204,7 +204,7 @@ msgstr "%{email} confirmé avec succès."
msgid "Ammo moved to %{name} successfully"
msgstr "Munition déplacée à %{name} avec succès"
#: lib/cannery_web/live/invite_live/index.ex:126
#: lib/cannery_web/live/invite_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Copied to clipboard"
msgstr "Copié dans le presse-papier"
@ -258,7 +258,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] "Groupe de munition mis à jour avec succès"
msgstr[1] "Groupe de munition mis à jour avec succès"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:96
#: lib/cannery_web/live/ammo_type_live/index.html.heex:97
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -269,27 +269,27 @@ msgstr "Êtes-vous certain·e de supprimer %{name}?"
msgid "Register to setup Cannery"
msgstr "Senregistrer pour mettre en place %{name}"
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:43
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} deleted succesfully"
msgstr "%{name} supprimé· avec succès"
#: lib/cannery_web/live/invite_live/index.ex:114
#: lib/cannery_web/live/invite_live/index.ex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} disabled succesfully"
msgstr "%{name} supprimé·e avec succès"
#: lib/cannery_web/live/invite_live/index.ex:90
#: lib/cannery_web/live/invite_live/index.ex:80
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} enabled succesfully"
msgstr "%{name} activé·e avec succès"
#: lib/cannery_web/live/invite_live/index.ex:68
#: lib/cannery_web/live/invite_live/index.ex:58
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} updated succesfully"
msgstr "%{name} mis à jour avec succès"
#: lib/cannery_web/live/invite_live/index.ex:135
#: lib/cannery_web/live/invite_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully"
msgstr "%{name} supprimé· avec succès"

View File

@ -77,7 +77,7 @@ msgstr ""
msgid "Invite someone new!"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:122
#: lib/cannery_web/components/core_components/topbar.html.heex:124
#: lib/cannery_web/templates/user_confirmation/new.html.heex:32
#: lib/cannery_web/templates/user_registration/new.html.heex:44
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:45
@ -108,7 +108,7 @@ msgstr ""
msgid "New Tag"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:114
#: lib/cannery_web/components/core_components/topbar.html.heex:116
#: lib/cannery_web/templates/user_confirmation/new.html.heex:29
#: lib/cannery_web/templates/user_registration/new.html.heex:3
#: lib/cannery_web/templates/user_registration/new.html.heex:37
@ -167,7 +167,7 @@ msgstr ""
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:103
#: lib/cannery_web/live/ammo_group_live/index.html.heex:105
#: lib/cannery_web/live/ammo_group_live/show.html.heex:103
#: lib/cannery_web/live/range_live/index.html.heex:45
#, elixir-autogen, elixir-format
@ -199,7 +199,7 @@ msgstr ""
msgid "Create"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:111
#: lib/cannery_web/templates/user_settings/edit.html.heex:110
#, elixir-autogen, elixir-format
msgid "Change Language"
msgstr ""
@ -220,7 +220,7 @@ msgid "add an ammo type first"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.html.heex:120
#: lib/cannery_web/live/ammo_group_live/index.html.heex:122
#: lib/cannery_web/live/ammo_group_live/show.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
@ -248,13 +248,13 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:84
#: lib/cannery_web/live/ammo_type_live/index.html.heex:85
#, elixir-autogen, elixir-format
msgid "Clone %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:143
#: lib/cannery_web/live/container_live/index.html.heex:88
#: lib/cannery_web/live/container_live/index.html.heex:144
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -264,20 +264,20 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.html.heex:104
#: lib/cannery_web/live/ammo_type_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Delete %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:102
#: lib/cannery_web/live/container_live/index.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:103
#: lib/cannery_web/live/container_live/index.html.heex:159
#: lib/cannery_web/live/container_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:65
#: lib/cannery_web/live/tag_live/index.html.heex:66
#, elixir-autogen, elixir-format
msgid "Delete %{tag_name}"
msgstr ""
@ -288,30 +288,30 @@ msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:161
#: lib/cannery_web/live/range_live/index.html.heex:130
#: lib/cannery_web/live/range_live/index.html.heex:131
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:74
#: lib/cannery_web/live/ammo_type_live/index.html.heex:75
#: lib/cannery_web/live/ammo_type_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:133
#: lib/cannery_web/live/container_live/index.html.heex:78
#: lib/cannery_web/live/container_live/index.html.heex:134
#: lib/cannery_web/live/container_live/show.html.heex:42
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:53
#, elixir-autogen, elixir-format
msgid "Edit %{tag_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:142
#: lib/cannery_web/live/ammo_group_live/index.html.heex:144
#: lib/cannery_web/live/ammo_group_live/show.html.heex:62
#, elixir-autogen, elixir-format
msgid "Edit ammo group of %{ammo_group_count} bullets"
@ -327,44 +327,45 @@ msgstr ""
msgid "Edit shot group of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:113
#: lib/cannery_web/live/range_live/index.html.heex:114
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_group_count} shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#: lib/cannery_web/live/ammo_group_live/index.html.heex:98
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:122
#: lib/cannery_web/live/container_live/index.html.heex:66
#: lib/cannery_web/live/container_live/index.html.heex:123
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:95
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:65
#, elixir-autogen, elixir-format
msgid "View %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:154
#: lib/cannery_web/live/ammo_group_live/index.html.heex:156
#, elixir-autogen, elixir-format, fuzzy
msgid "Clone ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/index.html.heex:171
#: lib/cannery_web/live/ammo_group_live/show.html.heex:76
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete ammo group of %{ammo_group_count} bullets"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:130
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_type_live/show.html.heex:189
#, elixir-autogen, elixir-format, fuzzy
msgid "View ammo group of %{ammo_group_count} bullets"
msgstr ""

View File

@ -36,7 +36,7 @@ msgstr ""
msgid "Ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/components/ammo_group_table_component.ex:108
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:22
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -88,7 +88,7 @@ msgstr ""
msgid "Case material"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
@ -109,7 +109,7 @@ msgstr ""
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:28
#, elixir-autogen, elixir-format
msgid "Count"
@ -139,7 +139,7 @@ msgstr ""
msgid "Easy to Use:"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:33
#: lib/cannery_web/live/invite_live/index.ex:23
#, elixir-autogen, elixir-format
msgid "Edit Invite"
msgstr ""
@ -187,7 +187,7 @@ msgid "Invite Only"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:74
#: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.ex:31
#: lib/cannery_web/live/invite_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Invites"
@ -254,7 +254,7 @@ msgstr ""
msgid "New Container"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:37
#: lib/cannery_web/live/invite_live/index.ex:27
#, elixir-autogen, elixir-format
msgid "New Invite"
msgstr ""
@ -265,18 +265,18 @@ msgid "New Tag"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:10
#: lib/cannery_web/live/ammo_group_live/index.html.heex:71
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "No Ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:167
#: lib/cannery_web/live/ammo_type_live/show.html.heex:163
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:8
#: lib/cannery_web/live/container_live/index.html.heex:47
#: lib/cannery_web/live/container_live/index.html.heex:48
#, elixir-autogen, elixir-format
msgid "No containers"
msgstr ""
@ -288,13 +288,12 @@ msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:29
#: lib/cannery_web/live/tag_live/index.html.heex:10
#: lib/cannery_web/live/tag_live/index.html.heex:43
#: lib/cannery_web/live/tag_live/index.html.heex:44
#, elixir-autogen, elixir-format
msgid "No tags"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:38
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/components/shot_group_table_component.ex:43
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.ex:92
@ -303,7 +302,7 @@ msgstr ""
msgid "Notes"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:26
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:29
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
@ -320,13 +319,13 @@ msgstr ""
msgid "Pressure"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:41
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:44
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr ""
@ -436,7 +435,7 @@ msgstr ""
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/core_components/topbar.html.heex:66
#, elixir-autogen, elixir-format
msgid "Range"
@ -483,7 +482,7 @@ msgid "New Shot Records"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:55
#: lib/cannery_web/live/range_live/index.html.heex:97
#: lib/cannery_web/live/range_live/index.html.heex:98
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr ""
@ -522,14 +521,14 @@ msgstr ""
msgid "Shot log"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:153
#: lib/cannery_web/components/ammo_group_table_component.ex:229
#: lib/cannery_web/components/ammo_type_table_component.ex:224
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:42
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:47
#: lib/cannery_web/components/ammo_group_table_component.ex:180
#: lib/cannery_web/components/ammo_group_table_component.ex:263
#: lib/cannery_web/components/ammo_type_table_component.ex:235
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:42
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#, elixir-autogen, elixir-format
msgid "$%{amount}"
msgstr ""
@ -617,14 +616,15 @@ msgstr ""
msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:226
#: lib/cannery_web/components/ammo_type_table_component.ex:223
#: lib/cannery_web/live/ammo_type_live/show.html.heex:143
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#: lib/cannery_web/components/ammo_group_table_component.ex:259
#: lib/cannery_web/components/ammo_type_table_component.ex:234
#: lib/cannery_web/live/ammo_type_live/show.html.heex:139
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#: lib/cannery_web/components/ammo_group_table_component.ex:92
#, elixir-autogen, elixir-format
msgid "% left"
msgstr ""
@ -690,7 +690,7 @@ msgstr ""
msgid "Copies"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126
#: lib/cannery_web/live/ammo_type_live/show.html.heex:122
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr ""
@ -770,7 +770,7 @@ msgid "This ammo is not in a container"
msgstr ""
#: lib/cannery_web/components/core_components/container_card.html.heex:32
#: lib/cannery_web/live/ammo_type_live/show.html.heex:98
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96
#: lib/cannery_web/live/container_live/show.html.heex:23
#, elixir-autogen, elixir-format
msgid "Packs:"
@ -797,15 +797,15 @@ msgstr ""
msgid "Container:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:64
#: lib/cannery_web/live/ammo_type_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:153
#: lib/cannery_web/live/ammo_group_live/index.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.html.heex:40
#: lib/cannery_web/live/ammo_type_live/show.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:98
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:187
#: lib/cannery_web/components/ammo_group_table_component.ex:218
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -828,8 +828,8 @@ msgstr ""
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:159
#: lib/cannery_web/live/container_live/index.html.heex:39
#: lib/cannery_web/live/ammo_type_live/show.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:104
#, elixir-autogen, elixir-format
msgid "View as table"
@ -840,7 +840,7 @@ msgstr ""
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:114
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
@ -850,7 +850,7 @@ msgstr ""
msgid "Total ever rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:86
#: lib/cannery_web/live/ammo_type_live/show.html.heex:87
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:"
msgstr ""
@ -860,7 +860,7 @@ msgstr ""
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
@ -870,7 +870,7 @@ msgstr ""
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:79
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:"
msgstr ""
@ -981,39 +981,39 @@ msgid "UPC:"
msgstr ""
#: lib/cannery_web/components/ammo_type_table_component.ex:120
#: lib/cannery_web/live/ammo_type_live/show.html.heex:135
#: lib/cannery_web/live/ammo_type_live/show.html.heex:131
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:28
#: lib/cannery_web/live/ammo_type_live/show.ex:135
#: lib/cannery_web/live/ammo_type_live/show.ex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:233
#: lib/cannery_web/components/ammo_group_table_component.ex:267
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:17
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:46
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:49
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#: lib/cannery_web/components/ammo_group_table_component.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:21
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:24
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count:"
msgstr ""
@ -1028,28 +1028,28 @@ msgstr ""
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:36
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:39
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:171
#: lib/cannery_web/components/ammo_group_table_component.ex:198
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/components/ammo_group_table_component.ex:64
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:42
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:31
#: lib/cannery_web/components/core_components/ammo_group_card.html.heex:34
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
@ -1061,32 +1061,32 @@ msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#: lib/cannery_web/live/ammo_type_live/index.html.heex:46
#: lib/cannery_web/live/ammo_type_live/index.html.heex:47
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:33
#: lib/cannery_web/live/ammo_type_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:58
#: lib/cannery_web/live/ammo_group_live/index.html.heex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:33
#: lib/cannery_web/live/container_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:37
#, elixir-autogen, elixir-format, fuzzy
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:91
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
@ -1223,3 +1223,28 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:60
#: lib/cannery_web/components/ammo_type_table_component.ex:121
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/move_ammo_group_component.ex:70
#: lib/cannery_web/components/shot_group_table_component.ex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:105
#, elixir-autogen, elixir-format
msgid "Live Dashboard"
msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:90
#, elixir-autogen, elixir-format
msgid "Log out"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:100
#, elixir-autogen, elixir-format
msgid "Current Count"
msgstr ""

View File

@ -24,7 +24,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:200
#: lib/cannery/containers.ex:220
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh"
@ -114,11 +114,6 @@ msgstr "Níl cead agaibh"
msgid "User confirmation link is invalid or it has expired."
msgstr "Tá nasc an úsáideoir a deimhnigh neamhbailí nó as dáta."
#: lib/cannery_web/live/invite_live/index.ex:18
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page"
msgstr "Níl cead agaibh féachaint ar an leathanach seo"
#: lib/cannery_web/controllers/user_auth.ex:177
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page."
@ -175,7 +170,7 @@ msgstr ""
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr ""
#: lib/cannery/ammo.ex:1015
#: lib/cannery/ammo.ex:1043
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr ""

View File

@ -30,7 +30,7 @@ msgid "%{name} created successfully"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.ex:54
#: lib/cannery_web/live/ammo_type_live/show.ex:49
#: lib/cannery_web/live/tag_live/index.ex:65
#, elixir-autogen, elixir-format
msgid "%{name} deleted succesfully"
@ -61,15 +61,15 @@ msgstr ""
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:99
#: lib/cannery_web/live/container_live/index.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:100
#: lib/cannery_web/live/container_live/index.html.heex:156
#: lib/cannery_web/live/container_live/show.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:63
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:167
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/show.html.heex:74
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -167,7 +167,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:127
#: lib/cannery_web/live/range_live/index.html.heex:128
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""
@ -193,7 +193,7 @@ msgstr ""
msgid "Ammo moved to %{name} successfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:126
#: lib/cannery_web/live/invite_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Copied to clipboard"
msgstr ""
@ -250,7 +250,7 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:96
#: lib/cannery_web/live/ammo_type_live/index.html.heex:97
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -261,27 +261,27 @@ msgstr ""
msgid "Register to setup Cannery"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:43
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} deleted succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:114
#: lib/cannery_web/live/invite_live/index.ex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} disabled succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:90
#: lib/cannery_web/live/invite_live/index.ex:80
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} enabled succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:68
#: lib/cannery_web/live/invite_live/index.ex:58
#, elixir-autogen, elixir-format, fuzzy
msgid "%{invite_name} updated succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:135
#: lib/cannery_web/live/invite_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully"
msgstr ""

View File

@ -19,7 +19,7 @@ msgid "%{name} created successfully"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.ex:54
#: lib/cannery_web/live/ammo_type_live/show.ex:49
#: lib/cannery_web/live/tag_live/index.ex:65
#, elixir-autogen, elixir-format
msgid "%{name} deleted succesfully"
@ -50,15 +50,15 @@ msgstr ""
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:99
#: lib/cannery_web/live/container_live/index.html.heex:155
#: lib/cannery_web/live/container_live/index.html.heex:100
#: lib/cannery_web/live/container_live/index.html.heex:156
#: lib/cannery_web/live/container_live/show.html.heex:52
#: lib/cannery_web/live/tag_live/index.html.heex:63
#: lib/cannery_web/live/tag_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:167
#: lib/cannery_web/live/ammo_group_live/index.html.heex:169
#: lib/cannery_web/live/ammo_group_live/show.html.heex:74
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -156,7 +156,7 @@ msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:127
#: lib/cannery_web/live/range_live/index.html.heex:128
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""
@ -182,7 +182,7 @@ msgstr ""
msgid "Ammo moved to %{name} successfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:126
#: lib/cannery_web/live/invite_live/index.ex:116
#, elixir-autogen, elixir-format
msgid "Copied to clipboard"
msgstr ""
@ -236,7 +236,7 @@ msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:96
#: lib/cannery_web/live/ammo_type_live/index.html.heex:97
#: lib/cannery_web/live/ammo_type_live/show.html.heex:29
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
@ -247,27 +247,27 @@ msgstr ""
msgid "Register to setup Cannery"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:43
#, elixir-autogen, elixir-format
msgid "%{invite_name} deleted succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:114
#: lib/cannery_web/live/invite_live/index.ex:104
#, elixir-autogen, elixir-format
msgid "%{invite_name} disabled succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:90
#: lib/cannery_web/live/invite_live/index.ex:80
#, elixir-autogen, elixir-format
msgid "%{invite_name} enabled succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:68
#: lib/cannery_web/live/invite_live/index.ex:58
#, elixir-autogen, elixir-format
msgid "%{invite_name} updated succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:135
#: lib/cannery_web/live/invite_live/index.ex:125
#, elixir-autogen, elixir-format
msgid "%{user_email} deleted succesfully"
msgstr ""

View File

@ -45,7 +45,7 @@ defmodule Cannery.AmmoTest do
assert Ammo.list_ammo_types(current_user) == [ammo_type]
end
test "list_ammo_types/1 returns relevant ammo_types for a user",
test "list_ammo_types/2 returns relevant ammo_types for a user",
%{current_user: current_user} do
ammo_type_a =
%{"name" => "bullets", "desc" => "has some pews in it", "grains" => 5}
@ -89,12 +89,12 @@ defmodule Cannery.AmmoTest do
assert Ammo.list_ammo_types("tracer", current_user) == [ammo_type_c]
end
test "get_ammo_type!/1 returns the ammo_type with given id",
test "get_ammo_type!/2 returns the ammo_type with given id",
%{ammo_type: ammo_type, current_user: current_user} do
assert Ammo.get_ammo_type!(ammo_type.id, current_user) == ammo_type
end
test "create_ammo_type/1 with valid data creates a ammo_type",
test "create_ammo_type/2 with valid data creates a ammo_type",
%{current_user: current_user} do
assert {:ok, %AmmoType{} = ammo_type} = Ammo.create_ammo_type(@valid_attrs, current_user)
assert ammo_type.bullet_type == "some bullet_type"
@ -105,12 +105,12 @@ defmodule Cannery.AmmoTest do
assert ammo_type.grains == 120
end
test "create_ammo_type/1 with invalid data returns error changeset",
test "create_ammo_type/2 with invalid data returns error changeset",
%{current_user: current_user} do
assert {:error, %Changeset{}} = Ammo.create_ammo_type(@invalid_attrs, current_user)
end
test "update_ammo_type/2 with valid data updates the ammo_type",
test "update_ammo_type/3 with valid data updates the ammo_type",
%{ammo_type: ammo_type, current_user: current_user} do
assert {:ok, %AmmoType{} = ammo_type} =
Ammo.update_ammo_type(ammo_type, @update_attrs, current_user)
@ -123,7 +123,7 @@ defmodule Cannery.AmmoTest do
assert ammo_type.grains == 456
end
test "update_ammo_type/2 with invalid data returns error changeset",
test "update_ammo_type/3 with invalid data returns error changeset",
%{ammo_type: ammo_type, current_user: current_user} do
assert {:error, %Changeset{}} =
Ammo.update_ammo_type(ammo_type, @invalid_attrs, current_user)
@ -131,7 +131,7 @@ defmodule Cannery.AmmoTest do
assert ammo_type == Ammo.get_ammo_type!(ammo_type.id, current_user)
end
test "delete_ammo_type/1 deletes the ammo_type",
test "delete_ammo_type/2 deletes the ammo_type",
%{ammo_type: ammo_type, current_user: current_user} do
assert {:ok, %AmmoType{}} = Ammo.delete_ammo_type(ammo_type, current_user)
assert_raise Ecto.NoResultsError, fn -> Ammo.get_ammo_type!(ammo_type.id, current_user) end
@ -785,7 +785,7 @@ defmodule Cannery.AmmoTest do
assert %{^another_ammo_type_id => 1} = ammo_groups_count
end
test "list_staged_ammo_groups/2 returns all ammo_groups that are staged",
test "list_staged_ammo_groups/1 returns all ammo_groups that are staged",
%{
ammo_type: ammo_type,
container: container,
@ -797,7 +797,7 @@ defmodule Cannery.AmmoTest do
assert Ammo.list_staged_ammo_groups(current_user) == [another_ammo_group]
end
test "get_ammo_group!/1 returns the ammo_group with given id",
test "get_ammo_group!/2 returns the ammo_group with given id",
%{ammo_group: %{id: ammo_group_id} = ammo_group, current_user: current_user} do
assert Ammo.get_ammo_group!(ammo_group_id, current_user) == ammo_group
end
@ -861,7 +861,7 @@ defmodule Cannery.AmmoTest do
|> Ammo.create_ammo_groups(1, current_user)
end
test "update_ammo_group/2 with valid data updates the ammo_group",
test "update_ammo_group/3 with valid data updates the ammo_group",
%{ammo_group: ammo_group, current_user: current_user} do
assert {:ok, %AmmoGroup{} = ammo_group} =
Ammo.update_ammo_group(ammo_group, @update_attrs, current_user)
@ -871,7 +871,7 @@ defmodule Cannery.AmmoTest do
assert ammo_group.price_paid == 456.7
end
test "update_ammo_group/2 with invalid data returns error changeset",
test "update_ammo_group/3 with invalid data returns error changeset",
%{ammo_group: ammo_group, current_user: current_user} do
assert {:error, %Changeset{}} =
Ammo.update_ammo_group(ammo_group, @invalid_attrs, current_user)
@ -879,13 +879,13 @@ defmodule Cannery.AmmoTest do
assert ammo_group == Ammo.get_ammo_group!(ammo_group.id, current_user)
end
test "delete_ammo_group/1 deletes the ammo_group",
test "delete_ammo_group/2 deletes the ammo_group",
%{ammo_group: ammo_group, current_user: current_user} do
assert {:ok, %AmmoGroup{}} = Ammo.delete_ammo_group(ammo_group, current_user)
assert_raise KeyError, fn -> Ammo.get_ammo_group!(ammo_group.id, current_user) end
end
test "get_percentage_remaining/1 gets accurate total round count",
test "get_percentage_remaining/2 gets accurate total round count",
%{ammo_group: %{id: ammo_group_id} = ammo_group, current_user: current_user} do
assert 100 = ammo_group |> Ammo.get_percentage_remaining(current_user)
@ -902,6 +902,53 @@ defmodule Cannery.AmmoTest do
assert 0 = ammo_group |> Ammo.get_percentage_remaining(current_user)
end
test "get_percentages_remaining/2 gets accurate total round count", %{
ammo_group: %{id: ammo_group_id} = ammo_group,
ammo_type: ammo_type,
container: container,
current_user: current_user
} do
assert %{ammo_group_id => 100} ==
[ammo_group] |> Ammo.get_percentages_remaining(current_user)
{1, [%{id: another_ammo_group_id} = another_ammo_group]} =
%{"count" => 50, "price_paid" => 36.1}
|> ammo_group_fixture(ammo_type, container, current_user)
percentages =
[ammo_group, another_ammo_group] |> Ammo.get_percentages_remaining(current_user)
assert %{^ammo_group_id => 100} = percentages
assert %{^another_ammo_group_id => 100} = percentages
shot_group_fixture(%{"count" => 14}, current_user, ammo_group)
ammo_group = Ammo.get_ammo_group!(ammo_group_id, current_user)
percentages =
[ammo_group, another_ammo_group] |> Ammo.get_percentages_remaining(current_user)
assert %{^ammo_group_id => 72} = percentages
assert %{^another_ammo_group_id => 100} = percentages
shot_group_fixture(%{"count" => 11}, current_user, ammo_group)
ammo_group = Ammo.get_ammo_group!(ammo_group_id, current_user)
percentages =
[ammo_group, another_ammo_group] |> Ammo.get_percentages_remaining(current_user)
assert %{^ammo_group_id => 50} = percentages
assert %{^another_ammo_group_id => 100} = percentages
shot_group_fixture(%{"count" => 25}, current_user, ammo_group)
ammo_group = Ammo.get_ammo_group!(ammo_group_id, current_user)
percentages =
[ammo_group, another_ammo_group] |> Ammo.get_percentages_remaining(current_user)
assert %{^ammo_group_id => 0} = percentages
assert %{^another_ammo_group_id => 100} = percentages
end
test "get_cpr/2 gets accurate cpr",
%{ammo_type: ammo_type, container: container, current_user: current_user} do
{1, [ammo_group]} = ammo_group_fixture(%{"count" => 1}, ammo_type, container, current_user)

View File

@ -90,12 +90,24 @@ defmodule Cannery.ContainersTest do
assert Containers.list_containers("asajslkdflskdf", current_user) == []
end
test "get_container!/1 returns the container with given id",
test "get_container!/2 returns the container with given id",
%{current_user: current_user, container: container} do
assert Containers.get_container!(container.id, current_user) == container
assert_raise KeyError, fn -> Containers.get_container!(current_user.id, current_user) end
end
test "create_container/1 with valid data creates a container", %{current_user: current_user} do
test "get_containers/2 returns the container with given id",
%{current_user: current_user, container: %{id: container_id} = container} do
assert %{container_id => container} ==
Containers.get_containers([container_id], current_user)
%{id: another_container_id} = another_container = container_fixture(current_user)
containers = [container_id, another_container_id] |> Containers.get_containers(current_user)
assert %{^container_id => ^container} = containers
assert %{^another_container_id => ^another_container} = containers
end
test "create_container/2 with valid data creates a container", %{current_user: current_user} do
assert {:ok, %Container{} = container} =
@valid_attrs |> Containers.create_container(current_user)
@ -106,12 +118,12 @@ defmodule Cannery.ContainersTest do
assert container.user_id == current_user.id
end
test "create_container/1 with invalid data returns error changeset",
test "create_container/2 with invalid data returns error changeset",
%{current_user: current_user} do
assert {:error, %Changeset{}} = @invalid_attrs |> Containers.create_container(current_user)
end
test "update_container/2 with valid data updates the container",
test "update_container/3 with valid data updates the container",
%{current_user: current_user, container: container} do
assert {:ok, %Container{} = container} =
Containers.update_container(container, current_user, @update_attrs)
@ -122,7 +134,7 @@ defmodule Cannery.ContainersTest do
assert container.type == "some updated type"
end
test "update_container/2 with invalid data returns error changeset",
test "update_container/3 with invalid data returns error changeset",
%{current_user: current_user, container: container} do
assert {:error, %Changeset{}} =
Containers.update_container(container, current_user, @invalid_attrs)
@ -130,11 +142,11 @@ defmodule Cannery.ContainersTest do
assert container == Containers.get_container!(container.id, current_user)
end
test "delete_container/1 deletes the container",
test "delete_container/2 deletes the container",
%{current_user: current_user, container: container} do
assert {:ok, %Container{}} = Containers.delete_container(container, current_user)
assert_raise Ecto.NoResultsError, fn ->
assert_raise KeyError, fn ->
Containers.get_container!(container.id, current_user)
end
end
@ -168,36 +180,36 @@ defmodule Cannery.ContainersTest do
assert Containers.list_tags("hollows", current_user) == [tag_b]
end
test "get_tag!/1 returns the tag with given id", %{tag: tag, current_user: current_user} do
test "get_tag!/2 returns the tag with given id", %{tag: tag, current_user: current_user} do
assert Containers.get_tag!(tag.id, current_user) == tag
end
test "create_tag/1 with valid data creates a tag", %{current_user: current_user} do
test "create_tag/2 with valid data creates a tag", %{current_user: current_user} do
assert {:ok, %Tag{} = tag} = Containers.create_tag(@valid_tag_attrs, current_user)
assert tag.bg_color == "some bg-color"
assert tag.name == "some name"
assert tag.text_color == "some text-color"
end
test "create_tag/1 with invalid data returns error changeset",
test "create_tag/2 with invalid data returns error changeset",
%{current_user: current_user} do
assert {:error, %Changeset{}} = Containers.create_tag(@invalid_tag_attrs, current_user)
end
test "update_tag/2 with valid data updates the tag", %{tag: tag, current_user: current_user} do
test "update_tag/3 with valid data updates the tag", %{tag: tag, current_user: current_user} do
assert {:ok, %Tag{} = tag} = Containers.update_tag(tag, @update_tag_attrs, current_user)
assert tag.bg_color == "some updated bg-color"
assert tag.name == "some updated name"
assert tag.text_color == "some updated text-color"
end
test "update_tag/2 with invalid data returns error changeset",
test "update_tag/3 with invalid data returns error changeset",
%{tag: tag, current_user: current_user} do
assert {:error, %Changeset{}} = Containers.update_tag(tag, @invalid_tag_attrs, current_user)
assert tag == Containers.get_tag!(tag.id, current_user)
end
test "delete_tag/1 deletes the tag", %{tag: tag, current_user: current_user} do
test "delete_tag/2 deletes the tag", %{tag: tag, current_user: current_user} do
assert {:ok, %Tag{}} = Containers.delete_tag(tag, current_user)
assert_raise Ecto.NoResultsError, fn -> Containers.get_tag!(tag.id, current_user) end
end

View File

@ -116,7 +116,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
|> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index))
assert html =~ dgettext("prompts", "Ammo added successfully")
assert html =~ "42"
assert html =~ "\n42\n"
end
test "saves multiple new ammo_groups", %{conn: conn, current_user: current_user} do
@ -202,7 +202,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
|> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index))
assert html =~ dgettext("prompts", "Ammo updated successfully")
assert html =~ "43"
assert html =~ "\n43\n"
end
test "clones ammo_group in listing", %{conn: conn, ammo_group: ammo_group} do
@ -229,7 +229,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
|> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index))
assert html =~ dgettext("prompts", "Ammo added successfully")
assert html =~ "42"
assert html =~ "\n42\n"
assert html =~ gettext("$%{amount}", amount: display_currency(120.5))
end
@ -257,7 +257,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
|> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index))
assert html =~ dgettext("prompts", "Ammo added successfully")
assert html =~ "43"
assert html =~ "\n43\n"
assert html =~ gettext("$%{amount}", amount: display_currency(120.5))
end
@ -309,12 +309,8 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
assert html =~ dgettext("actions", "Show used")
refute html =~ gettext("$%{amount}", amount: display_currency(50.00))
refute html =~
"\n" <>
gettext("%{percentage}%",
percentage: ammo_group |> Ammo.get_percentage_remaining(current_user)
) <>
"\n"
percentage = ammo_group |> Ammo.get_percentage_remaining(current_user)
refute html =~ "\n#{gettext("%{percentage}%", percentage: percentage)}\n"
html =
show_live
@ -323,12 +319,8 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
assert html =~ gettext("$%{amount}", amount: display_currency(50.00))
assert html =~
"\n" <>
gettext("%{percentage}%",
percentage: ammo_group |> Ammo.get_percentage_remaining(current_user)
) <>
"\n"
percentage = ammo_group |> Ammo.get_percentage_remaining(current_user)
assert html =~ "\n#{gettext("%{percentage}%", percentage: percentage)}\n"
end
end

View File

@ -230,9 +230,9 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
assert html =~ gettext("Used packs")
assert html =~ gettext("Total ever packs")
assert html =~ "20"
assert html =~ "0"
assert html =~ "1"
assert html =~ "\n20\n"
assert html =~ "\n0\n"
assert html =~ "\n1\n"
shot_group_fixture(%{"count" => 5}, current_user, ammo_group)
@ -243,8 +243,8 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/)
|> render_click()
assert html =~ "15"
assert html =~ "5"
assert html =~ "\n15\n"
assert html =~ "\n5\n"
end
end
@ -297,7 +297,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
{:ok, _show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
assert html =~ ammo_type_name
assert html =~ "some ammo group"
assert html =~ "\n20\n"
assert html =~ container_name
end
@ -310,9 +310,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_table-label"}]/)
|> render_click()
assert_patch(show_live, Routes.ammo_type_show_path(conn, :table, ammo_type))
assert html =~ "some ammo group"
assert html =~ "\n20\n"
assert html =~ container_name
end
end
@ -325,14 +323,14 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
{:ok, show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
assert html =~ dgettext("actions", "Show used")
refute html =~ "some ammo group"
refute html =~ "\n20\n"
html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/)
|> render_click()
assert html =~ "some ammo group"
assert html =~ "\n20\n"
assert html =~ "Empty"
assert html =~ container_name
end
@ -346,17 +344,15 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_table-label"}]/)
|> render_click()
assert_patch(show_live, Routes.ammo_type_show_path(conn, :table, ammo_type))
assert html =~ dgettext("actions", "Show used")
refute html =~ "some ammo group"
refute html =~ "\n20\n"
html =
show_live
|> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/)
|> render_click()
assert html =~ "some ammo group"
assert html =~ "\n20\n"
assert html =~ "Empty"
assert html =~ container_name
end

View File

@ -273,7 +273,7 @@ defmodule CanneryWeb.ContainerLiveTest do
{:ok, _show_live, html} = live(conn, Routes.container_show_path(conn, :show, container))
assert html =~ ammo_type_name
assert html =~ "some ammo group"
assert html =~ "\n20\n"
end
test "displays ammo group in table",
@ -286,7 +286,7 @@ defmodule CanneryWeb.ContainerLiveTest do
|> render_click()
assert html =~ ammo_type_name
assert html =~ "some ammo group"
assert html =~ "\n20\n"
end
end
@ -298,7 +298,7 @@ defmodule CanneryWeb.ContainerLiveTest do
{:ok, show_live, html} = live(conn, Routes.container_show_path(conn, :show, container))
assert html =~ dgettext("actions", "Show used")
refute html =~ "some ammo group"
refute html =~ "\n20\n"
html =
show_live
@ -306,7 +306,7 @@ defmodule CanneryWeb.ContainerLiveTest do
|> render_click()
assert html =~ ammo_type_name
assert html =~ "some ammo group"
assert html =~ "\n20\n"
assert html =~ "Empty"
end
@ -320,7 +320,7 @@ defmodule CanneryWeb.ContainerLiveTest do
|> render_click()
assert html =~ dgettext("actions", "Show used")
refute html =~ "some ammo group"
refute html =~ "\n20\n"
html =
show_live
@ -328,7 +328,7 @@ defmodule CanneryWeb.ContainerLiveTest do
|> render_click()
assert html =~ ammo_type_name
assert html =~ "some ammo group"
assert html =~ "\n20\n"
assert html =~ "Empty"
end
end