Compare commits

...

22 Commits
0.6.0 ... 0.7.1

Author SHA1 Message Date
20a2311229 bump to 0.7.1 2022-11-19 15:24:20 -05:00
a6ae8a872d update translations 2022-11-19 15:12:01 -05:00
81e448afc4 improve some wording 2022-11-19 15:11:34 -05:00
dfebad713f replace ammo added on with purchased on 2022-11-19 15:10:15 -05:00
bf0ea4168b fix bug with ammo group not updating after deleting shot group 2022-11-19 15:10:15 -05:00
5ffa627beb improve table route navigation 2022-11-19 15:10:15 -05:00
25d4f1916a display link to container in table 2022-11-19 15:10:15 -05:00
fd583f2941 add ids to some cards 2022-11-19 15:10:15 -05:00
5cae646758 improve indexes 2022-11-19 15:10:15 -05:00
d389515f76 be more specific on wording for show container 2022-11-19 15:10:15 -05:00
c2568b6521 move toggle button to live_helpers 2022-11-19 15:10:15 -05:00
60462877c5 pull version number from config 2022-11-19 15:10:15 -05:00
ba5a4e69b2 fix table alignment 2022-11-19 15:10:15 -05:00
ba36b4e4c5 Translated using Weblate (Spanish)
Currently translated at 90.4% (38 of 42 strings)

Translation: cannery/actions
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/actions/es/
2022-11-13 21:49:26 +00:00
f5a092e91f Translated using Weblate (Spanish)
Currently translated at 94.1% (32 of 34 strings)

Translation: cannery/errors
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/errors/es/
2022-11-13 21:49:26 +00:00
09774e0aed bump to 0.7.0 2022-11-12 14:38:40 -05:00
44d4d7c6f9 add CPR and original count to json export 2022-11-12 14:37:55 -05:00
1fed895b82 display cpr for ammo packs and add original count for ammo packs 2022-11-12 14:33:11 -05:00
3480aff61d make ammo type show page and container show page also display ammo groups as table 2022-11-12 13:53:23 -05:00
1ea4b99c81 fix whitespace when copying invite url 2022-11-11 21:36:57 -05:00
2191e7f4f4 fix chart to sum by day 2022-11-11 19:34:23 -05:00
8231683958 add shading to table component 2022-11-11 18:47:55 -05:00
67 changed files with 2790 additions and 1711 deletions

View File

@ -1,3 +1,23 @@
# v0.7.1
- Fix table component alignment and styling
- Fix toggle button styling
- Miscellanous code improvements
- Improve container index table
- Fix bug with ammo not updating after deleting shot group
- Replace ammo "added on" with "purchased on"
- Miscellaneous wording improvements
- Update translations
# v0.7.0
- Add shading to table component
- Fix chart to sum by day
- Fix whitespace when copying invite url
- Make ammo type show page also display ammo groups as table
- Make container show page also display ammo groups as table
- Display CPR for ammo packs
- Add original count for ammo packs
- Add ammo pack CPR and original count to json export
# v0.6.0 # v0.6.0
- Update translations - Update translations
- Display used-up date on used-up ammo - Display used-up date on used-up ammo

View File

@ -11,22 +11,23 @@ export default {
data: { data: {
datasets: [{ datasets: [{
label: el.dataset.label, label: el.dataset.label,
data: data.map(({ date, count, labels }) => ({ data: data.map(({ date, count, label }) => ({
labels, label,
x: date, x: date,
y: count y: count
})), })),
backgroundColor: el.dataset.color, backgroundColor: `${el.dataset.color}77`,
borderColor: el.dataset.color, borderColor: el.dataset.color,
fill: true, fill: true,
borderWidth: 4 borderWidth: 3,
pointBorderWidth: 1
}] }]
}, },
options: { options: {
elements: { elements: {
point: { point: {
radius: 7, radius: 9,
hoverRadius: 10 hoverRadius: 12
} }
}, },
plugins: { plugins: {
@ -39,7 +40,8 @@ export default {
tooltip: { tooltip: {
displayColors: false, displayColors: false,
callbacks: { callbacks: {
label: ({ raw: { labels } }) => labels title: (contexts) => contexts.map(({ raw: { x } }) => Intl.DateTimeFormat([], { timeZone: 'Etc/UTC', dateStyle: 'short' }).format(new Date(x))),
label: ({ raw: { label } }) => label
} }
} }
}, },

View File

@ -74,7 +74,7 @@ defmodule Cannery.ActivityLog.ShotGroup do
|> cast(attrs, [:count, :notes, :date]) |> cast(attrs, [:count, :notes, :date])
|> validate_number(:count, greater_than: 0) |> validate_number(:count, greater_than: 0)
|> validate_required([:count, :ammo_group_id, :user_id]) |> validate_required([:count, :ammo_group_id, :user_id])
|> add_error(:invalid, dgettext("errors", "Please select a valid user and ammo group")) |> add_error(:invalid, dgettext("errors", "Please select a valid user and ammo pack"))
end end
defp validate_create_shot_group_count(changeset, %AmmoGroup{count: ammo_group_count}) do defp validate_create_shot_group_count(changeset, %AmmoGroup{count: ammo_group_count}) do

View File

@ -513,6 +513,28 @@ defmodule Cannery.Ammo do
round(count / (count + shot_group_sum) * 100) round(count / (count + shot_group_sum) * 100)
end end
@doc """
Gets the original count for an ammo group
"""
@spec get_original_count(AmmoGroup.t()) :: non_neg_integer()
def get_original_count(%AmmoGroup{count: count} = ammo_group) do
count + get_used_count(ammo_group)
end
@doc """
Calculates the CPR for a single ammo group
"""
@spec get_cpr(AmmoGroup.t()) :: nil | float()
def get_cpr(%AmmoGroup{price_paid: nil}), do: nil
def get_cpr(%AmmoGroup{price_paid: price_paid} = ammo_group),
do: calculate_cpr(price_paid, get_original_count(ammo_group))
@spec calculate_cpr(price_paid :: float() | nil, count :: integer()) :: float() | nil
defp calculate_cpr(nil, _count), do: nil
defp calculate_cpr(_price_paid, 0), do: nil
defp calculate_cpr(price_paid, total_count), do: price_paid / total_count
@doc """ @doc """
Creates multiple ammo_groups at once. Creates multiple ammo_groups at once.

View File

@ -30,6 +30,7 @@ defmodule Cannery.Ammo.AmmoGroup do
field :notes, :string field :notes, :string
field :price_paid, :float field :price_paid, :float
field :staged, :boolean, default: false field :staged, :boolean, default: false
field :purchased_on, :date
belongs_to :ammo_type, AmmoType belongs_to :ammo_type, AmmoType
belongs_to :container, Container belongs_to :container, Container
@ -46,6 +47,7 @@ defmodule Cannery.Ammo.AmmoGroup do
notes: String.t() | nil, notes: String.t() | nil,
price_paid: float() | nil, price_paid: float() | nil,
staged: boolean(), staged: boolean(),
purchased_on: Date.t(),
ammo_type: AmmoType.t() | nil, ammo_type: AmmoType.t() | nil,
ammo_type_id: AmmoType.id(), ammo_type_id: AmmoType.id(),
container: Container.t() | nil, container: Container.t() | nil,
@ -79,9 +81,9 @@ defmodule Cannery.Ammo.AmmoGroup do
|> change(ammo_type_id: ammo_type_id) |> change(ammo_type_id: ammo_type_id)
|> change(user_id: user_id) |> change(user_id: user_id)
|> change(container_id: container_id) |> change(container_id: container_id)
|> cast(attrs, [:count, :price_paid, :notes, :staged]) |> cast(attrs, [:count, :price_paid, :notes, :staged, :purchased_on])
|> validate_number(:count, greater_than: 0) |> validate_number(:count, greater_than: 0)
|> validate_required([:count, :staged, :ammo_type_id, :container_id, :user_id]) |> validate_required([:count, :staged, :purchased_on, :ammo_type_id, :container_id, :user_id])
end end
@doc """ @doc """
@ -99,10 +101,10 @@ defmodule Cannery.Ammo.AmmoGroup do
Changeset.t(t() | new_ammo_group()) Changeset.t(t() | new_ammo_group())
def update_changeset(ammo_group, attrs, user) do def update_changeset(ammo_group, attrs, user) do
ammo_group ammo_group
|> cast(attrs, [:count, :price_paid, :notes, :staged, :container_id]) |> cast(attrs, [:count, :price_paid, :notes, :staged, :purchased_on, :container_id])
|> validate_number(:count, greater_than_or_equal_to: 0) |> validate_number(:count, greater_than_or_equal_to: 0)
|> validate_container_id(user) |> validate_container_id(user)
|> validate_required([:count, :staged, :container_id]) |> validate_required([:count, :staged, :purchased_on, :container_id])
end end
defp validate_container_id(changeset, user) do defp validate_container_id(changeset, user) do

View File

@ -42,7 +42,7 @@
) %> ) %>
<%= error_tag(f, :notes, "col-span-3") %> <%= error_tag(f, :notes, "col-span-3") %>
<%= label(f, :date, gettext("Date (UTC)"), class: "title text-lg text-primary-600") %> <%= label(f, :date, gettext("Date"), class: "title text-lg text-primary-600") %>
<%= date_input(f, :date, <%= date_input(f, :date,
class: "input input-primary col-span-2", class: "input input-primary col-span-2",
phx_update: "ignore", phx_update: "ignore",

View File

@ -17,6 +17,7 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
preloads = if show_container, do: [:ammo_type, :container], else: [:ammo_type] preloads = if show_container, do: [:ammo_type, :container], else: [:ammo_type]
ammo_group = ammo_group |> Repo.preload(preloads) ammo_group = ammo_group |> Repo.preload(preloads)
assigns = assigns |> assign(:ammo_group, ammo_group) assigns = assigns |> assign(:ammo_group, ammo_group)
~H""" ~H"""
@ -35,9 +36,16 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
<div class="flex flex-col justify-center items-center"> <div class="flex flex-col justify-center items-center">
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Count:") %> <%= gettext("Count:") %>
<%= if @ammo_group.count == 0, do: "Empty", else: @ammo_group.count %> <%= if @ammo_group.count == 0, do: gettext("Empty"), else: @ammo_group.count %>
</span> </span>
<%= if @ammo_group |> Ammo.get_original_count() != @ammo_group.count do %>
<span class="rounded-lg title text-lg">
<%= gettext("Original Count:") %>
<%= @ammo_group |> Ammo.get_original_count() %>
</span>
<% end %>
<%= if @ammo_group.notes do %> <%= if @ammo_group.notes do %>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Notes:") %> <%= gettext("Notes:") %>
@ -46,13 +54,13 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
<% end %> <% end %>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Added on:") %> <%= gettext("Purchased on:") %>
<%= @ammo_group.inserted_at |> display_datetime() %> <%= @ammo_group.purchased_on |> display_date() %>
</span> </span>
<%= if @ammo_group.count == 0 do %> <%= if @ammo_group |> Ammo.get_last_used_shot_group() do %>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Used up on:") %> <%= gettext("Last used on:") %>
<%= @ammo_group |> Ammo.get_last_used_shot_group() |> Map.get(:date) |> display_date() %> <%= @ammo_group |> Ammo.get_last_used_shot_group() |> Map.get(:date) |> display_date() %>
</span> </span>
<% end %> <% end %>
@ -64,6 +72,13 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
amount: @ammo_group.price_paid |> :erlang.float_to_binary(decimals: 2) amount: @ammo_group.price_paid |> :erlang.float_to_binary(decimals: 2)
) %> ) %>
</span> </span>
<span class="rounded-lg title text-lg">
<%= gettext("CPR:") %>
<%= gettext("$%{amount}",
amount: @ammo_group |> Ammo.get_cpr() |> :erlang.float_to_binary(decimals: 2)
) %>
</span>
<% end %> <% end %>
<%= if @show_container and @ammo_group.container do %> <%= if @show_container and @ammo_group.container do %>

View File

@ -0,0 +1,233 @@
defmodule CanneryWeb.Components.AmmoGroupTableComponent do
@moduledoc """
A component that displays a list of ammo groups
"""
use CanneryWeb, :live_component
alias Cannery.{Accounts.User, Ammo, Ammo.AmmoGroup, Repo}
alias Ecto.UUID
alias Phoenix.LiveView.{Rendered, Socket}
@impl true
@spec update(
%{
required(:id) => UUID.t(),
required(:current_user) => User.t(),
required(:ammo_groups) => [AmmoGroup.t()],
optional(:ammo_type) => Rendered.t(),
optional(:range) => Rendered.t(),
optional(:container) => Rendered.t(),
optional(:actions) => Rendered.t(),
optional(any()) => any()
},
Socket.t()
) :: {:ok, Socket.t()}
def update(%{id: _id, ammo_groups: _ammo_group, current_user: _current_user} = assigns, socket) do
socket =
socket
|> assign(assigns)
|> assign_new(:ammo_type, fn -> [] end)
|> assign_new(:range, fn -> [] end)
|> assign_new(:container, fn -> [] end)
|> assign_new(:actions, fn -> [] end)
|> display_ammo_groups()
{:ok, socket}
end
defp display_ammo_groups(
%{
assigns: %{
ammo_groups: ammo_groups,
current_user: current_user,
ammo_type: ammo_type,
range: range,
container: container,
actions: actions
}
} = socket
) do
columns =
if actions == [] do
[]
else
[%{label: nil, key: :actions, sortable: false}]
end
columns = [
%{label: gettext("Purchased on"), key: :purchased_on},
%{label: gettext("Last used on"), key: :used_up_on} | columns
]
columns =
if container == [] do
columns
else
[%{label: gettext("Container"), key: :container} | columns]
end
columns =
if range == [] do
columns
else
[%{label: gettext("Range"), key: :range} | columns]
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}
| columns
]
columns =
if ammo_type == [] do
columns
else
[%{label: gettext("Ammo type"), key: :ammo_type} | columns]
end
rows =
ammo_groups
|> Repo.preload([:ammo_type, :container])
|> Enum.map(fn ammo_group ->
ammo_group
|> get_row_data_for_ammo_group(%{
current_user: current_user,
ammo_type: ammo_type,
columns: columns,
container: container,
actions: actions,
range: range
})
end)
socket |> assign(columns: columns, rows: rows)
end
@impl true
def render(assigns) do
~H"""
<div id={@id} class="w-full">
<.live_component
module={CanneryWeb.Components.TableComponent}
id={"table-#{@id}"}
columns={@columns}
rows={@rows}
/>
</div>
"""
end
@spec get_row_data_for_ammo_group(AmmoGroup.t(), additional_data :: map()) :: map()
defp get_row_data_for_ammo_group(ammo_group, %{columns: columns} = additional_data) do
ammo_group = ammo_group |> Repo.preload([:ammo_type, :container])
columns
|> Map.new(fn %{key: key} ->
{key, get_value_for_key(key, ammo_group, additional_data)}
end)
end
@spec get_value_for_key(atom(), AmmoGroup.t(), additional_data :: map()) ::
any() | {any(), Rendered.t()}
defp get_value_for_key(
:ammo_type,
%{ammo_type: %{name: ammo_type_name} = ammo_type},
%{ammo_type: ammo_type_block}
) do
assigns = %{ammo_type: ammo_type, ammo_type_block: ammo_type_block}
{ammo_type_name,
~H"""
<%= render_slot(@ammo_type_block, @ammo_type) %>
"""}
end
defp get_value_for_key(:price_paid, %{price_paid: nil}, _additional_data), do: {"", nil}
defp get_value_for_key(:price_paid, %{price_paid: price_paid}, _additional_data),
do: gettext("$%{amount}", amount: price_paid |> :erlang.float_to_binary(decimals: 2))
defp get_value_for_key(:purchased_on, %{purchased_on: purchased_on}, _additional_data) do
assigns = %{purchased_on: purchased_on}
{purchased_on,
~H"""
<%= @purchased_on |> display_date() %>
"""}
end
defp get_value_for_key(:used_up_on, ammo_group, _additional_data) do
last_shot_group_date =
case ammo_group |> Ammo.get_last_used_shot_group() do
%{date: last_shot_group_date} -> last_shot_group_date
_no_shot_groups -> nil
end
assigns = %{last_shot_group_date: last_shot_group_date}
{last_shot_group_date,
~H"""
<%= if @last_shot_group_date do %>
<%= @last_shot_group_date |> display_date() %>
<% else %>
<%= gettext("Never used") %>
<% end %>
"""}
end
defp get_value_for_key(:range, %{staged: staged} = ammo_group, %{range: range}) do
assigns = %{range: range, ammo_group: ammo_group}
{staged,
~H"""
<%= render_slot(@range, @ammo_group) %>
"""}
end
defp get_value_for_key(:remaining, ammo_group, _additional_data),
do: gettext("%{percentage}%", percentage: ammo_group |> Ammo.get_percentage_remaining())
defp get_value_for_key(:actions, ammo_group, %{actions: actions}) do
assigns = %{actions: actions, ammo_group: ammo_group}
~H"""
<%= render_slot(@actions, @ammo_group) %>
"""
end
defp get_value_for_key(:container, %{container: nil}, _additional_data), do: {nil, nil}
defp get_value_for_key(
:container,
%{container: %{name: container_name}} = ammo_group,
%{container: container}
) do
assigns = %{container: container, ammo_group: ammo_group}
{container_name,
~H"""
<%= render_slot(@container, @ammo_group) %>
"""}
end
defp get_value_for_key(:original_count, ammo_group, _additional_data),
do: ammo_group |> Ammo.get_original_count()
defp get_value_for_key(:cpr, %{price_paid: nil}, _additional_data),
do: gettext("No cost information")
defp get_value_for_key(:cpr, ammo_group, _additional_data) do
gettext("$%{amount}",
amount: ammo_group |> Ammo.get_cpr() |> :erlang.float_to_binary(decimals: 2)
)
end
defp get_value_for_key(:count, %{count: count}, _additional_data),
do: if(count == 0, do: gettext("Empty"), else: count)
defp get_value_for_key(key, ammo_group, _additional_data), do: ammo_group |> Map.get(key)
end

View File

@ -15,9 +15,12 @@ defmodule CanneryWeb.Components.InviteCard do
assigns = assigns |> assign_new(:code_actions, fn -> [] end) assigns = assigns |> assign_new(:code_actions, fn -> [] end)
~H""" ~H"""
<div class="mx-4 my-2 px-8 py-4 flex flex-col justify-center items-center space-y-4 <div
id={"invite-#{@invite.id}"}
class="mx-4 my-2 px-8 py-4 flex flex-col justify-center items-center space-y-4
border border-gray-400 rounded-lg shadow-lg hover:shadow-md border border-gray-400 rounded-lg shadow-lg hover:shadow-md
transition-all duration-300 ease-in-out"> transition-all duration-300 ease-in-out"
>
<h1 class="title text-xl"> <h1 class="title text-xl">
<%= @invite.name %> <%= @invite.name %>
</h1> </h1>
@ -37,10 +40,8 @@ defmodule CanneryWeb.Components.InviteCard do
<code <code
id={"code-#{@invite.id}"} id={"code-#{@invite.id}"}
class="mx-2 my-1 text-xs px-4 py-2 rounded-lg text-center break-all text-gray-100 bg-primary-800" class="mx-2 my-1 text-xs px-4 py-2 rounded-lg text-center break-all text-gray-100 bg-primary-800"
> phx-no-format
<%= Routes.user_registration_url(Endpoint, :new, invite: @invite.token) %> ><%= Routes.user_registration_url(Endpoint, :new, invite: @invite.token) %></code>
</code>
<%= render_slot(@code_actions) %> <%= render_slot(@code_actions) %>
</div> </div>

View File

@ -106,7 +106,7 @@ defmodule CanneryWeb.Components.MoveAmmoGroupComponent do
containers containers
|> Enum.map(fn container -> |> Enum.map(fn container ->
columns columns
|> Enum.into(%{}, fn %{key: key} -> {key, get_row_value_by_key(key, container, assigns)} end) |> Map.new(fn %{key: key} -> {key, get_row_value_by_key(key, container, assigns)} end)
end) end)
end end

View File

@ -21,6 +21,7 @@ defmodule CanneryWeb.Components.TableComponent do
use CanneryWeb, :live_component use CanneryWeb, :live_component
alias Phoenix.LiveView.Socket alias Phoenix.LiveView.Socket
require Integer
@impl true @impl true
@spec update( @spec update(
@ -30,6 +31,8 @@ defmodule CanneryWeb.Components.TableComponent do
required(:label) => String.t() | nil, required(:label) => String.t() | nil,
required(:key) => atom() | nil, required(:key) => atom() | nil,
optional(:class) => String.t(), optional(:class) => String.t(),
optional(:row_class) => String.t(),
optional(:alternate_row_class) => String.t(),
optional(:sortable) => false optional(:sortable) => false
}), }),
required(:rows) => required(:rows) =>
@ -57,7 +60,7 @@ defmodule CanneryWeb.Components.TableComponent do
:asc :asc
end end
rows = rows |> Enum.sort_by(fn row -> row |> Map.get(initial_key) end, initial_sort_mode) rows = rows |> sort_by_custom_sort_value_or_value(initial_key, initial_sort_mode)
socket = socket =
socket socket
@ -68,6 +71,8 @@ defmodule CanneryWeb.Components.TableComponent do
last_sort_key: initial_key, last_sort_key: initial_key,
sort_mode: initial_sort_mode sort_mode: initial_sort_mode
) )
|> assign_new(:row_class, fn -> "bg-white" end)
|> assign_new(:alternate_row_class, fn -> "bg-gray-200" end)
{:ok, socket} {:ok, socket}
end end

View File

@ -1,4 +1,4 @@
<div id={@id} class="w-full overflow-x-auto border border-gray-600 rounded-lg shadow-lg bg-black"> <div id={@id} class="w-full overflow-x-auto border border-gray-600 rounded-lg shadow-lg bg-white">
<table class="min-w-full table-auto text-center bg-white"> <table class="min-w-full table-auto text-center bg-white">
<thead class="border-b border-primary-600"> <thead class="border-b border-primary-600">
<tr> <tr>
@ -6,26 +6,27 @@
<%= if column |> Map.get(:sortable, true) do %> <%= if column |> Map.get(:sortable, true) do %>
<th class={"p-2 #{column[:class]}"}> <th class={"p-2 #{column[:class]}"}>
<span <span
class="cursor-pointer" class="cursor-pointer flex justify-center items-center space-x-2"
phx-click="sort_by" phx-click="sort_by"
phx-value-sort-key={key} phx-value-sort-key={key}
phx-target={@myself} phx-target={@myself}
> >
<span class="underline"><%= label %></span> <i class="w-0 float-right fas fa-sm fa-chevron-up opacity-0"></i>
<span class={if @last_sort_key == key, do: "underline"}><%= label %></span>
<%= if @last_sort_key == key do %> <%= if @last_sort_key == key do %>
<%= case @sort_mode do %> <%= case @sort_mode do %>
<% :asc -> %> <% :asc -> %>
<i class="fas fa-sm fa-chevron-down"></i> <i class="w-0 float-right fas fa-sm fa-chevron-down"></i>
<% :desc -> %> <% :desc -> %>
<i class="fas fa-sm fa-chevron-up"></i> <i class="w-0 float-right fas fa-sm fa-chevron-up"></i>
<% end %> <% end %>
<% else %> <% else %>
<i class="fas fa-sm fa-chevron-up opacity-0"></i> <i class="w-0 float-right fas fa-sm fa-chevron-up opacity-0"></i>
<% end %> <% end %>
</span> </span>
</th> </th>
<% else %> <% else %>
<th class={"p-2 #{column[:class]}"}> <th class={"p-2 cursor-not-allowed #{column[:class]}"}>
<%= label %> <%= label %>
</th> </th>
<% end %> <% end %>
@ -33,8 +34,8 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<%= for values <- @rows do %> <%= for {values, i} <- @rows |> Enum.with_index() do %>
<tr> <tr class={if i |> Integer.is_even(), do: @row_class, else: @alternate_row_class}>
<%= for %{key: key} = value <- @columns do %> <%= for %{key: key} = value <- @columns do %>
<td class={"p-2 #{value[:class]}"}> <td class={"p-2 #{value[:class]}"}>
<%= case values |> Map.get(key) do %> <%= case values |> Map.get(key) do %>

View File

@ -25,7 +25,9 @@ defmodule CanneryWeb.ExportController do
ammo_groups = ammo_groups =
Ammo.list_ammo_groups(current_user, true) Ammo.list_ammo_groups(current_user, true)
|> Enum.map(fn ammo_group -> |> Enum.map(fn ammo_group ->
cpr = ammo_group |> Ammo.get_cpr()
used_count = ammo_group |> Ammo.get_used_count() used_count = ammo_group |> Ammo.get_used_count()
original_count = ammo_group |> Ammo.get_original_count()
percentage_remaining = ammo_group |> Ammo.get_percentage_remaining() percentage_remaining = ammo_group |> Ammo.get_percentage_remaining()
ammo_group ammo_group
@ -33,7 +35,9 @@ defmodule CanneryWeb.ExportController do
|> Jason.decode!() |> Jason.decode!()
|> Map.merge(%{ |> Map.merge(%{
"used_count" => used_count, "used_count" => used_count,
"percentage_remaining" => percentage_remaining "percentage_remaining" => percentage_remaining,
"original_count" => original_count,
"cpr" => cpr
}) })
end) end)

View File

