Compare commits

..

12 Commits
0.8.4 ... 0.8.6

Author SHA1 Message Date
355752598c show link to ammo pack in ammo pack table while viewing ammo type
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-19 15:09:44 -04:00
03f8a2e8a7 remove all n+1 queries for real this time 2023-03-19 15:05:09 -04:00
071eb1b3c9 fix some values not being sorted in tables properly 2023-03-19 14:31:53 -04:00
2987e4ff37 hide more ammo group table fields when not viewing historical information 2023-03-19 14:11:01 -04:00
ca81924ebe fix ammo type table not displaying correct information 2023-03-19 14:07:23 -04:00
40e4f6fe0a remove :table path 2023-03-19 13:37:28 -04:00
213dcca973 fix duplicate entries showing up 2023-03-19 13:28:56 -04:00
b32edd581d fix accessibility issues
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-19 12:35:26 -04:00
2e372ca2ab hide historical ammo type information until show_used is toggled 2023-03-19 11:43:13 -04:00
fd0bac3bbf fix tables unable to sort on nil dates 2023-03-19 11:19:55 -04:00
f83fbc5d99 add links to readme 2023-03-19 00:41:39 -04:00
daab051026 remove unnecessary auth check on invite page 2023-03-19 00:23:59 -04:00
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