@ -38,6 +38,14 @@
) %> ) %>
<%= error_tag(f, :price_paid, "col-span-3 text-center") %> <%= error_tag(f, :price_paid, "col-span-3 text-center") %>
<%= label(f, :purchased_on, gettext("Purchased on"), class: "title text-lg text-primary-600") %>
<%= date_input(f, :purchased_on,
class: "input input-primary col-span-2",
phx_update: "ignore",
value: @changeset |> Changeset.get_field(:purchased_on) || Date.utc_today()
) %>
<%= error_tag(f, :purchased_on, "col-span-3 text-center") %>
<%= label(f, :notes, gettext("Notes"), class: "title text-lg text-primary-600") %> <%= label(f, :notes, gettext("Notes"), class: "title text-lg text-primary-600") %>
<%= textarea(f, :notes, <%= textarea(f, :notes,
class: "text-center col-span-2 input input-primary", class: "text-center col-span-2 input input-primary",

View File

@ -29,13 +29,13 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
defp apply_action(%{assigns: %{current_user: current_user}} = socket, :move, %{"id" => id}) do defp apply_action(%{assigns: %{current_user: current_user}} = socket, :move, %{"id" => id}) do
socket socket
|> assign(:page_title, gettext("Move Ammo group")) |> assign(:page_title, gettext("Move ammo"))
|> assign(:ammo_group, Ammo.get_ammo_group!(id, current_user)) |> assign(:ammo_group, Ammo.get_ammo_group!(id, current_user))
end end
defp apply_action(%{assigns: %{current_user: current_user}} = socket, :edit, %{"id" => id}) do defp apply_action(%{assigns: %{current_user: current_user}} = socket, :edit, %{"id" => id}) do
socket socket
|> assign(:page_title, gettext("Edit Ammo group")) |> assign(:page_title, gettext("Edit ammo"))
|> assign(:ammo_group, Ammo.get_ammo_group!(id, current_user)) |> assign(:ammo_group, Ammo.get_ammo_group!(id, current_user))
end end
@ -53,7 +53,7 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
defp apply_action(socket, :index, _params) do defp apply_action(socket, :index, _params) do
socket socket
|> assign(:page_title, gettext("Ammo groups")) |> assign(:page_title, gettext("Ammo"))
|> assign(:ammo_group, nil) |> assign(:ammo_group, nil)
end end
@ -61,7 +61,7 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
def handle_event("delete", %{"id" => id}, %{assigns: %{current_user: current_user}} = socket) do def handle_event("delete", %{"id" => id}, %{assigns: %{current_user: current_user}} = socket) do
Ammo.get_ammo_group!(id, current_user) |> Ammo.delete_ammo_group!(current_user) Ammo.get_ammo_group!(id, current_user) |> Ammo.delete_ammo_group!(current_user)
prompt = dgettext("prompts", "Ammo group deleted succesfully") prompt = dgettext("prompts", "Ammo deleted succesfully")
{:noreply, socket |> put_flash(:info, prompt) |> display_ammo_groups()} {:noreply, socket |> put_flash(:info, prompt) |> display_ammo_groups()}
end end
@ -95,183 +95,11 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
ammo_types_count = Ammo.get_ammo_types_count!(current_user) ammo_types_count = Ammo.get_ammo_types_count!(current_user)
containers_count = Containers.get_containers_count!(current_user) containers_count = Containers.get_containers_count!(current_user)
columns = [
%{label: gettext("Ammo type"), key: :ammo_type},
%{label: gettext("Count"), key: :count},
%{label: gettext("Price paid"), key: :price_paid},
%{label: gettext("% left"), key: :remaining},
%{label: gettext("Range"), key: :range},
%{label: gettext("Container"), key: :container},
%{label: gettext("Added on"), key: :added_on}
]
columns =
if show_used do
columns ++ [%{label: gettext("Used up on"), key: :used_up_on}]
else
columns
end
columns = columns ++ [%{label: nil, key: :actions, sortable: false}]
rows =
ammo_groups
|> Enum.map(fn ammo_group -> ammo_group |> get_row_data_for_ammo_group(columns) end)
socket socket
|> assign( |> assign(
ammo_groups: ammo_groups, ammo_groups: ammo_groups,
ammo_types_count: ammo_types_count, ammo_types_count: ammo_types_count,
containers_count: containers_count, containers_count: containers_count
columns: columns,
rows: rows
) )
end end
@spec get_row_data_for_ammo_group(AmmoGroup.t(), [map()]) :: [map()]
defp get_row_data_for_ammo_group(ammo_group, columns) do
ammo_group = ammo_group |> Repo.preload([:ammo_type, :container])
columns
|> Enum.into(%{}, fn %{key: key} -> {key, get_value_for_key(key, ammo_group)} end)
end
@spec get_value_for_key(atom(), AmmoGroup.t()) :: any()
defp get_value_for_key(:ammo_type, %{ammo_type: ammo_type}) do
assigns = %{ammo_type: ammo_type}
{ammo_type.name,
~H"""
<.link navigate={Routes.ammo_type_show_path(Endpoint, :show, @ammo_type)} class="link">
<%= @ammo_type.name %>
</.link>
"""}
end
defp get_value_for_key(:price_paid, %{price_paid: nil}), do: {"a", nil}
defp get_value_for_key(:price_paid, %{price_paid: price_paid}),
do: gettext("$%{amount}", amount: price_paid |> :erlang.float_to_binary(decimals: 2))
defp get_value_for_key(:added_on, %{inserted_at: inserted_at}) do
assigns = %{inserted_at: inserted_at}
{inserted_at,
~H"""
<%= @inserted_at |> display_datetime() %>
"""}
end
defp get_value_for_key(:used_up_on, ammo_group) do
last_shot_group_date =
case ammo_group |> Ammo.get_last_used_shot_group() do
%{date: last_shot_group_date} -> last_shot_group_date
_no_shot_groups -> nil
end
assigns = %{last_shot_group_date: last_shot_group_date}
{last_shot_group_date,
~H"""
<%= @last_shot_group_date |> display_date() %>
"""}
end
defp get_value_for_key(:range, %{staged: staged} = ammo_group) do
assigns = %{ammo_group: ammo_group}
{staged,
~H"""
<div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
<button
type="button"
class="mx-2 my-1 text-sm btn btn-primary"
phx-click="toggle_staged"
phx-value-ammo_group_id={@ammo_group.id}
>
<%= if @ammo_group.staged, do: gettext("Unstage"), else: gettext("Stage") %>
</button>
<.link
patch={Routes.ammo_group_index_path(Endpoint, :add_shot_group, @ammo_group)}
class="mx-2 my-1 text-sm btn btn-primary"
>
<%= dgettext("actions", "Record shots") %>
</.link>
</div>
"""}
end
defp get_value_for_key(:remaining, ammo_group),
do: gettext("%{percentage}%", percentage: ammo_group |> Ammo.get_percentage_remaining())
defp get_value_for_key(:actions, ammo_group) do
assigns = %{ammo_group: ammo_group}
~H"""
<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"
data-qa={"view-#{@ammo_group.id}"}
>
<i class="fa-fw fa-lg fas fa-eye"></i>
</.link>
<.link
patch={Routes.ammo_group_index_path(Endpoint, :edit, @ammo_group)}
class="text-primary-600 link"
data-qa={"edit-#{@ammo_group.id}"}
>
<i class="fa-fw fa-lg fas fa-edit"></i>
</.link>
<.link
patch={Routes.ammo_group_index_path(Endpoint, :clone, @ammo_group)}
class="text-primary-600 link"
data-qa={"clone-#{@ammo_group.id}"}
>
<i class="fa-fw fa-lg fas fa-copy"></i>
</.link>
<.link
href="#"
class="text-primary-600 link"
phx-click="delete"
phx-value-id={@ammo_group.id}
data-confirm={dgettext("prompts", "Are you sure you want to delete this ammo?")}
data-qa={"delete-#{@ammo_group.id}"}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
</div>
"""
end
defp get_value_for_key(:container, %{container: nil}), do: {nil, nil}
defp get_value_for_key(:container, %{container: %{name: container_name}} = ammo_group) do
assigns = %{ammo_group: ammo_group}
{container_name,
~H"""
<div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
<.link
navigate={Routes.container_show_path(Endpoint, :show, @ammo_group.container)}
class="mx-2 my-1 link"
>
<%= @ammo_group.container.name %>
</.link>
<.link
patch={Routes.ammo_group_index_path(Endpoint, :move, @ammo_group)}
class="mx-2 my-1 text-sm btn btn-primary"
>
<%= gettext("Move ammo") %>
</.link>
</div>
"""}
end
defp get_value_for_key(key, ammo_group), do: ammo_group |> Map.get(key)
end end

View File

@ -42,7 +42,7 @@
<% end %> <% end %>
<%= unless @ammo_groups |> Enum.empty?() do %> <%= unless @ammo_groups |> Enum.empty?() do %>
<div class="flex flex-col justify-center items-center"> <div class="flex flex-col space-y-4 justify-center items-center">
<.toggle_button action="toggle_show_used" value={@show_used}> <.toggle_button action="toggle_show_used" value={@show_used}>
<span class="title text-lg text-primary-600"> <span class="title text-lg text-primary-600">
<%= gettext("Show used") %> <%= gettext("Show used") %>
@ -51,12 +51,91 @@
</div> </div>
<.live_component <.live_component
module={CanneryWeb.Components.TableComponent} module={CanneryWeb.Components.AmmoGroupTableComponent}
id="ammo_groups_index_table" id="ammo-group-index-table"
action={@live_action} ammo_groups={@ammo_groups}
columns={@columns} current_user={@current_user}
rows={@rows} >
/> <:ammo_type :let={%{name: ammo_type_name} = ammo_type}>
<.link navigate={Routes.ammo_type_show_path(Endpoint, :show, ammo_type)} class="link">
<%= ammo_type_name %>
</.link>
</:ammo_type>
<:range :let={ammo_group}>
<div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
<button
type="button"
class="mx-2 my-1 text-sm btn btn-primary"
phx-click="toggle_staged"
phx-value-ammo_group_id={ammo_group.id}
>
<%= if ammo_group.staged, do: gettext("Unstage"), else: gettext("Stage") %>
</button>
<.link
patch={Routes.ammo_group_index_path(Endpoint, :add_shot_group, ammo_group)}
class="mx-2 my-1 text-sm btn btn-primary"
>
<%= dgettext("actions", "Record shots") %>
</.link>
</div>
</:range>
<:container :let={%{container: %{name: container_name} = container} = ammo_group}>
<div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
<.link
navigate={Routes.container_show_path(Endpoint, :show, container)}
class="mx-2 my-1 link"
>
<%= container_name %>
</.link>
<.link
patch={Routes.ammo_group_index_path(Endpoint, :move, ammo_group)}
class="mx-2 my-1 text-sm btn btn-primary"
>
<%= gettext("Move ammo") %>
</.link>
</div>
</:container>
<:actions :let={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"
data-qa={"view-#{ammo_group.id}"}
>
<i class="fa-fw fa-lg fas fa-eye"></i>
</.link>
<.link
patch={Routes.ammo_group_index_path(Endpoint, :edit, ammo_group)}
class="text-primary-600 link"
data-qa={"edit-#{ammo_group.id}"}
>
<i class="fa-fw fa-lg fas fa-edit"></i>
</.link>
<.link
patch={Routes.ammo_group_index_path(Endpoint, :clone, ammo_group)}
class="text-primary-600 link"
data-qa={"clone-#{ammo_group.id}"}
>
<i class="fa-fw fa-lg fas fa-copy"></i>
</.link>
<.link
href="#"
class="text-primary-600 link"
phx-click="delete"
phx-value-id={ammo_group.id}
data-confirm={dgettext("prompts", "Are you sure you want to delete this ammo?")}
data-qa={"delete-#{ammo_group.id}"}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
</div>
</:actions>
</.live_component>
<% end %> <% end %>
</div> </div>

View File

@ -30,7 +30,12 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
@impl true @impl true
def handle_params(%{"id" => id}, _url, %{assigns: %{live_action: live_action}} = socket) do def handle_params(%{"id" => id}, _url, %{assigns: %{live_action: live_action}} = socket) do
{:noreply, socket |> assign(page_title: page_title(live_action)) |> display_ammo_group(id)} socket =
socket
|> assign(page_title: page_title(live_action))
|> display_ammo_group(id)
{:noreply, socket}
end end
defp page_title(:add_shot_group), do: gettext("Record Shots") defp page_title(:add_shot_group), do: gettext("Record Shots")
@ -69,14 +74,14 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
def handle_event( def handle_event(
"delete_shot_group", "delete_shot_group",
%{"id" => id}, %{"id" => id},
%{assigns: %{ammo_group: ammo_group, current_user: current_user}} = socket %{assigns: %{ammo_group: %{id: ammo_group_id}, current_user: current_user}} = socket
) do ) do
{:ok, _} = {:ok, _} =
ActivityLog.get_shot_group!(id, current_user) ActivityLog.get_shot_group!(id, current_user)
|> ActivityLog.delete_shot_group(current_user) |> ActivityLog.delete_shot_group(current_user)
prompt = dgettext("prompts", "Shot records deleted succesfully") prompt = dgettext("prompts", "Shot records deleted succesfully")
{:noreply, socket |> put_flash(:info, prompt) |> display_ammo_group(ammo_group)} {:noreply, socket |> put_flash(:info, prompt) |> display_ammo_group(ammo_group_id)}
end end
@spec display_ammo_group(Socket.t(), AmmoGroup.t() | AmmoGroup.id()) :: Socket.t() @spec display_ammo_group(Socket.t(), AmmoGroup.t() | AmmoGroup.id()) :: Socket.t()
@ -102,12 +107,12 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
defp display_ammo_group(%{assigns: %{current_user: current_user}} = socket, id), defp display_ammo_group(%{assigns: %{current_user: current_user}} = socket, id),
do: display_ammo_group(socket, Ammo.get_ammo_group!(id, current_user)) do: display_ammo_group(socket, Ammo.get_ammo_group!(id, current_user))
@spec get_table_row_for_shot_group(AmmoGroup.t(), ShotGroup.t(), [map()]) :: [map()] @spec get_table_row_for_shot_group(AmmoGroup.t(), ShotGroup.t(), [map()]) :: map()
defp get_table_row_for_shot_group(ammo_group, %{date: date} = shot_group, columns) do defp get_table_row_for_shot_group(ammo_group, %{date: date} = shot_group, columns) do
assigns = %{ammo_group: ammo_group, shot_group: shot_group} assigns = %{ammo_group: ammo_group, shot_group: shot_group}
columns columns
|> Enum.into(%{}, fn %{key: key} -> |> Map.new(fn %{key: key} ->
value = value =
case key do case key do
:date -> :date ->

View File

@ -11,7 +11,7 @@
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Original count:") %> <%= gettext("Original count:") %>
<%= @ammo_group.count + Ammo.get_used_count(@ammo_group) %> <%= Ammo.get_original_count(@ammo_group) %>
</span> </span>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
@ -27,8 +27,8 @@
<% end %> <% end %>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Added on:") %> <%= gettext("Purchased on:") %>
<%= @ammo_group.inserted_at |> display_datetime() %> <%= @ammo_group.purchased_on |> display_date() %>
</span> </span>
<%= if @ammo_group.price_paid do %> <%= if @ammo_group.price_paid do %>

View File

@ -134,7 +134,7 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
end end
) )
|> Kernel.++([ |> Kernel.++([
%{label: gettext("Average Price paid"), key: :avg_price_paid, type: :avg_price_paid}, %{label: gettext("Average CPR"), key: :avg_price_paid, type: :avg_price_paid},
%{label: nil, key: "actions", type: :actions, sortable: false} %{label: nil, key: "actions", type: :actions, sortable: false}
]) ])
@ -147,7 +147,7 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
defp get_ammo_type_values(ammo_type, columns, current_user) do defp get_ammo_type_values(ammo_type, columns, current_user) do
columns columns
|> Enum.into(%{}, fn %{key: key, type: type} -> |> Map.new(fn %{key: key, type: type} ->
{key, get_ammo_type_value(type, key, ammo_type, current_user)} {key, get_ammo_type_value(type, key, ammo_type, current_user)}
end) end)
end end

View File

@ -5,7 +5,7 @@
<%= if @rows |> Enum.empty?() do %> <%= if @rows |> Enum.empty?() do %>
<h2 class="title text-xl text-primary-600"> <h2 class="title text-xl text-primary-600">
<%= gettext("No Ammo Types") %> <%= gettext("No Ammo types") %>
<%= display_emoji("😔") %> <%= display_emoji("😔") %>
</h2> </h2>

View File

@ -5,16 +5,43 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
use CanneryWeb, :live_view use CanneryWeb, :live_view
import CanneryWeb.Components.AmmoGroupCard import CanneryWeb.Components.AmmoGroupCard
alias Cannery.Ammo alias Cannery.{Ammo, Ammo.AmmoType}
alias CanneryWeb.Endpoint alias CanneryWeb.Endpoint
@impl true @fields_list [
def mount(_params, _session, socket), do: {:ok, socket |> assign(show_used: false)} %{label: gettext("Bullet type:"), key: :bullet_type, type: :string},
%{label: gettext("Bullet core:"), key: :bullet_core, type: :string},
%{label: gettext("Cartridge:"), key: :cartridge, type: :string},
%{label: gettext("Caliber:"), key: :caliber, type: :string},
%{label: gettext("Case material:"), key: :case_material, type: :string},
%{label: gettext("Jacket type:"), key: :jacket_type, type: :string},
%{label: gettext("Muzzle velocity:"), key: :muzzle_velocity, type: :string},
%{label: gettext("Powder type:"), key: :powder_type, type: :string},
%{label: gettext("Powder grains per charge:"), key: :powder_grains_per_charge, type: :string},
%{label: gettext("Grains:"), key: :grains, type: :string},
%{label: gettext("Pressure:"), key: :pressure, type: :string},
%{label: gettext("Primer type:"), key: :primer_type, type: :string},
%{label: gettext("Firing type:"), key: :firing_type, type: :string},
%{label: gettext("Tracer:"), key: :tracer, type: :boolean},
%{label: gettext("Incendiary:"), key: :incendiary, type: :boolean},
%{label: gettext("Blank:"), key: :blank, type: :boolean},
%{label: gettext("Corrosive:"), key: :corrosive, type: :boolean},
%{label: gettext("Manufacturer:"), key: :manufacturer, type: :string},
%{label: gettext("UPC:"), key: :upc, type: :string}
]
@impl true @impl true
def handle_params(%{"id" => id}, _params, %{assigns: %{current_user: current_user}} = socket) do def mount(_params, _session, %{assigns: %{live_action: live_action}} = socket),
ammo_type = Ammo.get_ammo_type!(id, current_user) do: {:ok, socket |> assign(show_used: false, view_table: live_action == :table)}
{:noreply, socket |> display_ammo_type(ammo_type)}
@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}
end end
@impl true @impl true
@ -36,29 +63,59 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_type()} {:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_type()}
end end
@impl true
def handle_event(
"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)}
end
defp display_ammo_type( defp display_ammo_type(
%{ %{assigns: %{live_action: live_action, current_user: current_user, show_used: show_used}} =
assigns: %{ socket,
live_action: live_action, %AmmoType{} = ammo_type
current_user: current_user,
show_used: show_used
}
} = socket,
ammo_type
) do ) do
fields_to_display =
@fields_list
|> Enum.any?(fn %{key: field, type: type} ->
default_value =
case type do
:boolean -> false
_other_type -> nil
end
ammo_type |> Map.get(field) != default_value
end)
socket socket
|> assign( |> assign(
page_title: page_title(live_action), page_title: page_title(live_action, ammo_type),
ammo_type: ammo_type, ammo_type: ammo_type,
ammo_groups: ammo_type |> Ammo.list_ammo_groups_for_type(current_user, show_used), ammo_groups: ammo_type |> Ammo.list_ammo_groups_for_type(current_user, show_used),
avg_cost_per_round: ammo_type |> Ammo.get_average_cost_for_ammo_type!(current_user) avg_cost_per_round: ammo_type |> Ammo.get_average_cost_for_ammo_type!(current_user),
fields_list: @fields_list,
fields_to_display: fields_to_display
) )
end end
defp display_ammo_type(%{assigns: %{current_user: current_user}} = socket, ammo_type_id) do
socket |> display_ammo_type(Ammo.get_ammo_type!(ammo_type_id, current_user))
end
defp display_ammo_type(%{assigns: %{ammo_type: ammo_type}} = socket) do defp display_ammo_type(%{assigns: %{ammo_type: ammo_type}} = socket) do
socket |> display_ammo_type(ammo_type) socket |> display_ammo_type(ammo_type)
end end
defp page_title(:show), do: gettext("Show Ammo type") defp page_title(action, %{name: ammo_type_name}) when action in [:show, :table],
defp page_title(:edit), do: gettext("Edit Ammo type") 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 end

View File

@ -39,44 +39,30 @@
<hr class="hr" /> <hr class="hr" />
<div class="grid sm:grid-cols-2 gap-4 text-center justify-center items-center"> <%= if @fields_to_display do %>
<%= for {field_name, field, type} <- [ <div class="grid sm:grid-cols-2 gap-4 text-center justify-center items-center">
{gettext("Bullet type"), :bullet_type, :string}, <%= for %{label: label, key: key, type: type} <- @fields_list do %>
{gettext("Bullet core"), :bullet_core, :string}, <%= if @ammo_type |> Map.get(key) do %>
{gettext("Cartridge"), :cartridge, :string}, <h3 class="title text-lg">
{gettext("Caliber"), :caliber, :string}, <%= label %>
{gettext("Case material"), :case_material, :string}, </h3>
{gettext("Jacket type"), :jacket_type, :string},
{gettext("Muzzle velocity"), :muzzle_velocity, :string},
{gettext("Powder type"), :powder_type, :string},
{gettext("Powder grains per charge"), :powder_grains_per_charge, :string},
{gettext("Grains"), :grains, :string},
{gettext("Pressure"), :pressure, :string},
{gettext("Primer type"), :primer_type, :string},
{gettext("Firing type"), :firing_type, :string},
{gettext("Tracer"), :tracer, :boolean},
{gettext("Incendiary"), :incendiary, :boolean},
{gettext("Blank"), :blank, :boolean},
{gettext("Corrosive"), :corrosive, :boolean},
{gettext("Manufacturer"), :manufacturer, :string},
{gettext("UPC"), :upc, :string}
] do %>
<%= if @ammo_type |> Map.get(field) do %>
<h3 class="title text-lg">
<%= field_name %>:
</h3>
<span class="text-primary-600"> <span class="text-primary-600">
<%= case type do %> <%= case type do %>
<% :boolean -> %> <% :boolean -> %>
<%= @ammo_type |> Map.get(field) |> humanize() %> <%= @ammo_type |> Map.get(key) |> humanize() %>
<% _ -> %> <% _ -> %>
<%= @ammo_type |> Map.get(field) %> <%= @ammo_type |> Map.get(key) %>
<% end %> <% end %>
</span> </span>
<% end %>
<% end %> <% end %>
<% end %> </div>
<hr class="hr" />
<% end %>
<div class="grid sm:grid-cols-2 gap-4 text-center justify-center items-center">
<h3 class="title text-lg"> <h3 class="title text-lg">
<%= gettext("Rounds:") %> <%= gettext("Rounds:") %>
</h3> </h3>
@ -100,7 +86,11 @@
<span class="text-primary-600"> <span class="text-primary-600">
<%= @ammo_type |> Ammo.get_historical_count_for_ammo_type(@current_user) %> <%= @ammo_type |> Ammo.get_historical_count_for_ammo_type(@current_user) %>
</span> </span>
</div>
<hr class="hr" />
<div class="grid sm:grid-cols-2 gap-4 text-center justify-center items-center">
<h3 class="title text-lg"> <h3 class="title text-lg">
<%= gettext("Packs:") %> <%= gettext("Packs:") %>
</h3> </h3>
@ -124,7 +114,11 @@
<span class="text-primary-600"> <span class="text-primary-600">
<%= @ammo_type |> Ammo.get_ammo_groups_count_for_type(@current_user, true) %> <%= @ammo_type |> Ammo.get_ammo_groups_count_for_type(@current_user, true) %>
</span> </span>
</div>
<hr class="hr" />
<div class="grid sm:grid-cols-2 gap-4 text-center justify-center items-center">
<h3 class="title text-lg"> <h3 class="title text-lg">
<%= gettext("Added on:") %> <%= gettext("Added on:") %>
</h3> </h3>
@ -135,7 +129,7 @@
<%= if @avg_cost_per_round do %> <%= if @avg_cost_per_round do %>
<h3 class="title text-lg"> <h3 class="title text-lg">
<%= gettext("Average Price paid") %>: <%= gettext("Average CPR") %>:
</h3> </h3>
<span class="text-primary-600"> <span class="text-primary-600">
@ -152,26 +146,50 @@
<hr class="hr" /> <hr class="hr" />
<div class="flex flex-col justify-center items-center"> <div class="flex justify-center items-center space-x-4">
<.toggle_button action="toggle_show_used" value={@show_used}> <.toggle_button action="toggle_show_used" value={@show_used}>
<span class="title text-lg text-primary-600"> <span class="title text-lg text-primary-600">
<%= gettext("Show used") %> <%= gettext("Show used") %>
</span> </span>
</.toggle_button> </.toggle_button>
<.toggle_button action="toggle_table" value={@view_table}>
<span class="title text-lg text-primary-600">
<%= gettext("View as table") %>
</span>
</.toggle_button>
</div> </div>
<div> <div class="w-full p-4">
<%= if @ammo_groups |> Enum.empty?() do %> <%= if @ammo_groups |> Enum.empty?() do %>
<h2 class="mx-8 my-4 title text-lg text-primary-600"> <h2 class="px-4 title text-lg text-primary-600">
<%= gettext("No ammo for this type") %> <%= gettext("No ammo for this type") %>
<%= display_emoji("😔") %> <%= display_emoji("😔") %>
</h2> </h2>
<% else %> <% else %>
<div class="flex flex-wrap justify-center items-center"> <%= if @view_table do %>
<%= for ammo_group <- @ammo_groups do %> <.live_component
<.ammo_group_card ammo_group={ammo_group} show_container={true} /> module={CanneryWeb.Components.AmmoGroupTableComponent}
<% end %> id="ammo-type-show-table"
</div> ammo_groups={@ammo_groups}
current_user={@current_user}
>
<:container :let={%{container: %{name: container_name} = container}}>
<.link
navigate={Routes.container_show_path(Endpoint, :show, container)}
class="mx-2 my-1 link"
>
<%= container_name %>
</.link>
</:container>
</.live_component>
<% else %>
<div class="flex flex-wrap justify-center items-center">
<%= for ammo_group <- @ammo_groups do %>
<.ammo_group_card ammo_group={ammo_group} show_container={true} />
<% end %>
</div>
<% end %>
<% end %> <% end %>
</div> </div>
</div> </div>

View File

@ -153,15 +153,28 @@ defmodule CanneryWeb.ContainerLive.Index do
) )
end end
@spec get_row_data_for_container(Container.t(), [map()]) :: [map()] @spec get_row_data_for_container(Container.t(), [map()]) :: map()
defp get_row_data_for_container(container, columns) do defp get_row_data_for_container(container, columns) do
container = container |> Repo.preload([:ammo_groups, :tags]) container = container |> Repo.preload([:ammo_groups, :tags])
columns columns
|> Enum.into(%{}, fn %{key: key} -> {key, get_value_for_key(key, container)} end) |> Map.new(fn %{key: key} -> {key, get_value_for_key(key, container)} end)
end end
@spec get_value_for_key(atom(), Container.t()) :: any() @spec get_value_for_key(atom(), Container.t()) :: any()
defp get_value_for_key(:name, %{id: id, name: container_name}) do
assigns = %{id: id, container_name: container_name}
{container_name,
~H"""
<div class="flex flex-wrap justify-center items-center">
<.link navigate={Routes.container_show_path(Endpoint, :show, @id)} class="link">
<%= @container_name %>
</.link>
</div>
"""}
end
defp get_value_for_key(:packs, container) do defp get_value_for_key(:packs, container) do
container |> Containers.get_container_ammo_group_count!() container |> Containers.get_container_ammo_group_count!()
end end

View File

@ -26,7 +26,7 @@
</div> </div>
<% end %> <% end %>
<div class="max-w-full flex flex-row flex-wrap justify-center items-center"> <div class="w-full flex flex-row flex-wrap justify-center items-center">
<%= if @view_table do %> <%= if @view_table do %>
<.live_component <.live_component
module={CanneryWeb.Components.TableComponent} module={CanneryWeb.Components.TableComponent}

View File

@ -11,15 +11,21 @@ defmodule CanneryWeb.ContainerLive.Show do
alias Phoenix.LiveView.Socket alias Phoenix.LiveView.Socket
@impl true @impl true
def mount(_params, _session, socket), do: {:ok, socket |> assign(show_used: false)} def mount(_params, _session, %{assigns: %{live_action: live_action}} = socket),
do: {:ok, socket |> assign(show_used: false, view_table: live_action == :table)}
@impl true @impl true
def handle_params( def handle_params(
%{"id" => id}, %{"id" => id},
_session, _session,
%{assigns: %{current_user: current_user}} = socket %{assigns: %{current_user: current_user, live_action: live_action}} = socket
) do ) do
{:noreply, socket |> render_container(id, current_user)} socket =
socket
|> assign(view_table: live_action == :table)
|> render_container(id, current_user)
{:noreply, socket}
end end
@impl true @impl true
@ -87,6 +93,20 @@ defmodule CanneryWeb.ContainerLive.Show do
{:noreply, socket |> assign(:show_used, !show_used) |> render_container()} {:noreply, socket |> assign(:show_used, !show_used) |> render_container()}
end end
@impl true
def handle_event(
"toggle_table",
_params,
%{assigns: %{view_table: view_table, container: container}} = socket
) do
new_path =
if view_table,
do: Routes.container_show_path(Endpoint, :show, container),
else: Routes.container_show_path(Endpoint, :table, container)
{:noreply, socket |> push_patch(to: new_path)}
end
@spec render_container(Socket.t(), Container.id(), User.t()) :: Socket.t() @spec render_container(Socket.t(), Container.id(), User.t()) :: Socket.t()
defp render_container( defp render_container(
%{assigns: %{live_action: live_action, show_used: show_used}} = socket, %{assigns: %{live_action: live_action, show_used: show_used}} = socket,
@ -102,7 +122,7 @@ defmodule CanneryWeb.ContainerLive.Show do
page_title = page_title =
case live_action do case live_action do
:show -> gettext("Show %{name}", name: container_name) action when action in [:show, :table] -> container_name
:edit -> gettext("Edit %{name}", name: container_name) :edit -> gettext("Edit %{name}", name: container_name)
:edit_tags -> gettext("Edit %{name} tags", name: container_name) :edit_tags -> gettext("Edit %{name} tags", name: container_name)
end end

View File

@ -24,12 +24,20 @@
<%= unless @ammo_groups |> Enum.empty?() do %> <%= unless @ammo_groups |> Enum.empty?() do %>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Packs:") %> <%= if @show_used do %>
<%= gettext("Total packs:") %>
<% else %>
<%= gettext("Packs:") %>
<% end %>
<%= Enum.count(@ammo_groups) %> <%= Enum.count(@ammo_groups) %>
</span> </span>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Rounds:") %> <%= if @show_used do %>
<%= gettext("Total rounds:") %>
<% else %>
<%= gettext("Rounds:") %>
<% end %>
<%= @container |> Containers.get_container_rounds!() %> <%= @container |> Containers.get_container_rounds!() %>
</span> </span>
<% end %> <% end %>
@ -91,25 +99,46 @@
<hr class="mb-4 hr" /> <hr class="mb-4 hr" />
<div class="flex flex-col justify-center items-center"> <div class="flex justify-center items-center space-x-4">
<.toggle_button action="toggle_show_used" value={@show_used}> <.toggle_button action="toggle_show_used" value={@show_used}>
<span class="title text-lg text-primary-600"> <span class="title text-lg text-primary-600">
<%= dgettext("actions", "Show used") %> <%= gettext("Show used") %>
</span>
</.toggle_button>
<.toggle_button action="toggle_table" value={@view_table}>
<span class="title text-lg text-primary-600">
<%= gettext("View as table") %>
</span> </span>
</.toggle_button> </.toggle_button>
</div> </div>
<div> <div class="w-full p-4">
<%= if @ammo_groups |> Enum.empty?() do %> <%= if @ammo_groups |> Enum.empty?() do %>
<h2 class="mx-8 my-4 title text-lg text-primary-600"> <h2 class="mx-4 title text-lg text-primary-600 text-center">
<%= gettext("No ammo in this container") %> <%= gettext("No ammo in this container") %>
</h2> </h2>
<% else %> <% else %>
<div class="flex flex-wrap justify-center items-center"> <%= if @view_table do %>
<%= for ammo_group <- @ammo_groups do %> <.live_component
<.ammo_group_card ammo_group={ammo_group} /> module={CanneryWeb.Components.AmmoGroupTableComponent}
<% end %> id="ammo-type-show-table"
</div> ammo_groups={@ammo_groups}
current_user={@current_user}
>
<:ammo_type :let={%{name: ammo_type_name} = ammo_type}>
<.link navigate={Routes.ammo_type_show_path(Endpoint, :show, ammo_type)} class="link">
<%= ammo_type_name %>
</.link>
</:ammo_type>
</.live_component>
<% else %>
<div class="flex flex-wrap justify-center items-center">
<%= for ammo_group <- @ammo_groups do %>
<.ammo_group_card ammo_group={ammo_group} />
<% end %>
</div>
<% end %>
<% end %> <% end %>
</div> </div>
</div> </div>

View File

@ -7,32 +7,15 @@ defmodule CanneryWeb.HomeLive do
alias Cannery.Accounts alias Cannery.Accounts
alias CanneryWeb.Endpoint alias CanneryWeb.Endpoint
@version Mix.Project.config()[:version]
@impl true @impl true
def mount(_params, _session, socket) do def mount(_params, _session, socket) do
admins = Accounts.list_users_by_role(:admin) admins = Accounts.list_users_by_role(:admin)
socket = socket |> assign(page_title: "Home", query: "", results: %{}, admins: admins) socket = socket |> assign(page_title: gettext("Home"), admins: admins, version: @version)
{:ok, socket} {:ok, socket}
end end
@impl true
def handle_event("suggest", %{"q" => query}, socket) do
{:noreply, socket |> assign(results: search(query), query: query)}
end
@impl true
def handle_event("search", %{"q" => query}, socket) do
case search(query) do
%{^query => vsn} ->
{:noreply, redirect(socket, external: "https://hexdocs.pm/#{query}/#{vsn}")}
_no_query ->
{:noreply,
socket
|> put_flash(:error, "No dependencies found matching \"#{query}\"")
|> assign(results: %{}, query: query)}
end
end
@impl true @impl true
def render(assigns) do def render(assigns) do
~H""" ~H"""
@ -138,7 +121,9 @@ defmodule CanneryWeb.HomeLive do
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> >
<p>0.6.0</p> <p>
<%= @version %>
</p>
<i class="fas fa-md fa-info-circle"></i> <i class="fas fa-md fa-info-circle"></i>
</.link> </.link>
</li> </li>
@ -188,16 +173,4 @@ defmodule CanneryWeb.HomeLive do
</div> </div>
""" """
end end
defp search(query) do
if not CanneryWeb.Endpoint.config(:code_reloader) do
raise "action disabled when not in development"
end
for {app, desc, vsn} <- Application.started_applications(),
app = to_string(app),
String.starts_with?(app, query) and not List.starts_with?(desc, ~c"ERTS"),
into: %{},
do: {app, vsn}
end
end end

View File

@ -72,10 +72,57 @@ defmodule CanneryWeb.LiveHelpers do
""" """
end end
def hide_modal(js \\ %JS{}) do defp hide_modal(js \\ %JS{}) do
js js
|> JS.hide(to: "#modal", transition: "fade-out") |> JS.hide(to: "#modal", transition: "fade-out")
|> JS.hide(to: "#modal-bg", transition: "fade-out") |> JS.hide(to: "#modal-bg", transition: "fade-out")
|> JS.hide(to: "#modal-content", transition: "fade-out-scale") |> JS.hide(to: "#modal-content", transition: "fade-out-scale")
end end
@doc """
A toggle button element that can be directed to a liveview or a
live_component's `handle_event/3`.
## Examples
<.toggle_button action="my_liveview_action" value={@some_value}>
<span>Toggle me!</span>
</.toggle_button>
<.toggle_button action="my_live_component_action" target={@myself} value={@some_value}>
<span>Whatever you want</span>
</.toggle_button>
"""
def toggle_button(assigns) do
assigns = assigns |> assign_new(:id, fn -> assigns.action end)
~H"""
<label for={@id} class="inline-flex relative items-center cursor-pointer">
<input
id={@id}
type="checkbox"
value={@value}
checked={@value}
class="sr-only peer"
data-qa={@id}
{
if assigns |> Map.has_key?(:target),
do: %{"phx-click" => @action, "phx-value-value" => @value, "phx-target" => @target},
else: %{"phx-click" => @action, "phx-value-value" => @value}
}
/>
<div class="w-11 h-6 bg-gray-300 rounded-full peer
peer-focus:ring-4 peer-focus:ring-teal-300 dark:peer-focus:ring-teal-800
peer-checked:bg-gray-600
peer-checked:after:translate-x-full peer-checked:after:border-white
after:content-[''] after:absolute after:top-1 after:left-[2px] after:bg-white after:border-gray-300
after:border after:rounded-full after:h-5 after:w-5
after:transition-all after:duration-250 after:ease-in-out
transition-colors duration-250 ease-in-out">
</div>
<span class="ml-3 text-sm font-medium text-gray-900 dark:text-gray-300">
<%= render_slot(@inner_block) %>
</span>
</label>
"""
end
end end

View File

@ -33,7 +33,7 @@
) %> ) %>
<%= error_tag(f, :notes, "col-span-3") %> <%= error_tag(f, :notes, "col-span-3") %>
<%= label(f, :date, gettext("Date (UTC)"), class: "title text-lg text-primary-600") %> <%= label(f, :date, gettext("Date"), class: "title text-lg text-primary-600") %>
<%= date_input(f, :date, class: "input input-primary col-span-2") %> <%= date_input(f, :date, class: "input input-primary col-span-2") %>
<%= error_tag(f, :notes, "col-span-3") %> <%= error_tag(f, :notes, "col-span-3") %>

View File

@ -88,13 +88,7 @@ defmodule CanneryWeb.RangeLive.Index do
shot_groups shot_groups
|> Enum.map(fn shot_group -> shot_group |> get_row_data_for_shot_group(columns) end) |> Enum.map(fn shot_group -> shot_group |> get_row_data_for_shot_group(columns) end)
chart_data = chart_data = shot_groups |> get_chart_data_for_shot_group()
shot_groups
|> Enum.map(fn shot_group ->
shot_group
|> get_chart_data_for_shot_group([:name, :count, :notes, :date])
end)
|> Enum.sort_by(fn %{date: date} -> date end, Date)
socket socket
|> assign( |> assign(
@ -106,40 +100,21 @@ defmodule CanneryWeb.RangeLive.Index do
) )
end end
@spec get_chart_data_for_shot_group(ShotGroup.t(), keys :: [atom()]) :: map() @spec get_chart_data_for_shot_group([ShotGroup.t()]) :: [map()]
defp get_chart_data_for_shot_group(shot_group, keys) do defp get_chart_data_for_shot_group(shot_groups) do
shot_group = shot_group |> Repo.preload(ammo_group: :ammo_type) shot_groups
|> Repo.preload(ammo_group: :ammo_type)
|> Enum.group_by(fn %{date: date} -> date end, fn %{count: count} -> count end)
|> Enum.map(fn {date, rounds} ->
sum = Enum.sum(rounds)
labels = %{
if shot_group.notes do date: date,
[gettext("Notes: %{notes}", notes: shot_group.notes)] count: sum,
else label: gettext("Rounds shot: %{count}", count: sum)
[] }
end
labels = [
gettext(
"Name: %{name}",
name: shot_group.ammo_group.ammo_type.name
),
gettext(
"Rounds shot: %{count}",
count: shot_group.count
)
| labels
]
keys
|> Map.new(fn key ->
value =
case key do
:name -> shot_group.ammo_group.ammo_type.name
key -> shot_group |> Map.get(key)
end
{key, value}
end) end)
|> Map.put(:labels, labels) |> Enum.sort_by(fn %{date: date} -> date end)
end end
@spec get_row_data_for_shot_group(ShotGroup.t(), [map()]) :: map() @spec get_row_data_for_shot_group(ShotGroup.t(), [map()]) :: map()

View File

@ -59,9 +59,9 @@
phx-update="ignore" phx-update="ignore"
class="max-h-72" class="max-h-72"
data-chart-data={Jason.encode!(@chart_data)} data-chart-data={Jason.encode!(@chart_data)}
data-label={gettext("Rounds fired")} data-label={gettext("Rounds shot")}
data-color={random_color()} data-color={random_color()}
aria-label={gettext("Rounds fired chart")} aria-label={gettext("Rounds shot chart")}
role="img" role="img"
> >
<%= dgettext("errors", "Your browser does not support the canvas element.") %> <%= dgettext("errors", "Your browser does not support the canvas element.") %>

View File

@ -71,8 +71,9 @@ defmodule CanneryWeb.Router do
live "/catalog/:id/clone", AmmoTypeLive.Index, :clone live "/catalog/:id/clone", AmmoTypeLive.Index, :clone
live "/catalog/:id/edit", AmmoTypeLive.Index, :edit live "/catalog/:id/edit", AmmoTypeLive.Index, :edit
live "/catalog/:id", AmmoTypeLive.Show, :show live "/catalog/:id/show", AmmoTypeLive.Show, :show
live "/catalog/:id/show/edit", AmmoTypeLive.Show, :edit live "/catalog/:id/show/edit", AmmoTypeLive.Show, :edit
live "/catalog/:id/show/table", AmmoTypeLive.Show, :table
live "/containers", ContainerLive.Index, :index live "/containers", ContainerLive.Index, :index
live "/containers/table", ContainerLive.Index, :table live "/containers/table", ContainerLive.Index, :table
@ -81,7 +82,8 @@ defmodule CanneryWeb.Router do
live "/containers/:id/clone", ContainerLive.Index, :clone live "/containers/:id/clone", ContainerLive.Index, :clone
live "/containers/:id/edit_tags", ContainerLive.Index, :edit_tags live "/containers/:id/edit_tags", ContainerLive.Index, :edit_tags
live "/containers/:id", ContainerLive.Show, :show live "/containers/:id/show", ContainerLive.Show, :show
live "/containers/:id/show/table", ContainerLive.Show, :table
live "/containers/:id/show/edit", ContainerLive.Show, :edit live "/containers/:id/show/edit", ContainerLive.Show, :edit
live "/containers/:id/show/edit_tags", ContainerLive.Show, :edit_tags live "/containers/:id/show/edit_tags", ContainerLive.Show, :edit_tags
@ -92,7 +94,7 @@ defmodule CanneryWeb.Router do
live "/ammo/:id/add_shot_group", AmmoGroupLive.Index, :add_shot_group live "/ammo/:id/add_shot_group", AmmoGroupLive.Index, :add_shot_group
live "/ammo/:id/move", AmmoGroupLive.Index, :move live "/ammo/:id/move", AmmoGroupLive.Index, :move
live "/ammo/:id", AmmoGroupLive.Show, :show live "/ammo/:id/show", AmmoGroupLive.Show, :show
live "/ammo/:id/show/edit", AmmoGroupLive.Show, :edit live "/ammo/:id/show/edit", AmmoGroupLive.Show, :edit
live "/ammo/:id/show/add_shot_group", AmmoGroupLive.Show, :add_shot_group live "/ammo/:id/show/add_shot_group", AmmoGroupLive.Show, :add_shot_group
live "/ammo/:id/show/move", AmmoGroupLive.Show, :move live "/ammo/:id/show/move", AmmoGroupLive.Show, :move

View File

@ -76,46 +76,6 @@ defmodule CanneryWeb.ViewHelpers do
def display_emoji(other_emoji), do: other_emoji def display_emoji(other_emoji), do: other_emoji
@doc """
A toggle button element that can be directed to a liveview or a
live_component's `handle_event/3`.
## Examples
<.toggle_button action="my_liveview_action" value={@some_value}>
<span>Toggle me!</span>
</.toggle_button>
<.toggle_button action="my_live_component_action" target={@myself} value={@some_value}>
<span>Whatever you want</span>
</.toggle_button>
"""
def toggle_button(assigns) do
assigns = assigns |> assign_new(:id, fn -> assigns.action end)
~H"""
<label for={@id} class="inline-flex relative items-center cursor-pointer">
<input
id={@id}
type="checkbox"
value={@value}
checked={@value}
class="sr-only peer"
data-qa={@id}
{
if assigns |> Map.has_key?(:target),
do: %{"phx-click" => @action, "phx-value-value" => @value, "phx-target" => @target},
else: %{"phx-click" => @action, "phx-value-value" => @value}
}
/>
<div class="w-11 h-6 bg-gray-200 rounded-full peer dark:bg-gray-700 peer-focus:ring-4 peer-focus:ring-teal-300 dark:peer-focus:ring-teal-800 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-1 after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-teal-600">
</div>
<span class="ml-3 text-sm font-medium text-gray-900 dark:text-gray-300">
<%= render_slot(@inner_block) %>
</span>
</label>
"""
end
@doc """ @doc """
Get a random color in `#ffffff` hex format Get a random color in `#ffffff` hex format

View File

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

View File

@ -121,7 +121,7 @@ msgid "Reset password"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:53 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:81
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31 #: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -136,7 +136,7 @@ msgstr ""
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:72 #: lib/cannery_web/live/container_live/show.html.heex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "" msgstr ""
@ -156,7 +156,7 @@ msgstr ""
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:199 #: lib/cannery_web/live/ammo_group_live/index.html.heex:79
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -188,7 +188,7 @@ msgstr ""
msgid "add a container first" msgid "add a container first"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Create" msgid "Create"
msgstr "" msgstr ""
@ -233,11 +233,6 @@ msgstr ""
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -134,7 +134,7 @@ msgid "Reset password"
msgstr "Passwort zurücksetzen" msgstr "Passwort zurücksetzen"
#: lib/cannery_web/components/add_shot_group_component.html.heex:53 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:81
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31 #: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -149,7 +149,7 @@ msgstr "Speichern"
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "Anleitung zum Passwort zurücksetzen zusenden" msgstr "Anleitung zum Passwort zurücksetzen zusenden"
#: lib/cannery_web/live/container_live/show.html.heex:72 #: lib/cannery_web/live/container_live/show.html.heex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "Warum fügen Sie keine hinzu?" msgstr "Warum fügen Sie keine hinzu?"
@ -169,7 +169,7 @@ msgstr "Munition markieren"
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "Warum nicht einige für den Schießstand auswählen?" msgstr "Warum nicht einige für den Schießstand auswählen?"
#: lib/cannery_web/live/ammo_group_live/index.ex:199 #: lib/cannery_web/live/ammo_group_live/index.html.heex:79
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -201,7 +201,7 @@ msgstr "In die Zwischenablage kopieren"
msgid "add a container first" msgid "add a container first"
msgstr "Zuerst einen Behälter hinzufügen" msgstr "Zuerst einen Behälter hinzufügen"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Create" msgid "Create"
msgstr "Erstellen" msgstr "Erstellen"
@ -246,11 +246,6 @@ msgstr ""
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -23,14 +23,14 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to ## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/home_live.ex:64 #: lib/cannery_web/live/home_live.ex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
"Mit %{name} können Sie ihren Munitionsbestand vor und nach dem Schießen " "Mit %{name} können Sie ihren Munitionsbestand vor und nach dem Schießen "
"leicht im Auge behalten" "leicht im Auge behalten"
#: lib/cannery_web/live/home_live.ex:86 #: lib/cannery_web/live/home_live.ex:69
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "Zugriff von jedem Internet-fähigen Gerät" msgstr "Zugriff von jedem Internet-fähigen Gerät"
@ -40,30 +40,25 @@ msgstr "Zugriff von jedem Internet-fähigen Gerät"
msgid "Admins" msgid "Admins"
msgstr "Admins" msgstr "Admins"
#: lib/cannery_web/live/home_live.ex:100 #: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins:" msgid "Admins:"
msgstr "Admins:" msgstr "Admins:"
#: lib/cannery_web/components/topbar.ex:73 #: lib/cannery_web/components/topbar.ex:73
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo" msgid "Ammo"
msgstr "Munition" msgstr "Munition"
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "Munitionsarten" msgstr "Munitionsarten"
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format
msgid "Average Price paid"
msgstr "Durchschnittlicher Kaufpreis"
#: lib/cannery_web/live/tag_live/form_component.ex:79 #: lib/cannery_web/live/tag_live/form_component.ex:79
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Background color" msgid "Background color"
@ -71,7 +66,6 @@ msgstr "Hintergrundfarbe"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:82 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
msgstr "Knallpatrone" msgstr "Knallpatrone"
@ -83,42 +77,37 @@ msgstr "Messing"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:64 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "Projektilkern" msgstr "Projektilkern"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:63 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "Patronenart" msgstr "Patronenart"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "Kaliber" msgstr "Kaliber"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "Patrone" msgstr "Patrone"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
msgstr "Gehäusematerial" msgstr "Gehäusematerial"
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:56
#: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "Behälter" msgstr "Behälter"
@ -133,18 +122,17 @@ msgstr "Behälter"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:83 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "Korrosiv" msgstr "Korrosiv"
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "Anzahl" msgstr "Anzahl"
#: lib/cannery_web/components/ammo_group_card.ex:37 #: lib/cannery_web/components/ammo_group_card.ex:38
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count:" msgid "Count:"
@ -163,18 +151,12 @@ msgstr "Beschreibung"
msgid "Description:" msgid "Description:"
msgstr "Beschreibung:" msgstr "Beschreibung:"
#: lib/cannery_web/live/home_live.ex:61 #: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "Einfache Anwendung:" msgstr "Einfache Anwendung:"
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format
msgid "Edit Ammo group"
msgstr "Munitionsgruppe bearbeiten"
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:63
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "Munitionstyp bearbeiten" msgstr "Munitionstyp bearbeiten"
@ -201,29 +183,27 @@ msgstr "VM"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:76 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "Körner" msgstr "Körner"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:81 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
msgstr "Brandmunition" msgstr "Brandmunition"
#: lib/cannery_web/live/home_live.ex:95 #: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Instance Information" msgid "Instance Information"
msgstr "Instanzinformationen" msgstr "Instanzinformationen"
#: lib/cannery_web/components/invite_card.ex:32 #: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Disabled" msgid "Invite Disabled"
msgstr "Einladung deaktiviert" msgstr "Einladung deaktiviert"
#: lib/cannery_web/live/home_live.ex:128 #: lib/cannery_web/live/home_live.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Only" msgid "Invite Only"
msgstr "Nur mit Einladung" msgstr "Nur mit Einladung"
@ -260,7 +240,6 @@ msgstr "Magazin, Ladestreifen, Munitionskiste usw."
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:84 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
msgstr "Hersteller" msgstr "Hersteller"
@ -312,11 +291,6 @@ msgstr "Neuer Tag"
msgid "No Ammo" msgid "No Ammo"
msgstr "Keine Munition" msgstr "Keine Munition"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo Types"
msgstr "Keine Munitionsarten"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:166 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
@ -339,15 +313,16 @@ msgid "No tags"
msgstr "Keine Tags" msgstr "Keine Tags"
#: lib/cannery_web/components/add_shot_group_component.html.heex:37 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
#: lib/cannery_web/live/ammo_group_live/show.ex:93
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
#: lib/cannery_web/live/range_live/index.ex:82 #: lib/cannery_web/live/range_live/index.ex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
msgstr "Bemerkungen" msgstr "Bemerkungen"
#: lib/cannery_web/components/ammo_group_card.ex:43 #: lib/cannery_web/components/ammo_group_card.ex:51
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes:" msgid "Notes:"
@ -360,40 +335,38 @@ msgstr "Auf dem Bücherregal"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:77 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "Druck" msgstr "Druck"
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "Kaufpreis" msgstr "Kaufpreis"
#: lib/cannery_web/components/ammo_group_card.ex:62 #: lib/cannery_web/components/ammo_group_card.ex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid:" msgid "Price paid:"
msgstr "Kaufpreis:" msgstr "Kaufpreis:"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:78 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
msgstr "Zündertyp" msgstr "Zündertyp"
#: lib/cannery_web/live/home_live.ex:127 #: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Public Signups" msgid "Public Signups"
msgstr "Öffentliche Registrierung" msgstr "Öffentliche Registrierung"
#: lib/cannery_web/live/home_live.ex:73 #: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Secure:" msgid "Secure:"
msgstr "Sicher:" msgstr "Sicher:"
#: lib/cannery_web/live/home_live.ex:76 #: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
@ -406,12 +379,7 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#: lib/cannery_web/live/ammo_type_live/show.ex:62 #: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Show Ammo type"
msgstr "Zeige Munitionsarten"
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Simple:" msgid "Simple:"
msgstr "Einfach:" msgstr "Einfach:"
@ -444,14 +412,13 @@ msgstr "Tags können zur besseren Ordnung einem Behälter hinzugefügt werden"
msgid "Text color" msgid "Text color"
msgstr "Textfarbe" msgstr "Textfarbe"
#: lib/cannery_web/live/home_live.ex:52 #: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen" msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:80 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
msgstr "Leuchtspur" msgstr "Leuchtspur"
@ -474,7 +441,7 @@ msgstr "Art:"
msgid "Users" msgid "Users"
msgstr "Benutzer" msgstr "Benutzer"
#: lib/cannery_web/components/invite_card.ex:27 #: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Uses Left:" msgid "Uses Left:"
msgstr "Verbleibende Nutzung:" msgstr "Verbleibende Nutzung:"
@ -484,23 +451,23 @@ msgstr "Verbleibende Nutzung:"
msgid "Uses left" msgid "Uses left"
msgstr "Verbleibende Nutzung" msgstr "Verbleibende Nutzung"
#: lib/cannery_web/live/home_live.ex:48 #: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "Willkommen %{name}" msgstr "Willkommen %{name}"
#: lib/cannery_web/live/home_live.ex:77 #: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "Ihre Daten bleiben bei Ihnen, Punkt" msgstr "Ihre Daten bleiben bei Ihnen, Punkt"
#: lib/cannery_web/live/container_live/show.html.heex:64 #: lib/cannery_web/live/container_live/show.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "Keine Tags für diesen Behälter" msgstr "Keine Tags für diesen Behälter"
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "Schießplatz" msgstr "Schießplatz"
@ -510,7 +477,9 @@ msgstr "Schießplatz"
msgid "Range day" msgid "Range day"
msgstr "Range Day" msgstr "Range Day"
#: lib/cannery_web/live/ammo_group_live/show.ex:89 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#: lib/cannery_web/live/range_live/index.ex:83 #: lib/cannery_web/live/range_live/index.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -532,18 +501,7 @@ msgstr "Keine Munition selektiert"
msgid "Record shots" msgid "Record shots"
msgstr "Schüsse dokumentieren" msgstr "Schüsse dokumentieren"
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format
msgid "Ammo groups"
msgstr "Munitionsgruppen"
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Date (UTC)"
msgstr "Zeit (UTC)"
#: lib/cannery_web/live/ammo_group_live/show.ex:37
#: lib/cannery_web/live/range_live/index.ex:32 #: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -565,8 +523,9 @@ msgstr "Keine Schüsse dokumentiert"
msgid "Rounds left" msgid "Rounds left"
msgstr "Patronen verbleibend" msgstr "Patronen verbleibend"
#: lib/cannery_web/live/ammo_group_live/show.ex:87 #: lib/cannery_web/live/ammo_group_live/show.ex:92
#: lib/cannery_web/live/range_live/index.ex:81 #: lib/cannery_web/live/range_live/index.ex:81
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
msgstr "Patronen abgefeuert" msgstr "Patronen abgefeuert"
@ -577,11 +536,7 @@ msgid "Shot Records"
msgstr "Schießkladde" msgstr "Schießkladde"
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format #: lib/cannery_web/live/ammo_group_live/index.html.heex:96
msgid "Move Ammo group"
msgstr "Munitionsgruppe verschieben"
#: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "Munition verschieben" msgstr "Munition verschieben"
@ -596,12 +551,14 @@ msgstr "Kein weiterer Behälter"
msgid "Shot log" msgid "Shot log"
msgstr "Schießkladde" msgstr "Schießkladde"
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/live/ammo_group_live/index.ex:154 #: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142 #: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "$%{amount}" msgstr "$%{amount}"
@ -613,35 +570,30 @@ msgstr "Bimetall"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "Patronenhülse" msgstr "Patronenhülse"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "Mündungsgeschwindigkeit" msgstr "Mündungsgeschwindigkeit"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "Pulverkörner pro Ladung" msgstr "Pulverkörner pro Ladung"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "Pulverart" msgstr "Pulverart"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:85 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
msgstr "UPC" msgstr "UPC"
@ -662,19 +614,18 @@ msgstr "Derzeitiges Passwort"
msgid "New password" msgid "New password"
msgstr "Neues Passwort" msgstr "Neues Passwort"
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "Markiert" msgstr "Markiert"
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "Demarkiert" msgstr "Demarkiert"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:79 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
msgstr "Patronenhülsenform" msgstr "Patronenhülsenform"
@ -690,36 +641,32 @@ msgid "Loading..."
msgstr "Lädt..." msgstr "Lädt..."
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:106 #: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "%{name} bearbeiten" msgstr "%{name} bearbeiten"
#: lib/cannery_web/live/container_live/index.ex:65 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "Editiere %{name} Tags" msgstr "Editiere %{name} Tags"
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81 #: lib/cannery_web/live/ammo_type_live/show.html.heex:67
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
msgstr "Patronen:" msgstr "Patronen:"
#: lib/cannery_web/live/container_live/show.ex:105 #: lib/cannery_web/components/ammo_group_table_component.ex:221
#, elixir-autogen, elixir-format
msgid "Show %{name}"
msgstr "Zeige %{name}"
#: lib/cannery_web/live/ammo_type_live/index.ex:178 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:148 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "Keine Preisinformationen" msgstr "Keine Preisinformationen"
#: lib/cannery_web/live/ammo_group_live/index.ex:102 #: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "% verbleibend" msgstr "% verbleibend"
@ -774,13 +721,13 @@ msgstr "Registrieren"
msgid "Reset your password" msgid "Reset your password"
msgstr "Passwort zurücksetzen" msgstr "Passwort zurücksetzen"
#: lib/cannery_web/live/ammo_group_live/show.ex:36 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:26 #: lib/cannery_web/live/range_live/index.ex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record Shots" msgid "Record Shots"
msgstr "Schüsse dokumentieren" msgstr "Schüsse dokumentieren"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copies" msgid "Copies"
msgstr "Kopien" msgstr "Kopien"
@ -790,14 +737,7 @@ msgstr "Kopien"
msgid "Ammo types" msgid "Ammo types"
msgstr "Munitionsart" msgstr "Munitionsart"
#: lib/cannery_web/live/ammo_group_live/index.ex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr "Hinzugefügt am"
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "Hinzugefügt am:" msgstr "Hinzugefügt am:"
@ -830,22 +770,22 @@ msgstr "Deutsch"
msgid "Language" msgid "Language"
msgstr "Sprache" msgstr "Sprache"
#: lib/cannery_web/live/home_live.ex:151 #: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Get involved!" msgid "Get involved!"
msgstr "Mach mit!" msgstr "Mach mit!"
#: lib/cannery_web/live/home_live.ex:172 #: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Help translate" msgid "Help translate"
msgstr "Hilf beim Übersetzen" msgstr "Hilf beim Übersetzen"
#: lib/cannery_web/live/home_live.ex:183 #: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "Sende Bugs oder Erweiterungsvorschläge" msgstr "Sende Bugs oder Erweiterungsvorschläge"
#: lib/cannery_web/live/home_live.ex:161 #: lib/cannery_web/live/home_live.ex:146
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View the source code" msgid "View the source code"
msgstr "Quellcode ansehen" msgstr "Quellcode ansehen"
@ -856,22 +796,22 @@ msgstr "Quellcode ansehen"
msgid "Catalog" msgid "Catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:40 #: lib/cannery_web/live/ammo_group_live/show.ex:45
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "Munitionstyp bearbeiten" msgstr "Munitionstyp bearbeiten"
#: lib/cannery_web/live/ammo_group_live/show.ex:38 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Move Ammo" msgid "Move Ammo"
msgstr "Munition verschieben" msgstr "Munition verschieben"
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "Keine Munitionsgruppe in diesem Behälter" msgstr "Keine Munitionsgruppe in diesem Behälter"
#: lib/cannery_web/live/ammo_group_live/show.ex:39 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Show Ammo" msgid "Show Ammo"
msgstr "Zeige Munitionsarten" msgstr "Zeige Munitionsarten"
@ -882,19 +822,19 @@ msgid "This ammo is not in a container"
msgstr "Diese Munitionsgruppe ist nicht in einem Behälter" msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:95
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:25 #: lib/cannery_web/components/topbar.ex:25
#: lib/cannery_web/live/home_live.ex:42 #: lib/cannery_web/live/home_live.ex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cannery logo" msgid "Cannery logo"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "isn't he cute >:3" msgid "isn't he cute >:3"
msgstr "" msgstr ""
@ -904,55 +844,26 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:86
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Container:" msgid "Container:"
msgstr "Behälter" msgstr "Behälter"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/index.html.heex:23 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158 #: lib/cannery_web/live/ammo_type_live/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:110 #: lib/cannery_web/components/ammo_group_table_component.ex:192
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121 #: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds fired"
msgstr "Patronen verbraucht"
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "Patronen abgefeuert" msgstr "Patronen abgefeuert"
@ -969,7 +880,9 @@ msgstr ""
msgid "Rounds" msgid "Rounds"
msgstr "Patronen:" msgstr "Patronen:"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:23 #: lib/cannery_web/live/container_live/index.html.heex:23
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -979,7 +892,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121 #: lib/cannery_web/live/ammo_type_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -989,7 +902,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "Summe aller Patronen" msgstr "Summe aller Patronen"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:83
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "Summe abgegebener Schüsse:" msgstr "Summe abgegebener Schüsse:"
@ -999,7 +912,7 @@ msgstr "Summe abgegebener Schüsse:"
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -1009,7 +922,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89 #: lib/cannery_web/live/ammo_type_live/show.html.heex:75
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -1018,3 +931,192 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used up!" msgid "Used up!"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot chart"
msgstr "Patronen abgefeuert"
#: lib/cannery_web/live/ammo_type_live/show.ex:27
#, elixir-autogen, elixir-format, fuzzy
msgid "Blank:"
msgstr "Knallpatrone"
#: lib/cannery_web/live/ammo_type_live/show.ex:13
#, elixir-autogen, elixir-format, fuzzy
msgid "Bullet core:"
msgstr "Projektilkern"
#: lib/cannery_web/live/ammo_type_live/show.ex:12
#, elixir-autogen, elixir-format, fuzzy
msgid "Bullet type:"
msgstr "Patronenart"
#: lib/cannery_web/live/ammo_type_live/show.ex:15
#, elixir-autogen, elixir-format, fuzzy
msgid "Caliber:"
msgstr "Kaliber"
#: lib/cannery_web/live/ammo_type_live/show.ex:14
#, elixir-autogen, elixir-format, fuzzy
msgid "Cartridge:"
msgstr "Patrone"
#: lib/cannery_web/live/ammo_type_live/show.ex:16
#, elixir-autogen, elixir-format, fuzzy
msgid "Case material:"
msgstr "Gehäusematerial"
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Corrosive:"
msgstr "Korrosiv"
#: lib/cannery_web/live/ammo_type_live/show.ex:24
#, elixir-autogen, elixir-format, fuzzy
msgid "Firing type:"
msgstr "Patronenhülsenform"
#: lib/cannery_web/live/ammo_type_live/show.ex:21
#, elixir-autogen, elixir-format, fuzzy
msgid "Grains:"
msgstr "Körner"
#: lib/cannery_web/live/ammo_type_live/show.ex:26
#, elixir-autogen, elixir-format, fuzzy
msgid "Incendiary:"
msgstr "Brandmunition"
#: lib/cannery_web/live/ammo_type_live/show.ex:17
#, elixir-autogen, elixir-format, fuzzy
msgid "Jacket type:"
msgstr "Patronenhülse"
#: lib/cannery_web/live/ammo_type_live/show.ex:29
#, elixir-autogen, elixir-format, fuzzy
msgid "Manufacturer:"
msgstr "Hersteller"
#: lib/cannery_web/live/ammo_type_live/show.ex:18
#, elixir-autogen, elixir-format, fuzzy
msgid "Muzzle velocity:"
msgstr "Mündungsgeschwindigkeit"
#: lib/cannery_web/live/ammo_type_live/show.ex:20
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder grains per charge:"
msgstr "Pulverkörner pro Ladung"
#: lib/cannery_web/live/ammo_type_live/show.ex:19
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder type:"
msgstr "Pulverart"
#: lib/cannery_web/live/ammo_type_live/show.ex:22
#, elixir-autogen, elixir-format, fuzzy
msgid "Pressure:"
msgstr "Druck"
#: lib/cannery_web/live/ammo_type_live/show.ex:23
#, elixir-autogen, elixir-format, fuzzy
msgid "Primer type:"
msgstr "Zündertyp"
#: lib/cannery_web/live/ammo_type_live/show.ex:25
#, elixir-autogen, elixir-format, fuzzy
msgid "Tracer:"
msgstr "Leuchtspur"
#: lib/cannery_web/live/ammo_type_live/show.ex:30
#, elixir-autogen, elixir-format, fuzzy
msgid "UPC:"
msgstr "UPC"
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:120
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}"
msgstr "%{name} bearbeiten"
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/components/ammo_group_table_component.ex:230
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:77
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr "Ursprüngliche Anzahl:"
#: lib/cannery_web/components/ammo_group_card.ex:44
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count:"
msgstr "Ursprüngliche Anzahl:"
#: lib/cannery_web/live/home_live.ex:15
#, elixir-autogen, elixir-format
msgid "Home"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:37
#, elixir-autogen, elixir-format, fuzzy
msgid "Total rounds:"
msgstr "Summe abgegebener Schüsse:"
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit ammo"
msgstr "Munitionstyp bearbeiten"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr "Keine Munitionsarten"

View File

@ -29,7 +29,7 @@ msgid "Container must be empty before deleting"
msgstr "Behälter muss vor dem Löschen leer sein" msgstr "Behälter muss vor dem Löschen leer sein"
#: lib/cannery_web/live/container_live/index.ex:88 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "Konnte %{name} nicht löschen: %{error}" msgstr "Konnte %{name} nicht löschen: %{error}"
@ -187,22 +187,22 @@ msgstr ""
"Ungültige Nummer an Kopien. Muss zwischen 1 and %{max} liegen. War " "Ungültige Nummer an Kopien. Muss zwischen 1 and %{max} liegen. War "
"%{multiplier}" "%{multiplier}"
#: lib/cannery/ammo.ex:587 #: lib/cannery/ammo.ex:609
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""
#: lib/cannery/ammo/ammo_group.ex:94 #: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Please select an ammo type and container" msgid "Please select an ammo type and container"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:67 #: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element." msgid "Your browser does not support the canvas element."
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack"
msgstr ""

View File

@ -32,7 +32,7 @@ msgid "%{name} created successfully"
msgstr "%{name} erfolgreich erstellt" msgstr "%{name} erfolgreich erstellt"
#: lib/cannery_web/live/ammo_type_live/index.ex:47 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:55
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -51,7 +51,7 @@ msgid "%{name} enabled succesfully"
msgstr "%{name} erfolgreich aktiviert" msgstr "%{name} erfolgreich aktiviert"
#: lib/cannery_web/live/container_live/index.ex:81 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "%{name} wurde gelöscht" msgstr "%{name} wurde gelöscht"
@ -74,11 +74,6 @@ msgstr "%{name} erfolgreich aktualisiert"
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "Eine Mail zum Bestätigen ihre Mailadresse wurde Ihnen zugesandt." msgstr "Eine Mail zum Bestätigen ihre Mailadresse wurde Ihnen zugesandt."
#: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully"
msgstr "Munitionsgruppe erfolgreich gelöscht"
#: lib/cannery_web/live/invite_live/index.html.heex:103 #: lib/cannery_web/live/invite_live/index.html.heex:103
#: lib/cannery_web/live/invite_live/index.html.heex:133 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -87,9 +82,9 @@ msgstr ""
"Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht " "Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht "
"zurückgenommen werden!" "zurückgenommen werden!"
#: lib/cannery_web/live/container_live/index.ex:223 #: lib/cannery_web/live/container_live/index.ex:236
#: lib/cannery_web/live/container_live/index.html.heex:73 #: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
@ -100,7 +95,7 @@ msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?" msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?"
#: lib/cannery_web/live/ammo_group_live/index.ex:242 #: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -160,13 +155,13 @@ msgstr "Passwort erfolgreich geändert."
msgid "Please check your email to verify your account" msgid "Please check your email to verify your account"
msgstr "Bitte überprüfen Sie ihre Mailbox und bestätigen Sie das Nutzerkonto" msgstr "Bitte überprüfen Sie ihre Mailbox und bestätigen Sie das Nutzerkonto"
#: lib/cannery_web/live/home_live.ex:108 #: lib/cannery_web/live/home_live.ex:91
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "Registrieren Sie sich, um %{name} zu bearbeiten" msgstr "Registrieren Sie sich, um %{name} zu bearbeiten"
#: lib/cannery_web/components/add_shot_group_component.html.heex:55 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:82
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33 #: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -193,7 +188,7 @@ msgstr ""
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "%{name} erfolgreich hinzugefügt" msgstr "%{name} erfolgreich hinzugefügt"
#: lib/cannery_web/live/container_live/show.ex:37 #: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}" msgid "%{tag_name} has been removed from %{container_name}"
msgstr "%{tag_name} wurde von %{container_name} entfernt" msgstr "%{tag_name} wurde von %{container_name} entfernt"
@ -213,13 +208,13 @@ msgstr "Schüsse erfolgreich dokumentiert"
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?" msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?"
#: lib/cannery_web/live/ammo_group_live/show.ex:132 #: lib/cannery_web/live/ammo_group_live/show.ex:137
#: lib/cannery_web/live/range_live/index.ex:184 #: lib/cannery_web/live/range_live/index.ex:159
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?" msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?"
#: lib/cannery_web/live/ammo_group_live/show.ex:78 #: lib/cannery_web/live/ammo_group_live/show.ex:83
#: lib/cannery_web/live/range_live/index.ex:54 #: lib/cannery_web/live/range_live/index.ex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -256,7 +251,7 @@ msgstr "%{name} erfolgreich entfernt"
msgid "You'll need to" msgid "You'll need to"
msgstr "Sie müssen" msgstr "Sie müssen"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:67 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Creating..." msgid "Creating..."
msgstr "Erstellen..." msgstr "Erstellen..."
@ -271,7 +266,8 @@ msgstr "Möchten Sie die Sprache wechseln?"
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "Spracheinstellung gespeichert." msgstr "Spracheinstellung gespeichert."
#: lib/cannery_web/live/ammo_group_live/show.ex:50 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#: lib/cannery_web/live/ammo_group_live/show.ex:55
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "Munitionsgruppe erfolgreich gelöscht" msgstr "Munitionsgruppe erfolgreich gelöscht"

View File

@ -10,12 +10,12 @@
msgid "" msgid ""
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:64 #: lib/cannery_web/live/home_live.ex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:86 #: lib/cannery_web/live/home_live.ex:69
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "" msgstr ""
@ -25,30 +25,25 @@ msgstr ""
msgid "Admins" msgid "Admins"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:100 #: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins:" msgid "Admins:"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:73 #: lib/cannery_web/components/topbar.ex:73
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo" msgid "Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format
msgid "Average Price paid"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.ex:79 #: lib/cannery_web/live/tag_live/form_component.ex:79
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Background color" msgid "Background color"
@ -56,7 +51,6 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:82 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
msgstr "" msgstr ""
@ -68,42 +62,37 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:64 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:63 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:56
#: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "" msgstr ""
@ -118,18 +107,17 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:83 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:37 #: lib/cannery_web/components/ammo_group_card.ex:38
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count:" msgid "Count:"
@ -148,18 +136,12 @@ msgstr ""
msgid "Description:" msgid "Description:"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:61 #: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format
msgid "Edit Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:63
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "" msgstr ""
@ -186,29 +168,27 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:76 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:81 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:95 #: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Instance Information" msgid "Instance Information"
msgstr "" msgstr ""
#: lib/cannery_web/components/invite_card.ex:32 #: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Disabled" msgid "Invite Disabled"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:128 #: lib/cannery_web/live/home_live.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Only" msgid "Invite Only"
msgstr "" msgstr ""
@ -245,7 +225,6 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:84 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
@ -297,11 +276,6 @@ msgstr ""
msgid "No Ammo" msgid "No Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo Types"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:166 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
@ -324,15 +298,16 @@ msgid "No tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:37 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
#: lib/cannery_web/live/ammo_group_live/show.ex:93
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
#: lib/cannery_web/live/range_live/index.ex:82 #: lib/cannery_web/live/range_live/index.ex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:43 #: lib/cannery_web/components/ammo_group_card.ex:51
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes:" msgid "Notes:"
@ -345,40 +320,38 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:77 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:62 #: lib/cannery_web/components/ammo_group_card.ex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid:" msgid "Price paid:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:78 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:127 #: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Public Signups" msgid "Public Signups"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:73 #: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Secure:" msgid "Secure:"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:76 #: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
@ -389,12 +362,7 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:62 #: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Show Ammo type"
msgstr ""
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Simple:" msgid "Simple:"
msgstr "" msgstr ""
@ -427,14 +395,13 @@ msgstr ""
msgid "Text color" msgid "Text color"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:52 #: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:80 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
msgstr "" msgstr ""
@ -457,7 +424,7 @@ msgstr ""
msgid "Users" msgid "Users"
msgstr "" msgstr ""
#: lib/cannery_web/components/invite_card.ex:27 #: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Uses Left:" msgid "Uses Left:"
msgstr "" msgstr ""
@ -467,23 +434,23 @@ msgstr ""
msgid "Uses left" msgid "Uses left"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:48 #: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:77 #: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:64 #: lib/cannery_web/live/container_live/show.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -493,7 +460,9 @@ msgstr ""
msgid "Range day" msgid "Range day"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:89 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#: lib/cannery_web/live/range_live/index.ex:83 #: lib/cannery_web/live/range_live/index.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -515,18 +484,7 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format
msgid "Ammo groups"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Date (UTC)"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:37
#: lib/cannery_web/live/range_live/index.ex:32 #: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -548,8 +506,9 @@ msgstr ""
msgid "Rounds left" msgid "Rounds left"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:87 #: lib/cannery_web/live/ammo_group_live/show.ex:92
#: lib/cannery_web/live/range_live/index.ex:81 #: lib/cannery_web/live/range_live/index.ex:81
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
msgstr "" msgstr ""
@ -560,11 +519,7 @@ msgid "Shot Records"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format #: lib/cannery_web/live/ammo_group_live/index.html.heex:96
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -579,12 +534,14 @@ msgstr ""
msgid "Shot log" msgid "Shot log"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/live/ammo_group_live/index.ex:154 #: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142 #: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -596,35 +553,30 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:85 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
msgstr "" msgstr ""
@ -645,19 +597,18 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:79 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
msgstr "" msgstr ""
@ -673,36 +624,32 @@ msgid "Loading..."
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:106 #: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:65 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81 #: lib/cannery_web/live/ammo_type_live/show.html.heex:67
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.ex:105 #: lib/cannery_web/components/ammo_group_table_component.ex:221
#, elixir-autogen, elixir-format
msgid "Show %{name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:178 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:148 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:102 #: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -757,13 +704,13 @@ msgstr ""
msgid "Reset your password" msgid "Reset your password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:36 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:26 #: lib/cannery_web/live/range_live/index.ex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record Shots" msgid "Record Shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
@ -773,14 +720,7 @@ msgstr ""
msgid "Ammo types" msgid "Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -813,22 +753,22 @@ msgstr ""
msgid "Language" msgid "Language"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:151 #: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Get involved!" msgid "Get involved!"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:172 #: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Help translate" msgid "Help translate"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:183 #: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:161 #: lib/cannery_web/live/home_live.ex:146
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View the source code" msgid "View the source code"
msgstr "" msgstr ""
@ -839,22 +779,22 @@ msgstr ""
msgid "Catalog" msgid "Catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:40 #: lib/cannery_web/live/ammo_group_live/show.ex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:38 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move Ammo" msgid "Move Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:39 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show Ammo" msgid "Show Ammo"
msgstr "" msgstr ""
@ -865,19 +805,19 @@ msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:95
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:25 #: lib/cannery_web/components/topbar.ex:25
#: lib/cannery_web/live/home_live.ex:42 #: lib/cannery_web/live/home_live.ex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cannery logo" msgid "Cannery logo"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "isn't he cute >:3" msgid "isn't he cute >:3"
msgstr "" msgstr ""
@ -887,55 +827,26 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:86
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/index.html.heex:23 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158 #: lib/cannery_web/live/ammo_type_live/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:110 #: lib/cannery_web/components/ammo_group_table_component.ex:192
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121 #: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format
msgid "Rounds fired"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
@ -952,7 +863,9 @@ msgstr ""
msgid "Rounds" msgid "Rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:23 #: lib/cannery_web/live/container_live/index.html.heex:23
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -962,7 +875,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121 #: lib/cannery_web/live/ammo_type_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -972,7 +885,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "" msgstr ""
@ -982,7 +895,7 @@ msgstr ""
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -992,7 +905,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89 #: lib/cannery_web/live/ammo_type_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -1001,3 +914,192 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used up!" msgid "Used up!"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds shot chart"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:27
#, elixir-autogen, elixir-format
msgid "Blank:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:13
#, elixir-autogen, elixir-format
msgid "Bullet core:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:12
#, elixir-autogen, elixir-format
msgid "Bullet type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:15
#, elixir-autogen, elixir-format
msgid "Caliber:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:14
#, elixir-autogen, elixir-format
msgid "Cartridge:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:16
#, elixir-autogen, elixir-format
msgid "Case material:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#, elixir-autogen, elixir-format
msgid "Corrosive:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:24
#, elixir-autogen, elixir-format
msgid "Firing type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:21
#, elixir-autogen, elixir-format
msgid "Grains:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:26
#, elixir-autogen, elixir-format
msgid "Incendiary:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:17
#, elixir-autogen, elixir-format
msgid "Jacket type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:29
#, elixir-autogen, elixir-format
msgid "Manufacturer:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:18
#, elixir-autogen, elixir-format
msgid "Muzzle velocity:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:20
#, elixir-autogen, elixir-format
msgid "Powder grains per charge:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:19
#, elixir-autogen, elixir-format
msgid "Powder type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:22
#, elixir-autogen, elixir-format
msgid "Pressure:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:23
#, elixir-autogen, elixir-format
msgid "Primer type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:25
#, elixir-autogen, elixir-format
msgid "Tracer:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:30
#, elixir-autogen, elixir-format
msgid "UPC:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:120
#, elixir-autogen, elixir-format
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/components/ammo_group_table_component.ex:230
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:77
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format
msgid "Original Count"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:44
#, elixir-autogen, elixir-format
msgid "Original Count:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:15
#, elixir-autogen, elixir-format
msgid "Home"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:28
#, elixir-autogen, elixir-format
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:37
#, elixir-autogen, elixir-format
msgid "Total rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format
msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo types"
msgstr ""

View File

@ -122,7 +122,7 @@ msgid "Reset password"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:53 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:81
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31 #: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -137,7 +137,7 @@ msgstr ""
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:72 #: lib/cannery_web/live/container_live/show.html.heex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "" msgstr ""
@ -157,7 +157,7 @@ msgstr ""
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:199 #: lib/cannery_web/live/ammo_group_live/index.html.heex:79
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -189,7 +189,7 @@ msgstr ""
msgid "add a container first" msgid "add a container first"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Create" msgid "Create"
msgstr "" msgstr ""
@ -234,11 +234,6 @@ msgstr ""
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -11,12 +11,12 @@ msgstr ""
"Language: en\n" "Language: en\n"
"Plural-Forms: nplurals=2\n" "Plural-Forms: nplurals=2\n"
#: lib/cannery_web/live/home_live.ex:64 #: lib/cannery_web/live/home_live.ex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:86 #: lib/cannery_web/live/home_live.ex:69
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "" msgstr ""
@ -26,30 +26,25 @@ msgstr ""
msgid "Admins" msgid "Admins"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:100 #: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins:" msgid "Admins:"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:73 #: lib/cannery_web/components/topbar.ex:73
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo" msgid "Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format
msgid "Average Price paid"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.ex:79 #: lib/cannery_web/live/tag_live/form_component.ex:79
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Background color" msgid "Background color"
@ -57,7 +52,6 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:82 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
msgstr "" msgstr ""
@ -69,42 +63,37 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:64 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:63 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:56
#: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "" msgstr ""
@ -119,18 +108,17 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:83 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:37 #: lib/cannery_web/components/ammo_group_card.ex:38
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count:" msgid "Count:"
@ -149,18 +137,12 @@ msgstr ""
msgid "Description:" msgid "Description:"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:61 #: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format
msgid "Edit Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:63
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "" msgstr ""
@ -187,29 +169,27 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:76 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:81 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:95 #: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Instance Information" msgid "Instance Information"
msgstr "" msgstr ""
#: lib/cannery_web/components/invite_card.ex:32 #: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Disabled" msgid "Invite Disabled"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:128 #: lib/cannery_web/live/home_live.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Only" msgid "Invite Only"
msgstr "" msgstr ""
@ -246,7 +226,6 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:84 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
@ -298,11 +277,6 @@ msgstr ""
msgid "No Ammo" msgid "No Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo Types"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:166 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
@ -325,15 +299,16 @@ msgid "No tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:37 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
#: lib/cannery_web/live/ammo_group_live/show.ex:93
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
#: lib/cannery_web/live/range_live/index.ex:82 #: lib/cannery_web/live/range_live/index.ex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:43 #: lib/cannery_web/components/ammo_group_card.ex:51
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes:" msgid "Notes:"
@ -346,40 +321,38 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:77 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:62 #: lib/cannery_web/components/ammo_group_card.ex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid:" msgid "Price paid:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:78 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:127 #: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Public Signups" msgid "Public Signups"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:73 #: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Secure:" msgid "Secure:"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:76 #: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
@ -390,12 +363,7 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:62 #: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Show Ammo type"
msgstr ""
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Simple:" msgid "Simple:"
msgstr "" msgstr ""
@ -428,14 +396,13 @@ msgstr ""
msgid "Text color" msgid "Text color"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:52 #: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:80 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
msgstr "" msgstr ""
@ -458,7 +425,7 @@ msgstr ""
msgid "Users" msgid "Users"
msgstr "" msgstr ""
#: lib/cannery_web/components/invite_card.ex:27 #: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Uses Left:" msgid "Uses Left:"
msgstr "" msgstr ""
@ -468,23 +435,23 @@ msgstr ""
msgid "Uses left" msgid "Uses left"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:48 #: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:77 #: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:64 #: lib/cannery_web/live/container_live/show.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -494,7 +461,9 @@ msgstr ""
msgid "Range day" msgid "Range day"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:89 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#: lib/cannery_web/live/range_live/index.ex:83 #: lib/cannery_web/live/range_live/index.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -516,18 +485,7 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format
msgid "Ammo groups"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Date (UTC)"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:37
#: lib/cannery_web/live/range_live/index.ex:32 #: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -549,8 +507,9 @@ msgstr ""
msgid "Rounds left" msgid "Rounds left"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:87 #: lib/cannery_web/live/ammo_group_live/show.ex:92
#: lib/cannery_web/live/range_live/index.ex:81 #: lib/cannery_web/live/range_live/index.ex:81
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
msgstr "" msgstr ""
@ -561,11 +520,7 @@ msgid "Shot Records"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format #: lib/cannery_web/live/ammo_group_live/index.html.heex:96
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -580,12 +535,14 @@ msgstr ""
msgid "Shot log" msgid "Shot log"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/live/ammo_group_live/index.ex:154 #: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142 #: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -597,35 +554,30 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:85 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
msgstr "" msgstr ""
@ -646,19 +598,18 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:79 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
msgstr "" msgstr ""
@ -674,36 +625,32 @@ msgid "Loading..."
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:106 #: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:65 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81 #: lib/cannery_web/live/ammo_type_live/show.html.heex:67
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:39
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds:" msgid "Rounds:"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.ex:105 #: lib/cannery_web/components/ammo_group_table_component.ex:221
#, elixir-autogen, elixir-format
msgid "Show %{name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:178 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:148 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:102 #: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -758,13 +705,13 @@ msgstr ""
msgid "Reset your password" msgid "Reset your password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:36 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:26 #: lib/cannery_web/live/range_live/index.ex:26
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Record Shots" msgid "Record Shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
@ -774,14 +721,7 @@ msgstr ""
msgid "Ammo types" msgid "Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -814,22 +754,22 @@ msgstr ""
msgid "Language" msgid "Language"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:151 #: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Get involved!" msgid "Get involved!"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:172 #: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Help translate" msgid "Help translate"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:183 #: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:161 #: lib/cannery_web/live/home_live.ex:146
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View the source code" msgid "View the source code"
msgstr "" msgstr ""
@ -840,22 +780,22 @@ msgstr ""
msgid "Catalog" msgid "Catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:40 #: lib/cannery_web/live/ammo_group_live/show.ex:45
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:38 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Move Ammo" msgid "Move Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:39 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Show Ammo" msgid "Show Ammo"
msgstr "" msgstr ""
@ -866,19 +806,19 @@ msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:95
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:25 #: lib/cannery_web/components/topbar.ex:25
#: lib/cannery_web/live/home_live.ex:42 #: lib/cannery_web/live/home_live.ex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cannery logo" msgid "Cannery logo"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "isn't he cute >:3" msgid "isn't he cute >:3"
msgstr "" msgstr ""
@ -888,55 +828,26 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:86
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/index.html.heex:23 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158 #: lib/cannery_web/live/ammo_type_live/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:110 #: lib/cannery_web/components/ammo_group_table_component.ex:192
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121 #: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds fired"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
@ -953,7 +864,9 @@ msgstr ""
msgid "Rounds" msgid "Rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:23 #: lib/cannery_web/live/container_live/index.html.heex:23
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -963,7 +876,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121 #: lib/cannery_web/live/ammo_type_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -973,7 +886,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:83
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "" msgstr ""
@ -983,7 +896,7 @@ msgstr ""
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -993,7 +906,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89 #: lib/cannery_web/live/ammo_type_live/show.html.heex:75
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -1002,3 +915,192 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used up!" msgid "Used up!"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot chart"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:27
#, elixir-autogen, elixir-format, fuzzy
msgid "Blank:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:13
#, elixir-autogen, elixir-format, fuzzy
msgid "Bullet core:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:12
#, elixir-autogen, elixir-format, fuzzy
msgid "Bullet type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:15
#, elixir-autogen, elixir-format, fuzzy
msgid "Caliber:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:14
#, elixir-autogen, elixir-format, fuzzy
msgid "Cartridge:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:16
#, elixir-autogen, elixir-format, fuzzy
msgid "Case material:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Corrosive:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:24
#, elixir-autogen, elixir-format, fuzzy
msgid "Firing type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:21
#, elixir-autogen, elixir-format, fuzzy
msgid "Grains:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:26
#, elixir-autogen, elixir-format, fuzzy
msgid "Incendiary:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:17
#, elixir-autogen, elixir-format, fuzzy
msgid "Jacket type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:29
#, elixir-autogen, elixir-format, fuzzy
msgid "Manufacturer:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:18
#, elixir-autogen, elixir-format, fuzzy
msgid "Muzzle velocity:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:20
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder grains per charge:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:19
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:22
#, elixir-autogen, elixir-format, fuzzy
msgid "Pressure:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:23
#, elixir-autogen, elixir-format, fuzzy
msgid "Primer type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:25
#, elixir-autogen, elixir-format, fuzzy
msgid "Tracer:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:30
#, elixir-autogen, elixir-format, fuzzy
msgid "UPC:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:120
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/components/ammo_group_table_component.ex:230
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:77
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:44
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:15
#, elixir-autogen, elixir-format
msgid "Home"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:37
#, elixir-autogen, elixir-format, fuzzy
msgid "Total rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr ""

View File

@ -16,7 +16,7 @@ msgid "Container must be empty before deleting"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:88 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "" msgstr ""
@ -170,22 +170,22 @@ msgstr ""
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
#: lib/cannery/ammo.ex:587 #: lib/cannery/ammo.ex:609
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""
#: lib/cannery/ammo/ammo_group.ex:94 #: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Please select an ammo type and container" msgid "Please select an ammo type and container"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:67 #: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element." msgid "Your browser does not support the canvas element."
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack"
msgstr ""

View File

@ -20,7 +20,7 @@ msgid "%{name} created successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:47 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:55
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -39,7 +39,7 @@ msgid "%{name} enabled succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:81 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "" msgstr ""
@ -62,20 +62,15 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:103 #: lib/cannery_web/live/invite_live/index.html.heex:103
#: lib/cannery_web/live/invite_live/index.html.heex:133 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:223 #: lib/cannery_web/live/container_live/index.ex:236
#: lib/cannery_web/live/container_live/index.html.heex:73 #: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
@ -86,7 +81,7 @@ msgstr ""
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:242 #: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -142,13 +137,13 @@ msgstr ""
msgid "Please check your email to verify your account" msgid "Please check your email to verify your account"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:108 #: lib/cannery_web/live/home_live.ex:91
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:55 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:82
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33 #: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -173,7 +168,7 @@ msgstr ""
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.ex:37 #: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}" msgid "%{tag_name} has been removed from %{container_name}"
msgstr "" msgstr ""
@ -193,13 +188,13 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:132 #: lib/cannery_web/live/ammo_group_live/show.ex:137
#: lib/cannery_web/live/range_live/index.ex:184 #: lib/cannery_web/live/range_live/index.ex:159
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:78 #: lib/cannery_web/live/ammo_group_live/show.ex:83
#: lib/cannery_web/live/range_live/index.ex:54 #: lib/cannery_web/live/range_live/index.ex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -236,7 +231,7 @@ msgstr ""
msgid "You'll need to" msgid "You'll need to"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:67 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:75
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Creating..." msgid "Creating..."
msgstr "" msgstr ""
@ -251,7 +246,8 @@ msgstr ""
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:50 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#: lib/cannery_web/live/ammo_group_live/show.ex:55
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "" msgstr ""

View File

@ -16,7 +16,7 @@ msgid "Container must be empty before deleting"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:88 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "" msgstr ""
@ -169,22 +169,22 @@ msgstr ""
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
#: lib/cannery/ammo.ex:587 #: lib/cannery/ammo.ex:609
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""
#: lib/cannery/ammo/ammo_group.ex:94 #: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Please select an ammo type and container" msgid "Please select an ammo type and container"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:67 #: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element." msgid "Your browser does not support the canvas element."
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo pack"
msgstr ""

View File

@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-21 19:45+0000\n" "POT-Creation-Date: 2022-05-21 19:45+0000\n"
"PO-Revision-Date: 2022-05-22 22:52+0000\n" "PO-Revision-Date: 2022-11-13 21:49+0000\n"
"Last-Translator: Hannah Winter <konhat@hotmail.es>\n" "Last-Translator: Brea Foga <breaardiente@gmail.com>\n"
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/" "Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
"actions/es/>\n" "actions/es/>\n"
"Language: es\n" "Language: es\n"
@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.12.2\n" "X-Generator: Weblate 4.14.2\n"
## This file is a PO Template file. ## This file is a PO Template file.
## ##
@ -33,17 +33,17 @@ msgstr "Añadir Munición"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:36 #: lib/cannery_web/live/ammo_group_live/index.html.heex:36
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add your first box!" msgid "Add your first box!"
msgstr "" msgstr "¡Añade tu primera caja!"
#: lib/cannery_web/live/container_live/index.html.heex:13 #: lib/cannery_web/live/container_live/index.html.heex:13
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add your first container!" msgid "Add your first container!"
msgstr "" msgstr "¡Añade tu primer contenedor!"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:13 #: lib/cannery_web/live/ammo_type_live/index.html.heex:13
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add your first type!" msgid "Add your first type!"
msgstr "" msgstr "¡Añade tu primer tipo!"
#: lib/cannery_web/templates/user_settings/edit.html.heex:15 #: lib/cannery_web/templates/user_settings/edit.html.heex:15
#: lib/cannery_web/templates/user_settings/edit.html.heex:44 #: lib/cannery_web/templates/user_settings/edit.html.heex:44
@ -77,7 +77,7 @@ msgstr "¿Has olvidado tu contraseña?"
#: lib/cannery_web/live/invite_live/index.html.heex:13 #: lib/cannery_web/live/invite_live/index.html.heex:13
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite someone new!" msgid "Invite someone new!"
msgstr "" msgstr "¡Invita a alguien nuevo!"
#: lib/cannery_web/components/topbar.ex:137 #: lib/cannery_web/components/topbar.ex:137
#: lib/cannery_web/templates/user_confirmation/new.html.heex:30 #: lib/cannery_web/templates/user_confirmation/new.html.heex:30
@ -88,27 +88,27 @@ msgstr ""
#: lib/cannery_web/templates/user_session/new.html.heex:33 #: lib/cannery_web/templates/user_session/new.html.heex:33
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Log in" msgid "Log in"
msgstr "" msgstr "Entrar"
#: lib/cannery_web/live/tag_live/index.html.heex:15 #: lib/cannery_web/live/tag_live/index.html.heex:15
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Make your first tag!" msgid "Make your first tag!"
msgstr "" msgstr "¡Aplica tu primera etiqueta!"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:17 #: lib/cannery_web/live/ammo_type_live/index.html.heex:17
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Ammo type" msgid "New Ammo type"
msgstr "" msgstr "Nuevo tipo de Munición"
#: lib/cannery_web/live/container_live/index.html.heex:17 #: lib/cannery_web/live/container_live/index.html.heex:17
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Container" msgid "New Container"
msgstr "" msgstr "Nuevo Contenedor"
#: lib/cannery_web/live/tag_live/index.html.heex:19 #: lib/cannery_web/live/tag_live/index.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Tag" msgid "New Tag"
msgstr "" msgstr "Nueva Etiqueta"
#: lib/cannery_web/components/topbar.ex:128 #: lib/cannery_web/components/topbar.ex:128
#: lib/cannery_web/templates/user_confirmation/new.html.heex:26 #: lib/cannery_web/templates/user_confirmation/new.html.heex:26
@ -119,22 +119,22 @@ msgstr ""
#: lib/cannery_web/templates/user_session/new.html.heex:41 #: lib/cannery_web/templates/user_session/new.html.heex:41
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Register" msgid "Register"
msgstr "" msgstr "Registrarse"
#: lib/cannery_web/templates/user_confirmation/new.html.heex:3 #: lib/cannery_web/templates/user_confirmation/new.html.heex:3
#: lib/cannery_web/templates/user_confirmation/new.html.heex:16 #: lib/cannery_web/templates/user_confirmation/new.html.heex:16
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Resend confirmation instructions" msgid "Resend confirmation instructions"
msgstr "" msgstr "Reenviar instrucciones de confirmación"
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:34 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:34
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Reset password" msgid "Reset password"
msgstr "" msgstr "Resetear contraseña"
#: lib/cannery_web/components/add_shot_group_component.html.heex:53 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:81
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31 #: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -142,115 +142,110 @@ msgstr ""
#: lib/cannery_web/live/tag_live/form_component.ex:91 #: lib/cannery_web/live/tag_live/form_component.ex:91
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Save" msgid "Save"
msgstr "" msgstr "Guardar"
#: lib/cannery_web/templates/user_reset_password/new.html.heex:16 #: lib/cannery_web/templates/user_reset_password/new.html.heex:16
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "Enviar instrucciones para reestablecer contraseña" msgstr "Enviar instrucciones para reestablecer contraseña"
#: lib/cannery_web/live/container_live/show.html.heex:72 #: lib/cannery_web/live/container_live/show.html.heex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "" msgstr "¿Por qué no añadir una?"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53 #: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add" msgid "Add"
msgstr "" msgstr "Añadir"
#: lib/cannery_web/live/range_live/index.html.heex:17 #: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage ammo" msgid "Stage ammo"
msgstr "" msgstr "Preparar munición"
#: lib/cannery_web/live/range_live/index.html.heex:13 #: lib/cannery_web/live/range_live/index.html.heex:13
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr "¿Por qué no preparar parte para disparar?"
#: lib/cannery_web/live/ammo_group_live/index.ex:199 #: lib/cannery_web/live/ammo_group_live/index.html.heex:79
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr "Tiros récord"
#: lib/cannery_web/components/move_ammo_group_component.ex:90 #: lib/cannery_web/components/move_ammo_group_component.ex:90
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add another container!" msgid "Add another container!"
msgstr "" msgstr "¡Añade otro contenedor!"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:94 #: lib/cannery_web/live/ammo_group_live/show.html.heex:94
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move containers" msgid "Move containers"
msgstr "" msgstr "Mover contenedores"
#: lib/cannery_web/components/move_ammo_group_component.ex:126 #: lib/cannery_web/components/move_ammo_group_component.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select" msgid "Select"
msgstr "" msgstr "Seleccionar"
#: lib/cannery_web/live/invite_live/index.html.heex:31 #: lib/cannery_web/live/invite_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "" msgstr "Copiar al portapapeles"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:21 #: lib/cannery_web/live/ammo_group_live/index.html.heex:21
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "add a container first" msgid "add a container first"
msgstr "" msgstr "añade primero un contenedor"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Create" msgid "Create"
msgstr "" msgstr "Crear"
#: lib/cannery_web/templates/user_settings/edit.html.heex:113 #: lib/cannery_web/templates/user_settings/edit.html.heex:113
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Change Language" msgid "Change Language"
msgstr "" msgstr "Cambiar Lenguaje"
#: lib/cannery_web/templates/user_settings/edit.html.heex:134 #: lib/cannery_web/templates/user_settings/edit.html.heex:134
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Change language" msgid "Change language"
msgstr "" msgstr "Cambiar lenguaje"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:60 #: lib/cannery_web/live/ammo_group_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View in Catalog" msgid "View in Catalog"
msgstr "" msgstr "Ver en Catalogo"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:31 #: lib/cannery_web/live/ammo_group_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "add an ammo type first" msgid "add an ammo type first"
msgstr "" msgstr "añade primero un tipo de munición"
#: lib/cannery_web/live/invite_live/index.html.heex:60 #: lib/cannery_web/live/invite_live/index.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Disable" msgid "Disable"
msgstr "" msgstr "Desactivar"
#: lib/cannery_web/live/invite_live/index.html.heex:64 #: lib/cannery_web/live/invite_live/index.html.heex:64
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Enable" msgid "Enable"
msgstr "" msgstr "Activar"
#: lib/cannery_web/components/move_ammo_group_component.ex:80 #: lib/cannery_web/components/move_ammo_group_component.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr "Mover munición"
#: lib/cannery_web/live/invite_live/index.html.heex:80 #: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -23,14 +23,14 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to ## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/home_live.ex:64 #: lib/cannery_web/live/home_live.ex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
"%{name} te permite mantener un ojo en tus niveles de munición antes y " "%{name} te permite mantener un ojo en tus niveles de munición antes y "
"después de un día en el campo de tiro" "después de un día en el campo de tiro"
#: lib/cannery_web/live/home_live.ex:86 #: lib/cannery_web/live/home_live.ex:69
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "" msgstr ""
@ -40,30 +40,25 @@ msgstr ""
msgid "Admins" msgid "Admins"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:100 #: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins:" msgid "Admins:"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:73 #: lib/cannery_web/components/topbar.ex:73
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo" msgid "Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format
msgid "Average Price paid"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.ex:79 #: lib/cannery_web/live/tag_live/form_component.ex:79
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Background color" msgid "Background color"
@ -71,7 +66,6 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:82 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
msgstr "" msgstr ""
@ -83,42 +77,37 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:64 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:63 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:56
#: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "" msgstr ""
@ -133,18 +122,17 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:83 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:37 #: lib/cannery_web/components/ammo_group_card.ex:38
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count:" msgid "Count:"
@ -163,18 +151,12 @@ msgstr ""
msgid "Description:" msgid "Description:"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:61 #: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format
msgid "Edit Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:63
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "" msgstr ""
@ -201,29 +183,27 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:76 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:81 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:95 #: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Instance Information" msgid "Instance Information"
msgstr "" msgstr ""
#: lib/cannery_web/components/invite_card.ex:32 #: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Disabled" msgid "Invite Disabled"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:128 #: lib/cannery_web/live/home_live.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Only" msgid "Invite Only"
msgstr "" msgstr ""
@ -260,7 +240,6 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:84 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
@ -312,11 +291,6 @@ msgstr ""
msgid "No Ammo" msgid "No Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo Types"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:166 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
@ -339,15 +313,16 @@ msgid "No tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:37 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
#: lib/cannery_web/live/ammo_group_live/show.ex:93
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
#: lib/cannery_web/live/range_live/index.ex:82 #: lib/cannery_web/live/range_live/index.ex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:43 #: lib/cannery_web/components/ammo_group_card.ex:51
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes:" msgid "Notes:"
@ -360,40 +335,38 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:77 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:62 #: lib/cannery_web/components/ammo_group_card.ex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid:" msgid "Price paid:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:78 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:127 #: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Public Signups" msgid "Public Signups"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:73 #: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Secure:" msgid "Secure:"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:76 #: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
@ -404,12 +377,7 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:62 #: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Show Ammo type"
msgstr ""
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Simple:" msgid "Simple:"
msgstr "" msgstr ""
@ -442,14 +410,13 @@ msgstr ""
msgid "Text color" msgid "Text color"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:52 #: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:80 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
msgstr "" msgstr ""
@ -472,7 +439,7 @@ msgstr ""
msgid "Users" msgid "Users"
msgstr "" msgstr ""
#: lib/cannery_web/components/invite_card.ex:27 #: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Uses Left:" msgid "Uses Left:"
msgstr "" msgstr ""
@ -482,23 +449,23 @@ msgstr ""
msgid "Uses left" msgid "Uses left"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:48 #: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:77 #: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:64 #: lib/cannery_web/live/container_live/show.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -508,7 +475,9 @@ msgstr ""
msgid "Range day" msgid "Range day"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:89 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#: lib/cannery_web/live/range_live/index.ex:83 #: lib/cannery_web/live/range_live/index.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -530,18 +499,7 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format
msgid "Ammo groups"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Date (UTC)"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:37
#: lib/cannery_web/live/range_live/index.ex:32 #: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -563,8 +521,9 @@ msgstr ""
msgid "Rounds left" msgid "Rounds left"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:87 #: lib/cannery_web/live/ammo_group_live/show.ex:92
#: lib/cannery_web/live/range_live/index.ex:81 #: lib/cannery_web/live/range_live/index.ex:81
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
msgstr "" msgstr ""
@ -575,11 +534,7 @@ msgid "Shot Records"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format #: lib/cannery_web/live/ammo_group_live/index.html.heex:96
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -594,12 +549,14 @@ msgstr ""
msgid "Shot log" msgid "Shot log"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/live/ammo_group_live/index.ex:154 #: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142 #: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -611,35 +568,30 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:85 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
msgstr "" msgstr ""
@ -660,19 +612,18 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:79 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
msgstr "" msgstr ""
@ -688,36 +639,32 @@ msgid "Loading..."
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:106 #: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:65 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81 #: lib/cannery_web/live/ammo_type_live/show.html.heex:67
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.ex:105 #: lib/cannery_web/components/ammo_group_table_component.ex:221
#, elixir-autogen, elixir-format
msgid "Show %{name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:178 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:148 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:102 #: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -772,13 +719,13 @@ msgstr ""
msgid "Reset your password" msgid "Reset your password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:36 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:26 #: lib/cannery_web/live/range_live/index.ex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record Shots" msgid "Record Shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
@ -788,14 +735,7 @@ msgstr ""
msgid "Ammo types" msgid "Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -828,22 +768,22 @@ msgstr ""
msgid "Language" msgid "Language"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:151 #: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Get involved!" msgid "Get involved!"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:172 #: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Help translate" msgid "Help translate"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:183 #: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:161 #: lib/cannery_web/live/home_live.ex:146
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View the source code" msgid "View the source code"
msgstr "" msgstr ""
@ -854,22 +794,22 @@ msgstr ""
msgid "Catalog" msgid "Catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:40 #: lib/cannery_web/live/ammo_group_live/show.ex:45
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:38 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Move Ammo" msgid "Move Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:39 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Show Ammo" msgid "Show Ammo"
msgstr "" msgstr ""
@ -880,19 +820,19 @@ msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:95
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:25 #: lib/cannery_web/components/topbar.ex:25
#: lib/cannery_web/live/home_live.ex:42 #: lib/cannery_web/live/home_live.ex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cannery logo" msgid "Cannery logo"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "isn't he cute >:3" msgid "isn't he cute >:3"
msgstr "" msgstr ""
@ -902,55 +842,26 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:86
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/index.html.heex:23 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158 #: lib/cannery_web/live/ammo_type_live/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:110 #: lib/cannery_web/components/ammo_group_table_component.ex:192
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121 #: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds fired"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
@ -967,7 +878,9 @@ msgstr ""
msgid "Rounds" msgid "Rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:23 #: lib/cannery_web/live/container_live/index.html.heex:23
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -977,7 +890,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121 #: lib/cannery_web/live/ammo_type_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -987,7 +900,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:83
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "" msgstr ""
@ -997,7 +910,7 @@ msgstr ""
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -1007,7 +920,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89 #: lib/cannery_web/live/ammo_type_live/show.html.heex:75
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -1016,3 +929,192 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used up!" msgid "Used up!"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot chart"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:27
#, elixir-autogen, elixir-format, fuzzy
msgid "Blank:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:13
#, elixir-autogen, elixir-format, fuzzy
msgid "Bullet core:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:12
#, elixir-autogen, elixir-format, fuzzy
msgid "Bullet type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:15
#, elixir-autogen, elixir-format, fuzzy
msgid "Caliber:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:14
#, elixir-autogen, elixir-format, fuzzy
msgid "Cartridge:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:16
#, elixir-autogen, elixir-format, fuzzy
msgid "Case material:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Corrosive:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:24
#, elixir-autogen, elixir-format, fuzzy
msgid "Firing type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:21
#, elixir-autogen, elixir-format, fuzzy
msgid "Grains:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:26
#, elixir-autogen, elixir-format, fuzzy
msgid "Incendiary:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:17
#, elixir-autogen, elixir-format, fuzzy
msgid "Jacket type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:29
#, elixir-autogen, elixir-format, fuzzy
msgid "Manufacturer:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:18
#, elixir-autogen, elixir-format, fuzzy
msgid "Muzzle velocity:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:20
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder grains per charge:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:19
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:22
#, elixir-autogen, elixir-format, fuzzy
msgid "Pressure:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:23
#, elixir-autogen, elixir-format, fuzzy
msgid "Primer type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:25
#, elixir-autogen, elixir-format, fuzzy
msgid "Tracer:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:30
#, elixir-autogen, elixir-format, fuzzy
msgid "UPC:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:120
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/components/ammo_group_table_component.ex:230
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:77
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:44
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:15
#, elixir-autogen, elixir-format
msgid "Home"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:37
#, elixir-autogen, elixir-format, fuzzy
msgid "Total rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr ""

View File

@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-21 19:44+0000\n" "POT-Creation-Date: 2022-05-21 19:44+0000\n"
"PO-Revision-Date: 2022-05-22 22:52+0000\n" "PO-Revision-Date: 2022-11-13 21:49+0000\n"
"Last-Translator: Ed <ed.ylles1997@gmail.com>\n" "Last-Translator: Brea Foga <breaardiente@gmail.com>\n"
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/" "Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
"errors/es/>\n" "errors/es/>\n"
"Language: es\n" "Language: es\n"
@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.12.2\n" "X-Generator: Weblate 4.14.2\n"
## This file is a PO Template file. ## This file is a PO Template file.
## ##
@ -26,10 +26,10 @@ msgstr ""
#: lib/cannery/containers.ex:140 #: lib/cannery/containers.ex:140
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container must be empty before deleting" msgid "Container must be empty before deleting"
msgstr "el Contenedor debe estar vac antes de borrarlo" msgstr "El contenedor debe estar vacío antes de ser borrado"
#: lib/cannery_web/live/container_live/index.ex:88 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "No se pudo eliminar %{name}: %{error}" msgstr "No se pudo eliminar %{name}: %{error}"
@ -37,12 +37,12 @@ msgstr "No se pudo eliminar %{name}: %{error}"
#: lib/cannery_web/live/container_live/index.ex:76 #: lib/cannery_web/live/container_live/index.ex:76
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not find that container" msgid "Could not find that container"
msgstr "" msgstr "No se pudo encontrar el contenedor"
#: lib/cannery_web/controllers/user_settings_controller.ex:84 #: lib/cannery_web/controllers/user_settings_controller.ex:84
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Email change link is invalid or it has expired." msgid "Email change link is invalid or it has expired."
msgstr "" msgstr "El enlace de cambio de correo es inválido o ha expirado."
#: lib/cannery_web/templates/error/error.html.heex:8 #: lib/cannery_web/templates/error/error.html.heex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -52,22 +52,22 @@ msgstr "Error"
#: lib/cannery_web/templates/error/error.html.heex:28 #: lib/cannery_web/templates/error/error.html.heex:28
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Go back home" msgid "Go back home"
msgstr "" msgstr "Volver hacia atrás"
#: lib/cannery_web/views/error_view.ex:11 #: lib/cannery_web/views/error_view.ex:11
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Internal Server Error" msgid "Internal Server Error"
msgstr "" msgstr "Error interno del servidor"
#: lib/cannery_web/controllers/user_session_controller.ex:17 #: lib/cannery_web/controllers/user_session_controller.ex:17
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid email or password" msgid "Invalid email or password"
msgstr "" msgstr "Correo o contraseña incorrecta"
#: lib/cannery_web/views/error_view.ex:9 #: lib/cannery_web/views/error_view.ex:9
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Not found" msgid "Not found"
msgstr "" msgstr "No se encontró"
#: lib/cannery_web/templates/user_registration/new.html.heex:16 #: lib/cannery_web/templates/user_registration/new.html.heex:16
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:16 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
@ -90,117 +90,117 @@ msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:56 #: lib/cannery_web/controllers/user_registration_controller.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Sorry, public registration is disabled" msgid "Sorry, public registration is disabled"
msgstr "" msgstr "Lo sentimos, la inscripción pública está desactivada"
#: lib/cannery_web/controllers/user_registration_controller.ex:15 #: lib/cannery_web/controllers/user_registration_controller.ex:15
#: lib/cannery_web/controllers/user_registration_controller.ex:46 #: lib/cannery_web/controllers/user_registration_controller.ex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Sorry, this invite was not found or expired" msgid "Sorry, this invite was not found or expired"
msgstr "" msgstr "Lo sentimos, esta invitación no fue encontrada o ha expirado"
#: lib/cannery_web/controllers/user_settings_controller.ex:99 #: lib/cannery_web/controllers/user_settings_controller.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unable to delete user" msgid "Unable to delete user"
msgstr "" msgstr "No se pudo borrar el usuario"
#: lib/cannery_web/views/error_view.ex:10 #: lib/cannery_web/views/error_view.ex:10
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unauthorized" msgid "Unauthorized"
msgstr "" msgstr "No autorizado"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:54 #: lib/cannery_web/controllers/user_confirmation_controller.ex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "User confirmation link is invalid or it has expired." msgid "User confirmation link is invalid or it has expired."
msgstr "" msgstr "El enlace de confirmación es inválido o ha expirado."
#: lib/cannery_web/live/invite_live/index.ex:18 #: lib/cannery_web/live/invite_live/index.ex:18
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You are not authorized to view this page" msgid "You are not authorized to view this page"
msgstr "" msgstr "No está autorizado a ver esta página"
#: lib/cannery_web/controllers/user_auth.ex:177 #: lib/cannery_web/controllers/user_auth.ex:177
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You are not authorized to view this page." msgid "You are not authorized to view this page."
msgstr "" msgstr "No está autorizado a ver esta página."
#: lib/cannery/accounts/user.ex:138 #: lib/cannery/accounts/user.ex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "did not change" msgid "did not change"
msgstr "" msgstr "no cambió"
#: lib/cannery/accounts/user.ex:159 #: lib/cannery/accounts/user.ex:159
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "does not match password" msgid "does not match password"
msgstr "" msgstr "no coincide con la contraseña"
#: lib/cannery/accounts/user.ex:196 #: lib/cannery/accounts/user.ex:196
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "is not valid" msgid "is not valid"
msgstr "" msgstr "no es válido"
#: lib/cannery/accounts/user.ex:92 #: lib/cannery/accounts/user.ex:92
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "must have the @ sign and no spaces" msgid "must have the @ sign and no spaces"
msgstr "" msgstr "debe tener el signo @ y no contener espacios"
#: lib/cannery/tags.ex:40 #: lib/cannery/tags.ex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag not found" msgid "Tag not found"
msgstr "" msgstr "Etiqueta no encontrada"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30 #: lib/cannery_web/live/container_live/edit_tags_component.ex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be added" msgid "Tag could not be added"
msgstr "" msgstr "La etiqueta no pudo ser añadida"
#: lib/cannery/activity_log/shot_group.ex:123 #: lib/cannery/activity_log/shot_group.ex:123
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "" msgstr "El recuento debe dar al menos 1"
#: lib/cannery/activity_log/shot_group.ex:82 #: lib/cannery/activity_log/shot_group.ex:82
#: lib/cannery/activity_log/shot_group.ex:119 #: lib/cannery/activity_log/shot_group.ex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count must be less than %{count}" msgid "Count must be less than %{count}"
msgstr "" msgstr "El recuento debe ser menos de %{count}"
#: lib/cannery_web/controllers/user_auth.ex:39 #: lib/cannery_web/controllers/user_auth.ex:39
#: lib/cannery_web/controllers/user_auth.ex:161 #: lib/cannery_web/controllers/user_auth.ex:161
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "You must confirm your account and log in to access this page." msgid "You must confirm your account and log in to access this page."
msgstr "" msgstr "Debe confirmar su cuenta e iniciar sesión para acceder a esta página."
#: lib/cannery_web/live/container_live/edit_tags_component.ex:52 #: lib/cannery_web/live/container_live/edit_tags_component.ex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "" msgstr "La etiqueta no pudo ser eliminada"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:157 #: lib/cannery_web/live/ammo_group_live/form_component.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "" msgstr "No se pudo analizar el número de copias"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:142 #: lib/cannery_web/live/ammo_group_live/form_component.ex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr "Número inválido de copias, debe ser entre 1 y %{max}. Fue %{multiplier"
#: lib/cannery/ammo.ex:587 #: lib/cannery/ammo.ex:609
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr "Multiplicador inválido"
#: lib/cannery/ammo/ammo_group.ex:94 #: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Please select an ammo type and container" msgid "Please select an ammo type and container"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:67 #: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element." msgid "Your browser does not support the canvas element."
msgstr "Su navegador no es compatible con el elemento lienzo."
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack"
msgstr "" msgstr ""

View File

@ -32,7 +32,7 @@ msgid "%{name} created successfully"
msgstr "%{name} creado exitosamente" msgstr "%{name} creado exitosamente"
#: lib/cannery_web/live/ammo_type_live/index.ex:47 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:55
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -51,7 +51,7 @@ msgid "%{name} enabled succesfully"
msgstr "%{name} activado exitosamente" msgstr "%{name} activado exitosamente"
#: lib/cannery_web/live/container_live/index.ex:81 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "%{name} ha sido borrado" msgstr "%{name} ha sido borrado"
@ -76,20 +76,15 @@ msgstr ""
"Un enlace para confirmar el correo electrónico ha sido enviado a la nueva " "Un enlace para confirmar el correo electrónico ha sido enviado a la nueva "
"dirección." "dirección."
#: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully"
msgstr "Grupo de Munición borrado exitosamente"
#: lib/cannery_web/live/invite_live/index.html.heex:103 #: lib/cannery_web/live/invite_live/index.html.heex:103
#: lib/cannery_web/live/invite_live/index.html.heex:133 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!" msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!"
#: lib/cannery_web/live/container_live/index.ex:223 #: lib/cannery_web/live/container_live/index.ex:236
#: lib/cannery_web/live/container_live/index.html.heex:73 #: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
@ -100,7 +95,7 @@ msgstr "Está seguro que desea eliminar %{name}?"
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Está seguro que quiere eliminar la invitación para %{name}?" msgstr "Está seguro que quiere eliminar la invitación para %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.ex:242 #: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -160,13 +155,13 @@ msgstr "Contraseña cambiada exitosamente."
msgid "Please check your email to verify your account" msgid "Please check your email to verify your account"
msgstr "Por favor chequea el correo para verificar tu cuenta" msgstr "Por favor chequea el correo para verificar tu cuenta"
#: lib/cannery_web/live/home_live.ex:108 #: lib/cannery_web/live/home_live.ex:91
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "Regístrese para configurar %{name}" msgstr "Regístrese para configurar %{name}"
#: lib/cannery_web/components/add_shot_group_component.html.heex:55 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:82
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33 #: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -192,7 +187,7 @@ msgstr ""
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "%{name} añadido exitosamente" msgstr "%{name} añadido exitosamente"
#: lib/cannery_web/live/container_live/show.ex:37 #: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}" msgid "%{tag_name} has been removed from %{container_name}"
msgstr "se ha removido %{tag_name} de %{container_name}" msgstr "se ha removido %{tag_name} de %{container_name}"
@ -212,13 +207,13 @@ msgstr "Tiros registrados exitosamente"
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "Está seguro que desea desmontar esta munición?" msgstr "Está seguro que desea desmontar esta munición?"
#: lib/cannery_web/live/ammo_group_live/show.ex:132 #: lib/cannery_web/live/ammo_group_live/show.ex:137
#: lib/cannery_web/live/range_live/index.ex:184 #: lib/cannery_web/live/range_live/index.ex:159
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:78 #: lib/cannery_web/live/ammo_group_live/show.ex:83
#: lib/cannery_web/live/range_live/index.ex:54 #: lib/cannery_web/live/range_live/index.ex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -255,7 +250,7 @@ msgstr ""
msgid "You'll need to" msgid "You'll need to"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:67 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Creating..." msgid "Creating..."
msgstr "" msgstr ""
@ -270,7 +265,8 @@ msgstr ""
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:50 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#: lib/cannery_web/live/ammo_group_live/show.ex:55
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "" msgstr ""

View File

@ -134,7 +134,7 @@ msgid "Reset password"
msgstr "Réinitialisé le mot de passe" msgstr "Réinitialisé le mot de passe"
#: lib/cannery_web/components/add_shot_group_component.html.heex:53 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:81
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31 #: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -149,7 +149,7 @@ msgstr "Sauvegarder"
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "Envoyer les instructions pour réinitialiser le mot de passe" msgstr "Envoyer les instructions pour réinitialiser le mot de passe"
#: lib/cannery_web/live/container_live/show.html.heex:72 #: lib/cannery_web/live/container_live/show.html.heex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "Pourquoi pas en ajouter un?" msgstr "Pourquoi pas en ajouter un?"
@ -169,7 +169,7 @@ msgstr "Munition préparée"
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "Pourquoi pas en préparer pour tirer?" msgstr "Pourquoi pas en préparer pour tirer?"
#: lib/cannery_web/live/ammo_group_live/index.ex:199 #: lib/cannery_web/live/ammo_group_live/index.html.heex:79
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -201,7 +201,7 @@ msgstr "Copier dans le presse-papier"
msgid "add a container first" msgid "add a container first"
msgstr "ajouter un conteneur en premier" msgstr "ajouter un conteneur en premier"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Create" msgid "Create"
msgstr "Créer" msgstr "Créer"
@ -246,11 +246,6 @@ msgstr ""
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -23,14 +23,14 @@ msgstr ""
# # Run "mix gettext.extract" to bring this file up to # # Run "mix gettext.extract" to bring this file up to
# # date. Leave "msgstr"s empty as changing them here has no # # date. Leave "msgstr"s empty as changing them here has no
# # effect: edit them in PO (.po) files instead. # # effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/home_live.ex:64 #: lib/cannery_web/live/home_live.ex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
"%{name} vous permet de facilement garder un œil sur votre niveau de munition " "%{name} vous permet de facilement garder un œil sur votre niveau de munition "
"avant et après une journée de stand" "avant et après une journée de stand"
#: lib/cannery_web/live/home_live.ex:86 #: lib/cannery_web/live/home_live.ex:69
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "Accédez depuis nimporte quel appareil connecté à internet" msgstr "Accédez depuis nimporte quel appareil connecté à internet"
@ -40,30 +40,25 @@ msgstr "Accédez depuis nimporte quel appareil connecté à internet"
msgid "Admins" msgid "Admins"
msgstr "Administrateur·ices" msgstr "Administrateur·ices"
#: lib/cannery_web/live/home_live.ex:100 #: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins:" msgid "Admins:"
msgstr "Administrateur·ices:" msgstr "Administrateur·ices:"
#: lib/cannery_web/components/topbar.ex:73 #: lib/cannery_web/components/topbar.ex:73
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo" msgid "Ammo"
msgstr "Munition" msgstr "Munition"
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "Type de munition" msgstr "Type de munition"
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format
msgid "Average Price paid"
msgstr "Prix acheté moyen"
#: lib/cannery_web/live/tag_live/form_component.ex:79 #: lib/cannery_web/live/tag_live/form_component.ex:79
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Background color" msgid "Background color"
@ -71,7 +66,6 @@ msgstr "Couleur de fond"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:82 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
msgstr "Vide" msgstr "Vide"
@ -83,42 +77,37 @@ msgstr "Cuivre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:64 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "Noyau de balle" msgstr "Noyau de balle"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:63 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "Type de balle" msgstr "Type de balle"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "Calibre" msgstr "Calibre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "Cartouche" msgstr "Cartouche"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
msgstr "Matériau de la caisse" msgstr "Matériau de la caisse"
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:56
#: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "Conteneur" msgstr "Conteneur"
@ -133,18 +122,17 @@ msgstr "Conteneurs"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:83 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "Corrosive" msgstr "Corrosive"
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "Quantité" msgstr "Quantité"
#: lib/cannery_web/components/ammo_group_card.ex:37 #: lib/cannery_web/components/ammo_group_card.ex:38
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count:" msgid "Count:"
@ -163,18 +151,12 @@ msgstr "Description"
msgid "Description:" msgid "Description:"
msgstr "Description:" msgstr "Description:"
#: lib/cannery_web/live/home_live.ex:61 #: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "Simple à utiliser:" msgstr "Simple à utiliser:"
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format
msgid "Edit Ammo group"
msgstr "Éditer le groupe de munition"
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:63
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "Éditer le type de munition" msgstr "Éditer le type de munition"
@ -201,29 +183,27 @@ msgstr "FMJ"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:76 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "Graines" msgstr "Graines"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:81 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
msgstr "Incendiaire" msgstr "Incendiaire"
#: lib/cannery_web/live/home_live.ex:95 #: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Instance Information" msgid "Instance Information"
msgstr "Information de linstance" msgstr "Information de linstance"
#: lib/cannery_web/components/invite_card.ex:32 #: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Disabled" msgid "Invite Disabled"
msgstr "Invitation désactivée" msgstr "Invitation désactivée"
#: lib/cannery_web/live/home_live.ex:128 #: lib/cannery_web/live/home_live.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Only" msgid "Invite Only"
msgstr "Uniquement sur invitation" msgstr "Uniquement sur invitation"
@ -260,7 +240,6 @@ msgstr "Chargeur, lame-chargeur, boite de munition, etc."
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:84 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
msgstr "Fabricant" msgstr "Fabricant"
@ -312,11 +291,6 @@ msgstr "Nouveau tag"
msgid "No Ammo" msgid "No Ammo"
msgstr "Aucune munition" msgstr "Aucune munition"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo Types"
msgstr "Aucun type de munition"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:166 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
@ -339,15 +313,16 @@ msgid "No tags"
msgstr "Aucun tag" msgstr "Aucun tag"
#: lib/cannery_web/components/add_shot_group_component.html.heex:37 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
#: lib/cannery_web/live/ammo_group_live/show.ex:93
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
#: lib/cannery_web/live/range_live/index.ex:82 #: lib/cannery_web/live/range_live/index.ex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
msgstr "Notes" msgstr "Notes"
#: lib/cannery_web/components/ammo_group_card.ex:43 #: lib/cannery_web/components/ammo_group_card.ex:51
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes:" msgid "Notes:"
@ -360,40 +335,38 @@ msgstr "Sur létagère"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:77 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "Pression" msgstr "Pression"
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "Prix payé" msgstr "Prix payé"
#: lib/cannery_web/components/ammo_group_card.ex:62 #: lib/cannery_web/components/ammo_group_card.ex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid:" msgid "Price paid:"
msgstr "Prix payé:" msgstr "Prix payé:"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:78 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
msgstr "Type damorce" msgstr "Type damorce"
#: lib/cannery_web/live/home_live.ex:127 #: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Public Signups" msgid "Public Signups"
msgstr "Enregistrements publics" msgstr "Enregistrements publics"
#: lib/cannery_web/live/home_live.ex:73 #: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Secure:" msgid "Secure:"
msgstr "Sécurisé:" msgstr "Sécurisé:"
#: lib/cannery_web/live/home_live.ex:76 #: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
@ -406,12 +379,7 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "Paramètres" msgstr "Paramètres"
#: lib/cannery_web/live/ammo_type_live/show.ex:62 #: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Show Ammo type"
msgstr "Montrer le type de munition"
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Simple:" msgid "Simple:"
msgstr "Simple:" msgstr "Simple:"
@ -446,14 +414,13 @@ msgstr ""
msgid "Text color" msgid "Text color"
msgstr "Couleur du texte" msgstr "Couleur du texte"
#: lib/cannery_web/live/home_live.ex:52 #: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "Le site web de suivi darme à feux auto-hébergé" msgstr "Le site web de suivi darme à feux auto-hébergé"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:80 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
msgstr "Traceuse" msgstr "Traceuse"
@ -476,7 +443,7 @@ msgstr "Type:"
msgid "Users" msgid "Users"
msgstr "Utilisateurs" msgstr "Utilisateurs"
#: lib/cannery_web/components/invite_card.ex:27 #: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Uses Left:" msgid "Uses Left:"
msgstr "Utilisations restantes:" msgstr "Utilisations restantes:"
@ -486,23 +453,23 @@ msgstr "Utilisations restantes:"
msgid "Uses left" msgid "Uses left"
msgstr "Utilisations restantes" msgstr "Utilisations restantes"
#: lib/cannery_web/live/home_live.ex:48 #: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "Bienvenue à %{name}" msgstr "Bienvenue à %{name}"
#: lib/cannery_web/live/home_live.ex:77 #: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "Vos données restent avec vous, point final" msgstr "Vos données restent avec vous, point final"
#: lib/cannery_web/live/container_live/show.html.heex:64 #: lib/cannery_web/live/container_live/show.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "Aucun tag pour ce conteneur" msgstr "Aucun tag pour ce conteneur"
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "Portée" msgstr "Portée"
@ -512,7 +479,9 @@ msgstr "Portée"
msgid "Range day" msgid "Range day"
msgstr "Journée de stand" msgstr "Journée de stand"
#: lib/cannery_web/live/ammo_group_live/show.ex:89 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#: lib/cannery_web/live/range_live/index.ex:83 #: lib/cannery_web/live/range_live/index.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -534,18 +503,7 @@ msgstr "Aucune munition sélectionnée"
msgid "Record shots" msgid "Record shots"
msgstr "Tirs enregistrés" msgstr "Tirs enregistrés"
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format
msgid "Ammo groups"
msgstr "Groupes de munition"
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Date (UTC)"
msgstr "Date (UTC)"
#: lib/cannery_web/live/ammo_group_live/show.ex:37
#: lib/cannery_web/live/range_live/index.ex:32 #: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -567,8 +525,9 @@ msgstr "Aucun tir enregistré"
msgid "Rounds left" msgid "Rounds left"
msgstr "Cartouches restantes" msgstr "Cartouches restantes"
#: lib/cannery_web/live/ammo_group_live/show.ex:87 #: lib/cannery_web/live/ammo_group_live/show.ex:92
#: lib/cannery_web/live/range_live/index.ex:81 #: lib/cannery_web/live/range_live/index.ex:81
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
msgstr "Cartouches tirées" msgstr "Cartouches tirées"
@ -579,11 +538,7 @@ msgid "Shot Records"
msgstr "Enregistrements de tir" msgstr "Enregistrements de tir"
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format #: lib/cannery_web/live/ammo_group_live/index.html.heex:96
msgid "Move Ammo group"
msgstr "Déplacer le groupe de munition"
#: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "Déplacer munition" msgstr "Déplacer munition"
@ -598,12 +553,14 @@ msgstr "Aucun autre conteneur"
msgid "Shot log" msgid "Shot log"
msgstr "Évènements de tir" msgstr "Évènements de tir"
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/live/ammo_group_live/index.ex:154 #: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142 #: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "%{amount}$" msgstr "%{amount}$"
@ -615,35 +572,30 @@ msgstr "Bi-métal"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "Type de douille" msgstr "Type de douille"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "Vélocité du canon" msgstr "Vélocité du canon"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "Graines de poudre par charge" msgstr "Graines de poudre par charge"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "Type de poudre" msgstr "Type de poudre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:85 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
msgstr "UPC" msgstr "UPC"
@ -664,19 +616,18 @@ msgstr "Mot de passe actuel"
msgid "New password" msgid "New password"
msgstr "Nouveau mot de passe" msgstr "Nouveau mot de passe"
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "Sélectionné" msgstr "Sélectionné"
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "Désélectionner" msgstr "Désélectionner"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:79 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
msgstr "Type dallumage" msgstr "Type dallumage"
@ -692,36 +643,32 @@ msgid "Loading..."
msgstr "Chargement en cours…" msgstr "Chargement en cours…"
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:106 #: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "Éditer %{name}" msgstr "Éditer %{name}"
#: lib/cannery_web/live/container_live/index.ex:65 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "Éditer les tags de %{name}" msgstr "Éditer les tags de %{name}"
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81 #: lib/cannery_web/live/ammo_type_live/show.html.heex:67
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
msgstr "Cartouches:" msgstr "Cartouches:"
#: lib/cannery_web/live/container_live/show.ex:105 #: lib/cannery_web/components/ammo_group_table_component.ex:221
#, elixir-autogen, elixir-format
msgid "Show %{name}"
msgstr "Montrer %{name}"
#: lib/cannery_web/live/ammo_type_live/index.ex:178 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:148 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "Aucune information de prix" msgstr "Aucune information de prix"
#: lib/cannery_web/live/ammo_group_live/index.ex:102 #: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "%restante" msgstr "%restante"
@ -776,13 +723,13 @@ msgstr "Senregistrer"
msgid "Reset your password" msgid "Reset your password"
msgstr "Réinitialiser votre mot de passe" msgstr "Réinitialiser votre mot de passe"
#: lib/cannery_web/live/ammo_group_live/show.ex:36 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:26 #: lib/cannery_web/live/range_live/index.ex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record Shots" msgid "Record Shots"
msgstr "Enregistrer des tirs" msgstr "Enregistrer des tirs"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copies" msgid "Copies"
msgstr "Exemplaires" msgstr "Exemplaires"
@ -792,14 +739,7 @@ msgstr "Exemplaires"
msgid "Ammo types" msgid "Ammo types"
msgstr "Types de munition" msgstr "Types de munition"
#: lib/cannery_web/live/ammo_group_live/index.ex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr "Ajouté le"
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "Ajouté le:" msgstr "Ajouté le:"
@ -832,22 +772,22 @@ msgstr "Allemand"
msgid "Language" msgid "Language"
msgstr "Langue" msgstr "Langue"
#: lib/cannery_web/live/home_live.ex:151 #: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Get involved!" msgid "Get involved!"
msgstr "Impliquez-vous!" msgstr "Impliquez-vous!"
#: lib/cannery_web/live/home_live.ex:172 #: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Help translate" msgid "Help translate"
msgstr "Aider à la traduction" msgstr "Aider à la traduction"
#: lib/cannery_web/live/home_live.ex:183 #: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "Remonter des bugs ou une demande de fonctionnalité" msgstr "Remonter des bugs ou une demande de fonctionnalité"
#: lib/cannery_web/live/home_live.ex:161 #: lib/cannery_web/live/home_live.ex:146
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View the source code" msgid "View the source code"
msgstr "Voir le code source" msgstr "Voir le code source"
@ -858,22 +798,22 @@ msgstr "Voir le code source"
msgid "Catalog" msgid "Catalog"
msgstr "Catalogue" msgstr "Catalogue"
#: lib/cannery_web/live/ammo_group_live/show.ex:40 #: lib/cannery_web/live/ammo_group_live/show.ex:45
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "Éditer le type de munition" msgstr "Éditer le type de munition"
#: lib/cannery_web/live/ammo_group_live/show.ex:38 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Move Ammo" msgid "Move Ammo"
msgstr "Déplacer munition" msgstr "Déplacer munition"
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "Aucun groupe de munition pour ce conteneur" msgstr "Aucun groupe de munition pour ce conteneur"
#: lib/cannery_web/live/ammo_group_live/show.ex:39 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Show Ammo" msgid "Show Ammo"
msgstr "Montrer le type de munition" msgstr "Montrer le type de munition"
@ -884,19 +824,19 @@ msgid "This ammo is not in a container"
msgstr "Ce groupe de munition nest pas dans un conteneur" msgstr "Ce groupe de munition nest pas dans un conteneur"
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:95
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
msgstr "Packages:" msgstr "Packages:"
#: lib/cannery_web/components/topbar.ex:25 #: lib/cannery_web/components/topbar.ex:25
#: lib/cannery_web/live/home_live.ex:42 #: lib/cannery_web/live/home_live.ex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cannery logo" msgid "Cannery logo"
msgstr "Logo de Cannery" msgstr "Logo de Cannery"
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "isn't he cute >:3" msgid "isn't he cute >:3"
msgstr "N'est-il mignon >:3" msgstr "N'est-il mignon >:3"
@ -907,55 +847,26 @@ msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
"Laissez \"Utilisations restantes\" vide pour rendre l'invitation illimitée" "Laissez \"Utilisations restantes\" vide pour rendre l'invitation illimitée"
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:86
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Container:" msgid "Container:"
msgstr "Conteneur" msgstr "Conteneur"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/index.html.heex:23 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158 #: lib/cannery_web/live/ammo_type_live/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:110 #: lib/cannery_web/components/ammo_group_table_component.ex:192
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121 #: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds fired"
msgstr "Cartouches utilisées"
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "Cartouches tirées" msgstr "Cartouches tirées"
@ -972,7 +883,9 @@ msgstr "Packages:"
msgid "Rounds" msgid "Rounds"
msgstr "Cartouches:" msgstr "Cartouches:"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:23 #: lib/cannery_web/live/container_live/index.html.heex:23
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -982,7 +895,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121 #: lib/cannery_web/live/ammo_type_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -992,7 +905,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "Quantité de cartouches" msgstr "Quantité de cartouches"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:83
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "Nombre totale de cartouches tirées:" msgstr "Nombre totale de cartouches tirées:"
@ -1002,7 +915,7 @@ msgstr "Nombre totale de cartouches tirées:"
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -1012,7 +925,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89 #: lib/cannery_web/live/ammo_type_live/show.html.heex:75
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -1021,3 +934,192 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used up!" msgid "Used up!"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot chart"
msgstr "Cartouches tirées"
#: lib/cannery_web/live/ammo_type_live/show.ex:27
#, elixir-autogen, elixir-format, fuzzy
msgid "Blank:"
msgstr "Vide"
#: lib/cannery_web/live/ammo_type_live/show.ex:13
#, elixir-autogen, elixir-format, fuzzy
msgid "Bullet core:"
msgstr "Noyau de balle"
#: lib/cannery_web/live/ammo_type_live/show.ex:12
#, elixir-autogen, elixir-format, fuzzy
msgid "Bullet type:"
msgstr "Type de balle"
#: lib/cannery_web/live/ammo_type_live/show.ex:15
#, elixir-autogen, elixir-format, fuzzy
msgid "Caliber:"
msgstr "Calibre"
#: lib/cannery_web/live/ammo_type_live/show.ex:14
#, elixir-autogen, elixir-format, fuzzy
msgid "Cartridge:"
msgstr "Cartouche"
#: lib/cannery_web/live/ammo_type_live/show.ex:16
#, elixir-autogen, elixir-format, fuzzy
msgid "Case material:"
msgstr "Matériau de la caisse"
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Corrosive:"
msgstr "Corrosive"
#: lib/cannery_web/live/ammo_type_live/show.ex:24
#, elixir-autogen, elixir-format, fuzzy
msgid "Firing type:"
msgstr "Type dallumage"
#: lib/cannery_web/live/ammo_type_live/show.ex:21
#, elixir-autogen, elixir-format, fuzzy
msgid "Grains:"
msgstr "Graines"
#: lib/cannery_web/live/ammo_type_live/show.ex:26
#, elixir-autogen, elixir-format, fuzzy
msgid "Incendiary:"
msgstr "Incendiaire"
#: lib/cannery_web/live/ammo_type_live/show.ex:17
#, elixir-autogen, elixir-format, fuzzy
msgid "Jacket type:"
msgstr "Type de douille"
#: lib/cannery_web/live/ammo_type_live/show.ex:29
#, elixir-autogen, elixir-format, fuzzy
msgid "Manufacturer:"
msgstr "Fabricant"
#: lib/cannery_web/live/ammo_type_live/show.ex:18
#, elixir-autogen, elixir-format, fuzzy
msgid "Muzzle velocity:"
msgstr "Vélocité du canon"
#: lib/cannery_web/live/ammo_type_live/show.ex:20
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder grains per charge:"
msgstr "Graines de poudre par charge"
#: lib/cannery_web/live/ammo_type_live/show.ex:19
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder type:"
msgstr "Type de poudre"
#: lib/cannery_web/live/ammo_type_live/show.ex:22
#, elixir-autogen, elixir-format, fuzzy
msgid "Pressure:"
msgstr "Pression"
#: lib/cannery_web/live/ammo_type_live/show.ex:23
#, elixir-autogen, elixir-format, fuzzy
msgid "Primer type:"
msgstr "Type damorce"
#: lib/cannery_web/live/ammo_type_live/show.ex:25
#, elixir-autogen, elixir-format, fuzzy
msgid "Tracer:"
msgstr "Traceuse"
#: lib/cannery_web/live/ammo_type_live/show.ex:30
#, elixir-autogen, elixir-format, fuzzy
msgid "UPC:"
msgstr "UPC"
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:120
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}"
msgstr "Éditer %{name}"
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/components/ammo_group_table_component.ex:230
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:77
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr "Nombre original:"
#: lib/cannery_web/components/ammo_group_card.ex:44
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count:"
msgstr "Nombre original:"
#: lib/cannery_web/live/home_live.ex:15
#, elixir-autogen, elixir-format
msgid "Home"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:37
#, elixir-autogen, elixir-format, fuzzy
msgid "Total rounds:"
msgstr "Nombre totale de cartouches tirées:"
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit ammo"
msgstr "Éditer le type de munition"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr "Aucun type de munition"

View File

@ -29,7 +29,7 @@ msgid "Container must be empty before deleting"
msgstr "Le conteneur doit être vide pour être supprimé" msgstr "Le conteneur doit être vide pour être supprimé"
#: lib/cannery_web/live/container_live/index.ex:88 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "Impossible de supprimer %{name} : %{error}" msgstr "Impossible de supprimer %{name} : %{error}"
@ -186,22 +186,22 @@ msgstr "Impossible d'analyser le nombre de copies"
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}" msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"
#: lib/cannery/ammo.ex:587 #: lib/cannery/ammo.ex:609
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "Multiplicateur invalide" msgstr "Multiplicateur invalide"
#: lib/cannery/ammo/ammo_group.ex:94 #: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Please select an ammo type and container" msgid "Please select an ammo type and container"
msgstr "Veuillez choisir un type de munitions et un conteneur" msgstr "Veuillez choisir un type de munitions et un conteneur"
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr "Veuillez choisir un utilisateur valide et un groupe de munitions"
#: lib/cannery_web/live/range_live/index.html.heex:67 #: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element." msgid "Your browser does not support the canvas element."
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack"
msgstr "Veuillez choisir un utilisateur valide et un groupe de munitions"

View File

@ -32,7 +32,7 @@ msgid "%{name} created successfully"
msgstr "%{name} créé· avec succès" msgstr "%{name} créé· avec succès"
#: lib/cannery_web/live/ammo_type_live/index.ex:47 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:55
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -51,7 +51,7 @@ msgid "%{name} enabled succesfully"
msgstr "%{name} activé·e avec succès" msgstr "%{name} activé·e avec succès"
#: lib/cannery_web/live/container_live/index.ex:81 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "%{name} a été supprimé·e" msgstr "%{name} a été supprimé·e"
@ -76,11 +76,6 @@ msgstr ""
"Un lien pour confirmer votre changement de mél a été envoyé à la nouvelle " "Un lien pour confirmer votre changement de mél a été envoyé à la nouvelle "
"adresse." "adresse."
#: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully"
msgstr "Groupe de munition supprimé avec succès"
#: lib/cannery_web/live/invite_live/index.html.heex:103 #: lib/cannery_web/live/invite_live/index.html.heex:103
#: lib/cannery_web/live/invite_live/index.html.heex:133 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -88,9 +83,9 @@ msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
"Êtes-vous certain·e de supprimer %{email}? Cette action est définitive!" "Êtes-vous certain·e de supprimer %{email}? Cette action est définitive!"
#: lib/cannery_web/live/container_live/index.ex:223 #: lib/cannery_web/live/container_live/index.ex:236
#: lib/cannery_web/live/container_live/index.html.heex:73 #: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
@ -101,7 +96,7 @@ msgstr "Êtes-vous certain·e de supprimer %{name}?"
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?" msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.ex:242 #: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -161,13 +156,13 @@ msgstr "Mot de passe mis à jour avec succès."
msgid "Please check your email to verify your account" msgid "Please check your email to verify your account"
msgstr "Veuillez vérifier votre mél pour confirmer votre compte" msgstr "Veuillez vérifier votre mél pour confirmer votre compte"
#: lib/cannery_web/live/home_live.ex:108 #: lib/cannery_web/live/home_live.ex:91
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "Senregistrer pour mettre en place %{name}" msgstr "Senregistrer pour mettre en place %{name}"
#: lib/cannery_web/components/add_shot_group_component.html.heex:55 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:82
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33 #: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -194,7 +189,7 @@ msgstr ""
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "%{name} a été ajouté avec succès" msgstr "%{name} a été ajouté avec succès"
#: lib/cannery_web/live/container_live/show.ex:37 #: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}" msgid "%{tag_name} has been removed from %{container_name}"
msgstr "%{tag_name} a été retiré de %{container_name}" msgstr "%{tag_name} a été retiré de %{container_name}"
@ -214,13 +209,13 @@ msgstr "Tirs enregistré avec succès"
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition?" msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition?"
#: lib/cannery_web/live/ammo_group_live/show.ex:132 #: lib/cannery_web/live/ammo_group_live/show.ex:137
#: lib/cannery_web/live/range_live/index.ex:184 #: lib/cannery_web/live/range_live/index.ex:159
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir?" msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir?"
#: lib/cannery_web/live/ammo_group_live/show.ex:78 #: lib/cannery_web/live/ammo_group_live/show.ex:83
#: lib/cannery_web/live/range_live/index.ex:54 #: lib/cannery_web/live/range_live/index.ex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -257,7 +252,7 @@ msgstr "%{name} retiré avec succès"
msgid "You'll need to" msgid "You'll need to"
msgstr "Vous aurez besoin de" msgstr "Vous aurez besoin de"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:67 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Creating..." msgid "Creating..."
msgstr "Création en cours…" msgstr "Création en cours…"
@ -272,7 +267,8 @@ msgstr "Êtes-vous certain·e de vouloir changer votre langue?"
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "Langue mise à jour avec succès." msgstr "Langue mise à jour avec succès."
#: lib/cannery_web/live/ammo_group_live/show.ex:50 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#: lib/cannery_web/live/ammo_group_live/show.ex:55
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "Groupe de munition supprimé avec succès" msgstr "Groupe de munition supprimé avec succès"

View File

@ -132,7 +132,7 @@ msgid "Reset password"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:53 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:81
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31 #: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -147,7 +147,7 @@ msgstr ""
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:72 #: lib/cannery_web/live/container_live/show.html.heex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Why not add one?" msgid "Why not add one?"
msgstr "" msgstr ""
@ -167,7 +167,7 @@ msgstr ""
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:199 #: lib/cannery_web/live/ammo_group_live/index.html.heex:79
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -199,7 +199,7 @@ msgstr ""
msgid "add a container first" msgid "add a container first"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Create" msgid "Create"
msgstr "" msgstr ""
@ -244,11 +244,6 @@ msgstr ""
msgid "Set Unlimited" msgid "Set Unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86 #: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31 #: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -21,12 +21,12 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to ## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/home_live.ex:64 #: lib/cannery_web/live/home_live.ex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day" msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:86 #: lib/cannery_web/live/home_live.ex:69
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Access from any internet-capable device" msgid "Access from any internet-capable device"
msgstr "" msgstr ""
@ -36,30 +36,25 @@ msgstr ""
msgid "Admins" msgid "Admins"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:100 #: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Admins:" msgid "Admins:"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:73 #: lib/cannery_web/components/topbar.ex:73
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3 #: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80 #: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo" msgid "Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format
msgid "Average Price paid"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.ex:79 #: lib/cannery_web/live/tag_live/form_component.ex:79
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Background color" msgid "Background color"
@ -67,7 +62,6 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:82 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
msgstr "" msgstr ""
@ -79,42 +73,37 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:64 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:63 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:56
#: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "" msgstr ""
@ -129,18 +118,17 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:83 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:37 #: lib/cannery_web/components/ammo_group_card.ex:38
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8 #: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count:" msgid "Count:"
@ -159,18 +147,12 @@ msgstr ""
msgid "Description:" msgid "Description:"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:61 #: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Easy to Use:" msgid "Easy to Use:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format
msgid "Edit Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:23 #: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:63
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo type" msgid "Edit Ammo type"
msgstr "" msgstr ""
@ -197,29 +179,27 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:76 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:81 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:95 #: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Instance Information" msgid "Instance Information"
msgstr "" msgstr ""
#: lib/cannery_web/components/invite_card.ex:32 #: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Disabled" msgid "Invite Disabled"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:128 #: lib/cannery_web/live/home_live.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invite Only" msgid "Invite Only"
msgstr "" msgstr ""
@ -256,7 +236,6 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:84 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
@ -308,11 +287,6 @@ msgstr ""
msgid "No Ammo" msgid "No Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo Types"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:166 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
@ -335,15 +309,16 @@ msgid "No tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:37 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/components/ammo_group_table_component.ex:81
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:49
#: lib/cannery_web/live/ammo_group_live/show.ex:93
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
#: lib/cannery_web/live/range_live/index.ex:82 #: lib/cannery_web/live/range_live/index.ex:82
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:43 #: lib/cannery_web/components/ammo_group_card.ex:51
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24 #: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Notes:" msgid "Notes:"
@ -356,40 +331,38 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:77 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:62 #: lib/cannery_web/components/ammo_group_card.ex:70
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid:" msgid "Price paid:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:78 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:127 #: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Public Signups" msgid "Public Signups"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:73 #: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Secure:" msgid "Secure:"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:76 #: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust." msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr "" msgstr ""
@ -400,12 +373,7 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:62 #: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Show Ammo type"
msgstr ""
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Simple:" msgid "Simple:"
msgstr "" msgstr ""
@ -438,14 +406,13 @@ msgstr ""
msgid "Text color" msgid "Text color"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:52 #: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website" msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:80 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
msgstr "" msgstr ""
@ -468,7 +435,7 @@ msgstr ""
msgid "Users" msgid "Users"
msgstr "" msgstr ""
#: lib/cannery_web/components/invite_card.ex:27 #: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Uses Left:" msgid "Uses Left:"
msgstr "" msgstr ""
@ -478,23 +445,23 @@ msgstr ""
msgid "Uses left" msgid "Uses left"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:48 #: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Welcome to %{name}" msgid "Welcome to %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:77 #: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your data stays with you, period" msgid "Your data stays with you, period"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:64 #: lib/cannery_web/live/container_live/show.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No tags for this container" msgid "No tags for this container"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -504,7 +471,9 @@ msgstr ""
msgid "Range day" msgid "Range day"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:89 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/ammo_group_live/show.ex:94
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#: lib/cannery_web/live/range_live/index.ex:83 #: lib/cannery_web/live/range_live/index.ex:83
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date" msgid "Date"
@ -526,18 +495,7 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format
msgid "Ammo groups"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Date (UTC)"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:37
#: lib/cannery_web/live/range_live/index.ex:32 #: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Shot Records" msgid "Edit Shot Records"
@ -559,8 +517,9 @@ msgstr ""
msgid "Rounds left" msgid "Rounds left"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:87 #: lib/cannery_web/live/ammo_group_live/show.ex:92
#: lib/cannery_web/live/range_live/index.ex:81 #: lib/cannery_web/live/range_live/index.ex:81
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot" msgid "Rounds shot"
msgstr "" msgstr ""
@ -571,11 +530,7 @@ msgid "Shot Records"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:32 #: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format #: lib/cannery_web/live/ammo_group_live/index.html.heex:96
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -590,12 +545,14 @@ msgstr ""
msgid "Shot log" msgid "Shot log"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/live/ammo_group_live/index.ex:154 #: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:152
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142 #: lib/cannery_web/live/ammo_type_live/show.html.heex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -607,35 +564,30 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:85 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
msgstr "" msgstr ""
@ -656,19 +608,18 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:192 #: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:79 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
msgstr "" msgstr ""
@ -684,36 +635,32 @@ msgid "Loading..."
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:27 #: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:106 #: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:65 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81 #: lib/cannery_web/live/ammo_type_live/show.html.heex:67
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.ex:105 #: lib/cannery_web/components/ammo_group_table_component.ex:221
#, elixir-autogen, elixir-format
msgid "Show %{name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:178 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:148 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:102 #: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -768,13 +715,13 @@ msgstr ""
msgid "Reset your password" msgid "Reset your password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:36 #: lib/cannery_web/live/ammo_group_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:26 #: lib/cannery_web/live/range_live/index.ex:26
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Record Shots" msgid "Record Shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
@ -784,14 +731,7 @@ msgstr ""
msgid "Ammo types" msgid "Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -824,22 +764,22 @@ msgstr ""
msgid "Language" msgid "Language"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:151 #: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Get involved!" msgid "Get involved!"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:172 #: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Help translate" msgid "Help translate"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:183 #: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Report bugs or request features" msgid "Report bugs or request features"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:161 #: lib/cannery_web/live/home_live.ex:146
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View the source code" msgid "View the source code"
msgstr "" msgstr ""
@ -850,22 +790,22 @@ msgstr ""
msgid "Catalog" msgid "Catalog"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:40 #: lib/cannery_web/live/ammo_group_live/show.ex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit Ammo" msgid "Edit Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:38 #: lib/cannery_web/live/ammo_group_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move Ammo" msgid "Move Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:105 #: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo in this container" msgid "No ammo in this container"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:39 #: lib/cannery_web/live/ammo_group_live/show.ex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show Ammo" msgid "Show Ammo"
msgstr "" msgstr ""
@ -876,19 +816,19 @@ msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105 #: lib/cannery_web/live/ammo_type_live/show.html.heex:95
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:25 #: lib/cannery_web/components/topbar.ex:25
#: lib/cannery_web/live/home_live.ex:42 #: lib/cannery_web/live/home_live.ex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cannery logo" msgid "Cannery logo"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:44 #: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "isn't he cute >:3" msgid "isn't he cute >:3"
msgstr "" msgstr ""
@ -898,55 +838,26 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:86
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/index.html.heex:23 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158 #: lib/cannery_web/live/ammo_type_live/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:110 #: lib/cannery_web/components/ammo_group_table_component.ex:192
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:55
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.ex:121 #: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Name: %{name}"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:115
#, elixir-autogen, elixir-format
msgid "Notes: %{notes}"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:62
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds fired"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format
msgid "Rounds fired chart"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
@ -963,7 +874,9 @@ msgstr ""
msgid "Rounds" msgid "Rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#: lib/cannery_web/live/container_live/index.html.heex:23 #: lib/cannery_web/live/container_live/index.html.heex:23
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "View as table" msgid "View as table"
msgstr "" msgstr ""
@ -973,7 +886,7 @@ msgstr ""
msgid "Total ever packs" msgid "Total ever packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121 #: lib/cannery_web/live/ammo_type_live/show.html.heex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Total ever packs:" msgid "Total ever packs:"
msgstr "" msgstr ""
@ -983,7 +896,7 @@ msgstr ""
msgid "Total ever rounds" msgid "Total ever rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:83
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:" msgid "Total ever rounds:"
msgstr "" msgstr ""
@ -993,7 +906,7 @@ msgstr ""
msgid "Used packs" msgid "Used packs"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113 #: lib/cannery_web/live/ammo_type_live/show.html.heex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used packs:" msgid "Used packs:"
msgstr "" msgstr ""
@ -1003,7 +916,7 @@ msgstr ""
msgid "Used rounds" msgid "Used rounds"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89 #: lib/cannery_web/live/ammo_type_live/show.html.heex:75
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:" msgid "Used rounds:"
msgstr "" msgstr ""
@ -1012,3 +925,192 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Used up!" msgid "Used up!"
msgstr "" msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:64
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot chart"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:27
#, elixir-autogen, elixir-format, fuzzy
msgid "Blank:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:13
#, elixir-autogen, elixir-format, fuzzy
msgid "Bullet core:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:12
#, elixir-autogen, elixir-format, fuzzy
msgid "Bullet type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:15
#, elixir-autogen, elixir-format, fuzzy
msgid "Caliber:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:14
#, elixir-autogen, elixir-format, fuzzy
msgid "Cartridge:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:16
#, elixir-autogen, elixir-format, fuzzy
msgid "Case material:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Corrosive:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:24
#, elixir-autogen, elixir-format, fuzzy
msgid "Firing type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:21
#, elixir-autogen, elixir-format, fuzzy
msgid "Grains:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:26
#, elixir-autogen, elixir-format, fuzzy
msgid "Incendiary:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:17
#, elixir-autogen, elixir-format, fuzzy
msgid "Jacket type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:29
#, elixir-autogen, elixir-format, fuzzy
msgid "Manufacturer:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:18
#, elixir-autogen, elixir-format, fuzzy
msgid "Muzzle velocity:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:20
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder grains per charge:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:19
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:22
#, elixir-autogen, elixir-format, fuzzy
msgid "Pressure:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:23
#, elixir-autogen, elixir-format, fuzzy
msgid "Primer type:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:25
#, elixir-autogen, elixir-format, fuzzy
msgid "Tracer:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:30
#, elixir-autogen, elixir-format, fuzzy
msgid "UPC:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:132
#, elixir-autogen, elixir-format
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:120
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit %{ammo_type_name}"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:39
#: lib/cannery_web/components/ammo_group_table_component.ex:230
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:77
#, elixir-autogen, elixir-format
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:44
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:15
#, elixir-autogen, elixir-format
msgid "Home"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy
msgid "Total packs:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:37
#, elixir-autogen, elixir-format, fuzzy
msgid "Total rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:58
#, elixir-autogen, elixir-format
msgid "Last used on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Last used on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:177
#, elixir-autogen, elixir-format
msgid "Never used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:57
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#, elixir-autogen, elixir-format
msgid "Purchased on:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No Ammo types"
msgstr ""

View File

@ -30,7 +30,7 @@ msgid "Container must be empty before deleting"
msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh" msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh"
#: lib/cannery_web/live/container_live/index.ex:88 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "Ní feidir %{name} a scriosadh: %{error}" msgstr "Ní feidir %{name} a scriosadh: %{error}"
@ -185,22 +185,22 @@ msgstr ""
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
#: lib/cannery/ammo.ex:587 #: lib/cannery/ammo.ex:609
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""
#: lib/cannery/ammo/ammo_group.ex:94 #: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Please select an ammo type and container" msgid "Please select an ammo type and container"
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:67 #: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element." msgid "Your browser does not support the canvas element."
msgstr "" msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack"
msgstr ""

View File

@ -30,7 +30,7 @@ msgid "%{name} created successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:47 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:55
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -49,7 +49,7 @@ msgid "%{name} enabled succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:81 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "" msgstr ""
@ -72,20 +72,15 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:103 #: lib/cannery_web/live/invite_live/index.html.heex:103
#: lib/cannery_web/live/invite_live/index.html.heex:133 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:223 #: lib/cannery_web/live/container_live/index.ex:236
#: lib/cannery_web/live/container_live/index.html.heex:73 #: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
@ -96,7 +91,7 @@ msgstr ""
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:242 #: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -152,13 +147,13 @@ msgstr ""
msgid "Please check your email to verify your account" msgid "Please check your email to verify your account"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:108 #: lib/cannery_web/live/home_live.ex:91
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:55 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:82
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33 #: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -183,7 +178,7 @@ msgstr ""
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.ex:37 #: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}" msgid "%{tag_name} has been removed from %{container_name}"
msgstr "" msgstr ""
@ -203,13 +198,13 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:132 #: lib/cannery_web/live/ammo_group_live/show.ex:137
#: lib/cannery_web/live/range_live/index.ex:184 #: lib/cannery_web/live/range_live/index.ex:159
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:78 #: lib/cannery_web/live/ammo_group_live/show.ex:83
#: lib/cannery_web/live/range_live/index.ex:54 #: lib/cannery_web/live/range_live/index.ex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -246,7 +241,7 @@ msgstr ""
msgid "You'll need to" msgid "You'll need to"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:67 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Creating..." msgid "Creating..."
msgstr "" msgstr ""
@ -261,7 +256,8 @@ msgstr ""
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:50 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#: lib/cannery_web/live/ammo_group_live/show.ex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "" msgstr ""

View File

@ -19,7 +19,7 @@ msgid "%{name} created successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:47 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:55
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
#: lib/cannery_web/live/tag_live/index.ex:38 #: lib/cannery_web/live/tag_live/index.ex:38
@ -38,7 +38,7 @@ msgid "%{name} enabled succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:81 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
msgstr "" msgstr ""
@ -61,20 +61,15 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:103 #: lib/cannery_web/live/invite_live/index.html.heex:103
#: lib/cannery_web/live/invite_live/index.html.heex:133 #: lib/cannery_web/live/invite_live/index.html.heex:133
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:223 #: lib/cannery_web/live/container_live/index.ex:236
#: lib/cannery_web/live/container_live/index.html.heex:73 #: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?" msgid "Are you sure you want to delete %{name}?"
@ -85,7 +80,7 @@ msgstr ""
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:242 #: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -141,13 +136,13 @@ msgstr ""
msgid "Please check your email to verify your account" msgid "Please check your email to verify your account"
msgstr "" msgstr ""
#: lib/cannery_web/live/home_live.ex:108 #: lib/cannery_web/live/home_live.ex:91
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:55 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:82
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33 #: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -172,7 +167,7 @@ msgstr ""
msgid "%{name} added successfully" msgid "%{name} added successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/show.ex:37 #: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}" msgid "%{tag_name} has been removed from %{container_name}"
msgstr "" msgstr ""
@ -192,13 +187,13 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?" msgid "Are you sure you want to unstage this ammo?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:132 #: lib/cannery_web/live/ammo_group_live/show.ex:137
#: lib/cannery_web/live/range_live/index.ex:184 #: lib/cannery_web/live/range_live/index.ex:159
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?" msgid "Are you sure you want to delete this shot record?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:78 #: lib/cannery_web/live/ammo_group_live/show.ex:83
#: lib/cannery_web/live/range_live/index.ex:54 #: lib/cannery_web/live/range_live/index.ex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully" msgid "Shot records deleted succesfully"
@ -235,7 +230,7 @@ msgstr ""
msgid "You'll need to" msgid "You'll need to"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:67 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Creating..." msgid "Creating..."
msgstr "" msgstr ""
@ -250,7 +245,8 @@ msgstr ""
msgid "Language updated successfully." msgid "Language updated successfully."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:50 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#: lib/cannery_web/live/ammo_group_live/show.ex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo deleted succesfully" msgid "Ammo deleted succesfully"
msgstr "" msgstr ""

View File

@ -0,0 +1,16 @@
defmodule Cannery.Repo.Migrations.AddMoreIndexes do
use Ecto.Migration
def change do
create unique_index(:container_tags, [:tag_id, :container_id])
create index(:ammo_groups, [:user_id], where: "count = 0", name: :empty_ammo_groups_index)
create index(:ammo_groups, [:user_id, :ammo_type_id])
create index(:ammo_groups, [:user_id, :container_id])
create index(:ammo_types, [:user_id])
drop index(:shot_groups, [:id])
create index(:shot_groups, [:user_id, :ammo_group_id])
end
end

View File

@ -0,0 +1,19 @@
defmodule Cannery.Repo.Migrations.AddPurchaseDateToAmmoGroup do
use Ecto.Migration
def up do
alter table(:ammo_groups) do
add :purchased_on, :date
end
flush()
execute("UPDATE ammo_groups SET purchased_on = inserted_at::DATE WHERE purchased_on IS NULL")
end
def down do
alter table(:ammo_groups) do
remove :purchased_on
end
end
end

View File

@ -224,15 +224,31 @@ defmodule Cannery.AmmoTest do
end end
describe "ammo_groups" do describe "ammo_groups" do
@valid_attrs %{"count" => 42, "notes" => "some notes", "price_paid" => 120.5} @valid_attrs %{
@update_attrs %{"count" => 43, "notes" => "some updated notes", "price_paid" => 456.7} "count" => 42,
@invalid_attrs %{"count" => nil, "notes" => nil, "price_paid" => nil} "notes" => "some notes",
"price_paid" => 120.5,
"purchased_on" => ~D[2022-11-19]
}
@update_attrs %{
"count" => 43,
"notes" => "some updated notes",
"price_paid" => 456.7
}
@invalid_attrs %{
"count" => nil,
"notes" => nil,
"price_paid" => nil
}
setup do setup do
current_user = user_fixture() current_user = user_fixture()
ammo_type = ammo_type_fixture(current_user) ammo_type = ammo_type_fixture(current_user)
container = container_fixture(current_user) container = container_fixture(current_user)
{1, [ammo_group]} = ammo_group_fixture(%{"count" => 25}, ammo_type, container, current_user)
{1, [ammo_group]} =
%{"count" => 50, "price_paid" => 36.1}
|> ammo_group_fixture(ammo_type, container, current_user)
[ [
ammo_type: ammo_type, ammo_type: ammo_type,
@ -424,13 +440,13 @@ defmodule Cannery.AmmoTest do
|> Ammo.get_last_used_shot_group() |> Ammo.get_last_used_shot_group()
end end
test "get_percentage_remaining/1 gets accurate total round count for ammo type", test "get_percentage_remaining/1 gets accurate total round count",
%{ammo_group: ammo_group, current_user: current_user} do %{ammo_group: ammo_group, current_user: current_user} do
assert 100 = Ammo.get_percentage_remaining(ammo_group) assert 100 = Ammo.get_percentage_remaining(ammo_group)
shot_group_fixture(%{"count" => 14}, current_user, ammo_group) shot_group_fixture(%{"count" => 14}, current_user, ammo_group)
assert 44 = assert 72 =
ammo_group ammo_group
|> Repo.reload!() |> Repo.reload!()
|> Repo.preload(:shot_groups, force: true) |> Repo.preload(:shot_groups, force: true)
@ -438,11 +454,66 @@ defmodule Cannery.AmmoTest do
shot_group_fixture(%{"count" => 11}, current_user, ammo_group) shot_group_fixture(%{"count" => 11}, current_user, ammo_group)
assert 50 =
ammo_group
|> Repo.reload!()
|> Repo.preload(:shot_groups, force: true)
|> Ammo.get_percentage_remaining()
shot_group_fixture(%{"count" => 25}, current_user, ammo_group)
assert 0 = assert 0 =
ammo_group ammo_group
|> Repo.reload!() |> Repo.reload!()
|> Repo.preload(:shot_groups, force: true) |> Repo.preload(:shot_groups, force: true)
|> Ammo.get_percentage_remaining() |> Ammo.get_percentage_remaining()
end end
test "get_cpr/1 gets accurate cpr",
%{ammo_group: ammo_group, current_user: current_user} do
assert %AmmoGroup{price_paid: nil} |> Ammo.get_cpr() |> is_nil()
assert %AmmoGroup{count: 1, price_paid: nil} |> Ammo.get_cpr() |> is_nil()
assert 1.0 = %AmmoGroup{count: 1, price_paid: 1.0} |> Ammo.get_cpr()
assert 1.5 = %AmmoGroup{count: 2, price_paid: 3.0} |> Ammo.get_cpr()
assert 0.722 = %AmmoGroup{count: 50, price_paid: 36.1} |> Ammo.get_cpr()
# with shot group, maintains total
shot_group_fixture(%{"count" => 14}, current_user, ammo_group)
assert 0.722 =
ammo_group
|> Repo.reload!()
|> Repo.preload(:shot_groups, force: true)
|> Ammo.get_cpr()
end
test "get_original_count/1 gets accurate original count",
%{ammo_group: ammo_group, current_user: current_user} do
assert 50 = Ammo.get_original_count(ammo_group)
shot_group_fixture(%{"count" => 14}, current_user, ammo_group)
assert 50 =
ammo_group
|> Repo.reload!()
|> Repo.preload(:shot_groups, force: true)
|> Ammo.get_original_count()
shot_group_fixture(%{"count" => 11}, current_user, ammo_group)
assert 50 =
ammo_group
|> Repo.reload!()
|> Repo.preload(:shot_groups, force: true)
|> Ammo.get_original_count()
shot_group_fixture(%{"count" => 25}, current_user, ammo_group)
assert 50 =
ammo_group
|> Repo.reload!()
|> Repo.preload(:shot_groups, force: true)
|> Ammo.get_original_count()
end
end end
end end

View File

@ -58,6 +58,8 @@ defmodule CanneryWeb.ExportControllerTest do
"price_paid" => ammo_group.price_paid, "price_paid" => ammo_group.price_paid,
"staged" => ammo_group.staged, "staged" => ammo_group.staged,
"used_count" => ammo_group |> Ammo.get_used_count(), "used_count" => ammo_group |> Ammo.get_used_count(),
"original_count" => ammo_group |> Ammo.get_original_count(),
"cpr" => ammo_group |> Ammo.get_cpr(),
"percentage_remaining" => ammo_group |> Ammo.get_percentage_remaining() "percentage_remaining" => ammo_group |> Ammo.get_percentage_remaining()
} }

View File

@ -156,7 +156,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
assert index_live assert index_live
|> element("[data-qa=\"edit-#{ammo_group.id}\"]") |> element("[data-qa=\"edit-#{ammo_group.id}\"]")
|> render_click() =~ |> render_click() =~
gettext("Edit Ammo") gettext("Edit ammo")
assert_patch(index_live, Routes.ammo_group_index_path(conn, :edit, ammo_group)) assert_patch(index_live, Routes.ammo_group_index_path(conn, :edit, ammo_group))

View File

@ -184,9 +184,9 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
describe "Index with ammo group" do describe "Index with ammo group" do
setup [:register_and_log_in_user, :create_ammo_type, :create_ammo_group] setup [:register_and_log_in_user, :create_ammo_type, :create_ammo_group]
test "shows additional ammo type info on toggle", test "shows used ammo groups on toggle",
%{conn: conn, ammo_group: ammo_group, current_user: current_user} do %{conn: conn, ammo_group: ammo_group, current_user: current_user} do
{:ok, show_live, html} = live(conn, Routes.ammo_type_index_path(conn, :index)) {:ok, index_live, html} = live(conn, Routes.ammo_type_index_path(conn, :index))
assert html =~ dgettext("actions", "Show used") assert html =~ dgettext("actions", "Show used")
refute html =~ gettext("Used rounds") refute html =~ gettext("Used rounds")
@ -194,7 +194,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
refute html =~ gettext("Used packs") refute html =~ gettext("Used packs")
refute html =~ gettext("Total ever packs") refute html =~ gettext("Total ever packs")
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click() html = index_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click()
assert html =~ gettext("Used rounds") assert html =~ gettext("Used rounds")
assert html =~ gettext("Total ever rounds") assert html =~ gettext("Total ever rounds")
@ -207,8 +207,8 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
shot_group_fixture(%{"count" => 5}, current_user, ammo_group) shot_group_fixture(%{"count" => 5}, current_user, ammo_group)
{:ok, show_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click() html = index_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click()
assert html =~ "15" assert html =~ "15"
assert html =~ "5" assert html =~ "5"
@ -218,19 +218,22 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
describe "Show ammo type" do describe "Show ammo type" do
setup [:register_and_log_in_user, :create_ammo_type] setup [:register_and_log_in_user, :create_ammo_type]
test "displays ammo_type", %{conn: conn, ammo_type: ammo_type} do test "displays ammo_type", %{
conn: conn,
ammo_type: %{name: name, bullet_type: bullet_type} = ammo_type
} do
{:ok, _show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) {:ok, _show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
assert html =~ gettext("Show Ammo type") assert html =~ name
assert html =~ ammo_type.bullet_type assert html =~ bullet_type
end end
test "updates ammo_type within modal", test "updates ammo_type within modal",
%{conn: conn, current_user: current_user, ammo_type: ammo_type} do %{conn: conn, current_user: current_user, ammo_type: %{name: name} = ammo_type} do
{:ok, show_live, _html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) {:ok, show_live, _html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
assert show_live |> element("[data-qa=\"edit\"]") |> render_click() =~ assert show_live |> element("[data-qa=\"edit\"]") |> render_click() =~
gettext("Edit Ammo type") gettext("Edit %{ammo_type_name}", ammo_type_name: name)
assert_patch(show_live, Routes.ammo_type_show_path(conn, :edit, ammo_type)) assert_patch(show_live, Routes.ammo_type_show_path(conn, :edit, ammo_type))
@ -253,20 +256,35 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
describe "Show ammo type with ammo group" do describe "Show ammo type with ammo group" do
setup [:register_and_log_in_user, :create_ammo_type, :create_ammo_group] setup [:register_and_log_in_user, :create_ammo_type, :create_ammo_group]
test "displays ammo group", %{conn: conn, ammo_type: ammo_type, container: container} do test "displays ammo group", %{
conn: conn,
ammo_type: %{name: ammo_type_name} = ammo_type,
container: %{name: container_name}
} do
{:ok, _show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) {:ok, _show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
assert html =~ gettext("Show Ammo type") assert html =~ ammo_type_name
assert html =~ "some ammo group" assert html =~ "some ammo group"
assert html =~ container.name assert html =~ container_name
end
test "displays ammo group in table",
%{conn: conn, ammo_type: ammo_type, container: %{name: container_name}} do
{:ok, show_live, _html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click()
assert_patch(show_live, Routes.ammo_type_show_path(conn, :table, ammo_type))
assert html =~ "some ammo group"
assert html =~ container_name
end end
end end
describe "Show ammo type with empty ammo group" do describe "Show ammo type with empty ammo group" do
setup [:register_and_log_in_user, :create_ammo_type, :create_empty_ammo_group] setup [:register_and_log_in_user, :create_ammo_type, :create_empty_ammo_group]
test "hides empty ammo groups by default", test "displays empty ammo groups on toggle",
%{conn: conn, ammo_type: ammo_type} do %{conn: conn, ammo_type: ammo_type, container: %{name: container_name}} do
{:ok, show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) {:ok, show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
assert html =~ dgettext("actions", "Show used") assert html =~ dgettext("actions", "Show used")
@ -276,6 +294,24 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
assert html =~ "some ammo group" assert html =~ "some ammo group"
assert html =~ "Empty" assert html =~ "Empty"
assert html =~ container_name
end
test "displays empty ammo groups in table on toggle",
%{conn: conn, ammo_type: ammo_type, container: %{name: container_name}} do
{:ok, show_live, _html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type))
html = show_live |> element("[data-qa=\"toggle_table\"]") |> 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"
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click()
assert html =~ "some ammo group"
assert html =~ "Empty"
assert html =~ container_name
end end
end end
end end

View File

@ -46,13 +46,20 @@ defmodule CanneryWeb.ContainerLiveTest do
%{container: container} %{container: container}
end end
defp create_ammo_group(%{container: container, current_user: current_user}) do
ammo_type = ammo_type_fixture(@ammo_type_attrs, current_user)
{1, [ammo_group]} = ammo_group_fixture(@ammo_group_attrs, ammo_type, container, current_user)
%{ammo_type: ammo_type, ammo_group: ammo_group}
end
defp create_empty_ammo_group(%{container: container, current_user: current_user}) do defp create_empty_ammo_group(%{container: container, current_user: current_user}) do
ammo_type = ammo_type_fixture(@ammo_type_attrs, current_user) ammo_type = ammo_type_fixture(@ammo_type_attrs, current_user)
{1, [ammo_group]} = ammo_group_fixture(@ammo_group_attrs, ammo_type, container, current_user) {1, [ammo_group]} = ammo_group_fixture(@ammo_group_attrs, ammo_type, container, current_user)
shot_group = shot_group_fixture(@shot_group_attrs, current_user, ammo_group) shot_group = shot_group_fixture(@shot_group_attrs, current_user, ammo_group)
ammo_group = ammo_group |> Repo.reload!() ammo_group = ammo_group |> Repo.reload!()
%{ammo_group: ammo_group, shot_group: shot_group} %{ammo_type: ammo_type, ammo_group: ammo_group, shot_group: shot_group}
end end
describe "Index regular" do describe "Index regular" do
@ -306,11 +313,14 @@ defmodule CanneryWeb.ContainerLiveTest do
describe "Show" do describe "Show" do
setup [:register_and_log_in_user, :create_container] setup [:register_and_log_in_user, :create_container]
test "displays container", %{conn: conn, container: container} do test "displays container", %{
conn: conn,
container: %{name: name, location: location} = container
} do
{:ok, _show_live, html} = live(conn, Routes.container_show_path(conn, :show, container)) {:ok, _show_live, html} = live(conn, Routes.container_show_path(conn, :show, container))
assert html =~ gettext("Show %{name}", name: container.name) assert html =~ name
assert html =~ container.location assert html =~ location
end end
test "updates container within modal", %{ test "updates container within modal", %{
@ -341,11 +351,34 @@ defmodule CanneryWeb.ContainerLiveTest do
end end
end end
describe "Show with ammo group" do
setup [:register_and_log_in_user, :create_container, :create_ammo_group]
test "displays ammo group",
%{conn: conn, ammo_type: %{name: ammo_type_name}, container: container} do
{:ok, _show_live, html} = live(conn, Routes.container_show_path(conn, :show, container))
assert html =~ ammo_type_name
assert html =~ "some ammo group"
end
test "displays ammo group in table",
%{conn: conn, ammo_type: %{name: ammo_type_name}, container: container} do
{:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container))
html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click()
assert_patch(show_live, Routes.container_show_path(conn, :table, container))
assert html =~ ammo_type_name
assert html =~ "some ammo group"
end
end
describe "Show with empty ammo group" do describe "Show with empty ammo group" do
setup [:register_and_log_in_user, :create_container, :create_empty_ammo_group] setup [:register_and_log_in_user, :create_container, :create_empty_ammo_group]
test "hides empty ammo groups by default", test "hides empty ammo groups by default",
%{conn: conn, container: container} do %{conn: conn, ammo_type: %{name: ammo_type_name}, container: container} do
{:ok, show_live, html} = live(conn, Routes.container_show_path(conn, :show, container)) {:ok, show_live, html} = live(conn, Routes.container_show_path(conn, :show, container))
assert html =~ dgettext("actions", "Show used") assert html =~ dgettext("actions", "Show used")
@ -353,6 +386,24 @@ defmodule CanneryWeb.ContainerLiveTest do
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click() html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click()
assert html =~ ammo_type_name
assert html =~ "some ammo group"
assert html =~ "Empty"
end
test "displays empty ammo groups in table on toggle",
%{conn: conn, ammo_type: %{name: ammo_type_name}, container: container} do
{:ok, show_live, _html} = live(conn, Routes.container_show_path(conn, :show, container))
html = show_live |> element("[data-qa=\"toggle_table\"]") |> render_click()
assert_patch(show_live, Routes.container_show_path(conn, :table, container))
assert html =~ dgettext("actions", "Show used")
refute html =~ "some ammo group"
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click()
assert html =~ ammo_type_name
assert html =~ "some ammo group" assert html =~ "some ammo group"
assert html =~ "Empty" assert html =~ "Empty"
end end

View File

@ -14,4 +14,10 @@ defmodule CanneryWeb.HomeLiveTest do
assert disconnected_html =~ gettext("Welcome to %{name}", name: "Cannery") assert disconnected_html =~ gettext("Welcome to %{name}", name: "Cannery")
assert render(home_live) =~ gettext("Welcome to %{name}", name: "Cannery") assert render(home_live) =~ gettext("Welcome to %{name}", name: "Cannery")
end end
test "displays version number", %{conn: conn} do
{:ok, home_live, disconnected_html} = live(conn, "/")
assert disconnected_html =~ Mix.Project.config()[:version]
assert render(home_live) =~ Mix.Project.config()[:version]
end
end end

View File

@ -133,7 +133,8 @@ defmodule Cannery.Fixtures do
|> Enum.into(%{ |> Enum.into(%{
"ammo_type_id" => ammo_type_id, "ammo_type_id" => ammo_type_id,
"container_id" => container_id, "container_id" => container_id,
"count" => 20 "count" => 20,
"purchased_on" => Date.utc_today()
}) })
|> Ammo.create_ammo_groups(multiplier, user) |> Ammo.create_ammo_groups(multiplier, user)
|> unwrap_ok_tuple() |> unwrap_ok_tuple()