Compare commits

..

20 Commits

Author SHA1 Message Date
Brea Foga
aa0ea10fa4 Translated using Weblate (Spanish)
All checks were successful
continuous-integration/drone/push Build is passing
Currently translated at 100.0% (42 of 42 strings)

Translation: cannery/actions
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/actions/es/
2022-11-30 19:19:48 +00:00
Brea Foga
72ac611e15 Translated using Weblate (Spanish)
Currently translated at 100.0% (47 of 47 strings)

Translation: cannery/prompts
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/prompts/es/
2022-11-30 19:19:48 +00:00
Hannah Winter
ff0af84d5d Translated using Weblate (Spanish)
Currently translated at 100.0% (15 of 15 strings)

Translation: cannery/emails
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/emails/es/
2022-11-30 19:19:48 +00:00
Brea Foga
851d0954ad Translated using Weblate (Spanish)
Currently translated at 100.0% (15 of 15 strings)

Translation: cannery/emails
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/emails/es/
2022-11-30 19:19:48 +00:00
Brea Foga
ea4336adc5 Translated using Weblate (Spanish)
Currently translated at 100.0% (34 of 34 strings)

Translation: cannery/errors
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/errors/es/
2022-11-30 19:19:48 +00:00
Hannah Winter
fcce6a6f40 Translated using Weblate (Spanish)
Currently translated at 100.0% (34 of 34 strings)

Translation: cannery/errors
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/errors/es/
2022-11-30 19:19:48 +00:00
Brea Foga
4d3085da2a Translated using Weblate (Spanish)
Currently translated at 49.4% (98 of 198 strings)

Translation: cannery/default
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/default/es/
2022-11-30 19:19:48 +00:00
20a2311229 bump to 0.7.1
All checks were successful
continuous-integration/drone/push Build is passing
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
55 changed files with 1209 additions and 1060 deletions

View File

@ -1,3 +1,13 @@
# 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

View File

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

View File

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

View File

@ -42,7 +42,7 @@
) %>
<%= 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",
phx_update: "ignore",

View File

@ -54,13 +54,13 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
<% end %>
<span class="rounded-lg title text-lg">
<%= gettext("Added on:") %>
<%= @ammo_group.inserted_at |> display_datetime() %>
<%= gettext("Purchased on:") %>
<%= @ammo_group.purchased_on |> display_date() %>
</span>
<%= if @ammo_group.count == 0 do %>
<%= if @ammo_group |> Ammo.get_last_used_shot_group() do %>
<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() %>
</span>
<% end %>

View File

@ -13,7 +13,6 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
required(:id) => UUID.t(),
required(:current_user) => User.t(),
required(:ammo_groups) => [AmmoGroup.t()],
optional(:show_used) => boolean(),
optional(:ammo_type) => Rendered.t(),
optional(:range) => Rendered.t(),
optional(:container) => Rendered.t(),
@ -26,7 +25,6 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
socket =
socket
|> assign(assigns)
|> assign_new(:show_used, fn -> false end)
|> assign_new(:ammo_type, fn -> [] end)
|> assign_new(:range, fn -> [] end)
|> assign_new(:container, fn -> [] end)
@ -41,7 +39,6 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
assigns: %{
ammo_groups: ammo_groups,
current_user: current_user,
show_used: show_used,
ammo_type: ammo_type,
range: range,
container: container,
@ -56,14 +53,10 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
[%{label: nil, key: :actions, sortable: false}]
end
columns =
if show_used do
[%{label: gettext("Used up on"), key: :used_up_on} | columns]
else
columns
end
columns = [%{label: gettext("Added on"), key: :added_on} | columns]
columns = [
%{label: gettext("Purchased on"), key: :purchased_on},
%{label: gettext("Last used on"), key: :used_up_on} | columns
]
columns =
if container == [] do
@ -117,10 +110,10 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
@impl true
def render(assigns) do
~H"""
<div class="w-full">
<div id={@id} class="w-full">
<.live_component
module={CanneryWeb.Components.TableComponent}
id={@id}
id={"table-#{@id}"}
columns={@columns}
rows={@rows}
/>
@ -158,12 +151,12 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
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(:added_on, %{inserted_at: inserted_at}, _additional_data) do
assigns = %{inserted_at: inserted_at}
defp get_value_for_key(:purchased_on, %{purchased_on: purchased_on}, _additional_data) do
assigns = %{purchased_on: purchased_on}
{inserted_at,
{purchased_on,
~H"""
<%= @inserted_at |> display_datetime() %>
<%= @purchased_on |> display_date() %>
"""}
end
@ -178,7 +171,11 @@ defmodule CanneryWeb.Components.AmmoGroupTableComponent do
{last_shot_group_date,
~H"""
<%= if @last_shot_group_date do %>
<%= @last_shot_group_date |> display_date() %>
<% else %>
<%= gettext("Never used") %>
<% end %>
"""}
end

View File

@ -15,9 +15,12 @@ defmodule CanneryWeb.Components.InviteCard do
assigns = assigns |> assign_new(:code_actions, fn -> [] end)
~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
transition-all duration-300 ease-in-out">
transition-all duration-300 ease-in-out"
>
<h1 class="title text-xl">
<%= @invite.name %>
</h1>

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">
<thead class="border-b border-primary-600">
<tr>
@ -11,21 +11,22 @@
phx-value-sort-key={key}
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 %>
<%= case @sort_mode do %>
<% :asc -> %>
<i class="fas fa-sm fa-chevron-down"></i>
<i class="w-0 float-right fas fa-sm fa-chevron-down"></i>
<% :desc -> %>
<i class="fas fa-sm fa-chevron-up"></i>
<i class="w-0 float-right fas fa-sm fa-chevron-up"></i>
<% end %>
<% 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 %>
</span>
</th>
<% else %>
<th class={"p-2 #{column[:class]}"}>
<th class={"p-2 cursor-not-allowed #{column[:class]}"}>
<%= label %>
</th>
<% end %>

View File

@ -38,6 +38,14 @@
) %>
<%= 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") %>
<%= textarea(f, :notes,
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
socket
|> assign(:page_title, gettext("Move Ammo group"))
|> assign(:page_title, gettext("Move ammo"))
|> assign(:ammo_group, Ammo.get_ammo_group!(id, current_user))
end
defp apply_action(%{assigns: %{current_user: current_user}} = socket, :edit, %{"id" => id}) do
socket
|> assign(:page_title, gettext("Edit Ammo group"))
|> assign(:page_title, gettext("Edit ammo"))
|> assign(:ammo_group, Ammo.get_ammo_group!(id, current_user))
end
@ -53,7 +53,7 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
defp apply_action(socket, :index, _params) do
socket
|> assign(:page_title, gettext("Ammo groups"))
|> assign(:page_title, gettext("Ammo"))
|> assign(:ammo_group, nil)
end
@ -61,7 +61,7 @@ defmodule CanneryWeb.AmmoGroupLive.Index 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)
prompt = dgettext("prompts", "Ammo group deleted succesfully")
prompt = dgettext("prompts", "Ammo deleted succesfully")
{:noreply, socket |> put_flash(:info, prompt) |> display_ammo_groups()}
end

View File

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

View File

@ -30,7 +30,12 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
@impl true
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
defp page_title(:add_shot_group), do: gettext("Record Shots")
@ -69,14 +74,14 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
def handle_event(
"delete_shot_group",
%{"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
{:ok, _} =
ActivityLog.get_shot_group!(id, current_user)
|> ActivityLog.delete_shot_group(current_user)
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
@spec display_ammo_group(Socket.t(), AmmoGroup.t() | AmmoGroup.id()) :: Socket.t()

View File

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

View File

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

View File

@ -5,7 +5,7 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
use CanneryWeb, :live_view
import CanneryWeb.Components.AmmoGroupCard
alias Cannery.Ammo
alias Cannery.{Ammo, Ammo.AmmoType}
alias CanneryWeb.Endpoint
@fields_list [
@ -31,17 +31,16 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
]
@impl true
def mount(_params, _session, socket),
do: {:ok, socket |> assign(show_used: false, view_table: 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
def handle_params(
%{"id" => id},
_params,
%{assigns: %{current_user: current_user, live_action: live_action}} = socket
) do
ammo_type = Ammo.get_ammo_type!(id, current_user)
socket = socket |> assign(view_table: live_action == :table) |> display_ammo_type(ammo_type)
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
@ -75,13 +74,13 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
do: Routes.ammo_type_show_path(Endpoint, :show, ammo_type),
else: Routes.ammo_type_show_path(Endpoint, :table, ammo_type)
{:noreply, socket |> assign(view_table: !view_table) |> push_patch(to: new_path)}
{:noreply, socket |> push_patch(to: new_path)}
end
defp display_ammo_type(
%{assigns: %{live_action: live_action, current_user: current_user, show_used: show_used}} =
socket,
ammo_type
%AmmoType{} = ammo_type
) do
fields_to_display =
@fields_list
@ -106,6 +105,10 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
)
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
socket |> display_ammo_type(ammo_type)
end

View File

@ -173,7 +173,6 @@
id="ammo-type-show-table"
ammo_groups={@ammo_groups}
current_user={@current_user}
show_used={@show_used}
>
<:container :let={%{container: %{name: container_name} = container}}>
<.link

View File

@ -162,6 +162,19 @@ defmodule CanneryWeb.ContainerLive.Index do
end
@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
container |> Containers.get_container_ammo_group_count!()
end

View File

@ -11,8 +11,8 @@ defmodule CanneryWeb.ContainerLive.Show do
alias Phoenix.LiveView.Socket
@impl true
def mount(_params, _session, socket),
do: {:ok, socket |> assign(show_used: false, view_table: 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
def handle_params(
@ -21,7 +21,9 @@ defmodule CanneryWeb.ContainerLive.Show do
%{assigns: %{current_user: current_user, live_action: live_action}} = socket
) do
socket =
socket |> assign(view_table: live_action == :table) |> render_container(id, current_user)
socket
|> assign(view_table: live_action == :table)
|> render_container(id, current_user)
{:noreply, socket}
end
@ -102,7 +104,7 @@ defmodule CanneryWeb.ContainerLive.Show do
do: Routes.container_show_path(Endpoint, :show, container),
else: Routes.container_show_path(Endpoint, :table, container)
{:noreply, socket |> assign(view_table: !view_table) |> push_patch(to: new_path)}
{:noreply, socket |> push_patch(to: new_path)}
end
@spec render_container(Socket.t(), Container.id(), User.t()) :: Socket.t()

View File

@ -24,12 +24,20 @@
<%= unless @ammo_groups |> Enum.empty?() do %>
<span class="rounded-lg title text-lg">
<%= if @show_used do %>
<%= gettext("Total packs:") %>
<% else %>
<%= gettext("Packs:") %>
<% end %>
<%= Enum.count(@ammo_groups) %>
</span>
<span class="rounded-lg title text-lg">
<%= if @show_used do %>
<%= gettext("Total rounds:") %>
<% else %>
<%= gettext("Rounds:") %>
<% end %>
<%= @container |> Containers.get_container_rounds!() %>
</span>
<% end %>
@ -107,7 +115,7 @@
<div class="w-full p-4">
<%= if @ammo_groups |> Enum.empty?() do %>
<h2 class="mx-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") %>
</h2>
<% else %>
@ -117,7 +125,6 @@
id="ammo-type-show-table"
ammo_groups={@ammo_groups}
current_user={@current_user}
show_used={@show_used}
>
<:ammo_type :let={%{name: ammo_type_name} = ammo_type}>
<.link navigate={Routes.ammo_type_show_path(Endpoint, :show, ammo_type)} class="link">

View File

@ -7,32 +7,15 @@ defmodule CanneryWeb.HomeLive do
alias Cannery.Accounts
alias CanneryWeb.Endpoint
@version Mix.Project.config()[:version]
@impl true
def mount(_params, _session, socket) do
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}
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
def render(assigns) do
~H"""
@ -138,7 +121,9 @@ defmodule CanneryWeb.HomeLive do
target="_blank"
rel="noopener noreferrer"
>
<p>0.7.0</p>
<p>
<%= @version %>
</p>
<i class="fas fa-md fa-info-circle"></i>
</.link>
</li>
@ -188,16 +173,4 @@ defmodule CanneryWeb.HomeLive do
</div>
"""
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

View File

@ -72,10 +72,57 @@ defmodule CanneryWeb.LiveHelpers do
"""
end
def hide_modal(js \\ %JS{}) do
defp hide_modal(js \\ %JS{}) do
js
|> JS.hide(to: "#modal", transition: "fade-out")
|> JS.hide(to: "#modal-bg", transition: "fade-out")
|> JS.hide(to: "#modal-content", transition: "fade-out-scale")
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

View File

@ -33,7 +33,7 @@
) %>
<%= 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") %>
<%= error_tag(f, :notes, "col-span-3") %>

View File

@ -76,46 +76,6 @@ defmodule CanneryWeb.ViewHelpers do
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 """
Get a random color in `#ffffff` hex format

View File

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

View File

@ -121,7 +121,7 @@ msgid "Reset password"
msgstr ""
#: 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/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -136,7 +136,7 @@ msgstr ""
msgid "Send instructions to reset password"
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
msgid "Why not add one?"
msgstr ""
@ -156,7 +156,7 @@ msgstr ""
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:80
#: 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/range_live/index.html.heex:38
#, elixir-autogen, elixir-format
@ -188,7 +188,7 @@ msgstr ""
msgid "add a container first"
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
msgid "Create"
msgstr ""

View File

@ -134,7 +134,7 @@ msgid "Reset password"
msgstr "Passwort zurücksetzen"
#: 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/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -149,7 +149,7 @@ msgstr "Speichern"
msgid "Send instructions to reset password"
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
msgid "Why not add one?"
msgstr "Warum fügen Sie keine hinzu?"
@ -169,7 +169,7 @@ msgstr "Munition markieren"
msgid "Why not get some ready to shoot?"
msgstr "Warum nicht einige für den Schießstand auswählen?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:80
#: 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/range_live/index.html.heex:38
#, elixir-autogen, elixir-format
@ -201,7 +201,7 @@ msgstr "In die Zwischenablage kopieren"
msgid "add a container first"
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
msgid "Create"
msgstr "Erstellen"

View File

@ -23,14 +23,14 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/home_live.ex:64
#: lib/cannery_web/live/home_live.ex:47
#, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr ""
"Mit %{name} können Sie ihren Munitionsbestand vor und nach dem Schießen "
"leicht im Auge behalten"
#: lib/cannery_web/live/home_live.ex:86
#: lib/cannery_web/live/home_live.ex:69
#, elixir-autogen, elixir-format
msgid "Access from any internet-capable device"
msgstr "Zugriff von jedem Internet-fähigen Gerät"
@ -40,19 +40,20 @@ msgstr "Zugriff von jedem Internet-fähigen Gerät"
msgid "Admins"
msgstr "Admins"
#: lib/cannery_web/live/home_live.ex:100
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format
msgid "Admins:"
msgstr "Admins:"
#: 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/range_live/index.ex:80
#, elixir-autogen, elixir-format
msgid "Ammo"
msgstr "Munition"
#: lib/cannery_web/components/ammo_group_table_component.ex:96
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -104,9 +105,9 @@ msgstr "Patrone"
msgid "Case material"
msgstr "Gehäusematerial"
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: 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
#, elixir-autogen, elixir-format
msgid "Container"
msgstr "Behälter"
@ -125,7 +126,7 @@ msgstr "Behälter"
msgid "Corrosive"
msgstr "Korrosiv"
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Count"
@ -150,16 +151,11 @@ msgstr "Beschreibung"
msgid "Description:"
msgstr "Beschreibung:"
#: lib/cannery_web/live/home_live.ex:61
#: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
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
#, elixir-autogen, elixir-format
msgid "Edit Ammo type"
@ -197,17 +193,17 @@ msgstr "Körner"
msgid "Incendiary"
msgstr "Brandmunition"
#: lib/cannery_web/live/home_live.ex:95
#: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format
msgid "Instance Information"
msgstr "Instanzinformationen"
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr "Einladung deaktiviert"
#: lib/cannery_web/live/home_live.ex:128
#: lib/cannery_web/live/home_live.ex:111
#, elixir-autogen, elixir-format
msgid "Invite Only"
msgstr "Nur mit Einladung"
@ -295,11 +291,6 @@ msgstr "Neuer Tag"
msgid "No Ammo"
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
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
@ -322,9 +313,9 @@ msgid "No tags"
msgstr "Keine Tags"
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/components/ammo_group_table_component.ex:88
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: 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/index.ex:82
#, elixir-autogen, elixir-format
@ -348,7 +339,7 @@ msgstr "Auf dem Bücherregal"
msgid "Pressure"
msgstr "Druck"
#: lib/cannery_web/components/ammo_group_table_component.ex:85
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#, elixir-autogen, elixir-format
msgid "Price paid"
@ -365,17 +356,17 @@ msgstr "Kaufpreis:"
msgid "Primer type"
msgstr "Zündertyp"
#: lib/cannery_web/live/home_live.ex:127
#: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format
msgid "Public Signups"
msgstr "Öffentliche Registrierung"
#: lib/cannery_web/live/home_live.ex:73
#: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format
msgid "Secure:"
msgstr "Sicher:"
#: lib/cannery_web/live/home_live.ex:76
#: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
@ -388,7 +379,7 @@ msgstr ""
msgid "Settings"
msgstr "Einstellungen"
#: lib/cannery_web/live/home_live.ex:83
#: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Simple:"
msgstr "Einfach:"
@ -421,7 +412,7 @@ msgstr "Tags können zur besseren Ordnung einem Behälter hinzugefügt werden"
msgid "Text color"
msgstr "Textfarbe"
#: lib/cannery_web/live/home_live.ex:52
#: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website"
msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen"
@ -450,7 +441,7 @@ msgstr "Art:"
msgid "Users"
msgstr "Benutzer"
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr "Verbleibende Nutzung:"
@ -460,22 +451,22 @@ msgstr "Verbleibende Nutzung:"
msgid "Uses left"
msgstr "Verbleibende Nutzung"
#: lib/cannery_web/live/home_live.ex:48
#: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}"
msgstr "Willkommen %{name}"
#: lib/cannery_web/live/home_live.ex:77
#: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format
msgid "Your data stays with you, period"
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
msgid "No tags for this container"
msgstr "Keine Tags für diesen Behälter"
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81
#, elixir-autogen, elixir-format
msgid "Range"
@ -486,7 +477,9 @@ msgstr "Schießplatz"
msgid "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
#, elixir-autogen, elixir-format
msgid "Date"
@ -508,18 +501,7 @@ msgstr "Keine Munition selektiert"
msgid "Record shots"
msgstr "Schüsse dokumentieren"
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#, 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/ammo_group_live/show.ex:42
#: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Edit Shot Records"
@ -541,7 +523,7 @@ msgstr "Keine Schüsse dokumentiert"
msgid "Rounds left"
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.html.heex:62
#, elixir-autogen, elixir-format
@ -554,11 +536,7 @@ msgid "Shot Records"
msgstr "Schießkladde"
#: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Move Ammo group"
msgstr "Munitionsgruppe verschieben"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr "Munition verschieben"
@ -575,8 +553,8 @@ msgstr "Schießkladde"
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:159
#: lib/cannery_web/components/ammo_group_table_component.ex:227
#: 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:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179
@ -636,12 +614,12 @@ msgstr "Derzeitiges Passwort"
msgid "New password"
msgstr "Neues Passwort"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:73
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr "Markiert"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:73
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr "Demarkiert"
@ -663,32 +641,32 @@ msgid "Loading..."
msgstr "Lädt..."
#: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:124
#: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr "%{name} bearbeiten"
#: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:125
#: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr "Editiere %{name} Tags"
#: lib/cannery_web/components/container_card.ex:63
#: 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
msgid "Rounds:"
msgstr "Patronen:"
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/components/ammo_group_table_component.ex:221
#: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr "Keine Preisinformationen"
#: lib/cannery_web/components/ammo_group_table_component.ex:87
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format
msgid "% left"
msgstr "% verbleibend"
@ -743,13 +721,13 @@ msgstr "Registrieren"
msgid "Reset your password"
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
#, elixir-autogen, elixir-format
msgid "Record Shots"
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
msgid "Copies"
msgstr "Kopien"
@ -759,13 +737,6 @@ msgstr "Kopien"
msgid "Ammo types"
msgstr "Munitionsart"
#: lib/cannery_web/components/ammo_group_table_component.ex:66
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr "Hinzugefügt am"
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on:"
@ -799,22 +770,22 @@ msgstr "Deutsch"
msgid "Language"
msgstr "Sprache"
#: lib/cannery_web/live/home_live.ex:151
#: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format
msgid "Get involved!"
msgstr "Mach mit!"
#: lib/cannery_web/live/home_live.ex:172
#: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format
msgid "Help translate"
msgstr "Hilf beim Übersetzen"
#: lib/cannery_web/live/home_live.ex:183
#: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format
msgid "Report bugs or request features"
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
msgid "View the source code"
msgstr "Quellcode ansehen"
@ -825,22 +796,22 @@ msgstr "Quellcode ansehen"
msgid "Catalog"
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
msgid "Edit Ammo"
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
msgid "Move Ammo"
msgstr "Munition verschieben"
#: lib/cannery_web/live/container_live/show.html.heex:111
#: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container"
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
msgid "Show Ammo"
msgstr "Zeige Munitionsarten"
@ -852,18 +823,18 @@ msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
#: lib/cannery_web/components/container_card.ex:58
#: 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
msgid "Packs:"
msgstr ""
#: 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
msgid "Cannery logo"
msgstr ""
#: lib/cannery_web/live/home_live.ex:44
#: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format
msgid "isn't he cute >:3"
msgstr ""
@ -881,22 +852,12 @@ msgstr "Behälter"
#: 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/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:61
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:195
#: lib/cannery_web/components/ammo_group_table_component.ex:192
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -921,7 +882,7 @@ 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/show.html.heex:103
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
@ -1077,18 +1038,18 @@ msgstr "UPC"
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:117
#: 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:233
#: 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:86
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
@ -1098,7 +1059,7 @@ msgstr ""
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr "Ursprüngliche Anzahl:"
@ -1107,3 +1068,55 @@ msgstr "Ursprüngliche Anzahl:"
#, 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"
#: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:75
#: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}"
msgstr "Konnte %{name} nicht löschen: %{error}"
@ -192,17 +192,17 @@ msgstr ""
msgid "Invalid multiplier"
msgstr ""
#: lib/cannery/ammo/ammo_group.ex:94
#: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format
msgid "Please select an ammo type and container"
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
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
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"
#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:56
#: 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:133
#: lib/cannery_web/live/tag_live/index.ex:38
@ -51,7 +51,7 @@ msgid "%{name} enabled succesfully"
msgstr "%{name} erfolgreich aktiviert"
#: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:65
#: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format
msgid "%{name} has been deleted"
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."
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:133
#, elixir-autogen, elixir-format
@ -87,9 +82,9 @@ msgstr ""
"Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht "
"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/show.html.heex:51
#: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format
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}?"
msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format
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"
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
msgid "Register to setup %{name}"
msgstr "Registrieren Sie sich, um %{name} zu bearbeiten"
#: 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/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -193,7 +188,7 @@ msgstr ""
msgid "%{name} added successfully"
msgstr "%{name} erfolgreich hinzugefügt"
#: lib/cannery_web/live/container_live/show.ex:41
#: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}"
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?"
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:159
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?"
#: 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
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
@ -256,7 +251,7 @@ msgstr "%{name} erfolgreich entfernt"
msgid "You'll need to"
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
msgid "Creating..."
msgstr "Erstellen..."
@ -271,7 +266,8 @@ msgstr "Möchten Sie die Sprache wechseln?"
msgid "Language updated successfully."
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
msgid "Ammo deleted succesfully"
msgstr "Munitionsgruppe erfolgreich gelöscht"

View File

@ -10,12 +10,12 @@
msgid ""
msgstr ""
#: lib/cannery_web/live/home_live.ex:64
#: lib/cannery_web/live/home_live.ex:47
#, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr ""
#: lib/cannery_web/live/home_live.ex:86
#: lib/cannery_web/live/home_live.ex:69
#, elixir-autogen, elixir-format
msgid "Access from any internet-capable device"
msgstr ""
@ -25,19 +25,20 @@ msgstr ""
msgid "Admins"
msgstr ""
#: lib/cannery_web/live/home_live.ex:100
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format
msgid "Admins:"
msgstr ""
#: 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/range_live/index.ex:80
#, elixir-autogen, elixir-format
msgid "Ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:96
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -89,9 +90,9 @@ msgstr ""
msgid "Case material"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: 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
#, elixir-autogen, elixir-format
msgid "Container"
msgstr ""
@ -110,7 +111,7 @@ msgstr ""
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Count"
@ -135,16 +136,11 @@ msgstr ""
msgid "Description:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:61
#: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
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
#, elixir-autogen, elixir-format
msgid "Edit Ammo type"
@ -182,17 +178,17 @@ msgstr ""
msgid "Incendiary"
msgstr ""
#: lib/cannery_web/live/home_live.ex:95
#: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format
msgid "Instance Information"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr ""
#: lib/cannery_web/live/home_live.ex:128
#: lib/cannery_web/live/home_live.ex:111
#, elixir-autogen, elixir-format
msgid "Invite Only"
msgstr ""
@ -280,11 +276,6 @@ msgstr ""
msgid "No Ammo"
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
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
@ -307,9 +298,9 @@ msgid "No tags"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/components/ammo_group_table_component.ex:88
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: 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/index.ex:82
#, elixir-autogen, elixir-format
@ -333,7 +324,7 @@ msgstr ""
msgid "Pressure"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:85
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#, elixir-autogen, elixir-format
msgid "Price paid"
@ -350,17 +341,17 @@ msgstr ""
msgid "Primer type"
msgstr ""
#: lib/cannery_web/live/home_live.ex:127
#: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format
msgid "Public Signups"
msgstr ""
#: lib/cannery_web/live/home_live.ex:73
#: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format
msgid "Secure:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:76
#: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
@ -371,7 +362,7 @@ msgstr ""
msgid "Settings"
msgstr ""
#: lib/cannery_web/live/home_live.ex:83
#: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Simple:"
msgstr ""
@ -404,7 +395,7 @@ msgstr ""
msgid "Text color"
msgstr ""
#: lib/cannery_web/live/home_live.ex:52
#: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website"
msgstr ""
@ -433,7 +424,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr ""
@ -443,22 +434,22 @@ msgstr ""
msgid "Uses left"
msgstr ""
#: lib/cannery_web/live/home_live.ex:48
#: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}"
msgstr ""
#: lib/cannery_web/live/home_live.ex:77
#: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format
msgid "Your data stays with you, period"
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
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81
#, elixir-autogen, elixir-format
msgid "Range"
@ -469,7 +460,9 @@ msgstr ""
msgid "Range day"
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
#, elixir-autogen, elixir-format
msgid "Date"
@ -491,18 +484,7 @@ msgstr ""
msgid "Record shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#, 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/ammo_group_live/show.ex:42
#: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Edit Shot Records"
@ -524,7 +506,7 @@ msgstr ""
msgid "Rounds left"
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.html.heex:62
#, elixir-autogen, elixir-format
@ -537,11 +519,7 @@ msgid "Shot Records"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
@ -558,8 +536,8 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:159
#: lib/cannery_web/components/ammo_group_table_component.ex:227
#: 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:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179
@ -619,12 +597,12 @@ msgstr ""
msgid "New password"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:73
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:73
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
@ -646,32 +624,32 @@ msgid "Loading..."
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:124
#: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:125
#: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr ""
#: lib/cannery_web/components/container_card.ex:63
#: 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
msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/components/ammo_group_table_component.ex:221
#: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:87
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format
msgid "% left"
msgstr ""
@ -726,13 +704,13 @@ msgstr ""
msgid "Reset your password"
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
#, elixir-autogen, elixir-format
msgid "Record Shots"
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
msgid "Copies"
msgstr ""
@ -742,13 +720,6 @@ msgstr ""
msgid "Ammo types"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:66
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on:"
@ -782,22 +753,22 @@ msgstr ""
msgid "Language"
msgstr ""
#: lib/cannery_web/live/home_live.ex:151
#: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format
msgid "Get involved!"
msgstr ""
#: lib/cannery_web/live/home_live.ex:172
#: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format
msgid "Help translate"
msgstr ""
#: lib/cannery_web/live/home_live.ex:183
#: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format
msgid "Report bugs or request features"
msgstr ""
#: lib/cannery_web/live/home_live.ex:161
#: lib/cannery_web/live/home_live.ex:146
#, elixir-autogen, elixir-format
msgid "View the source code"
msgstr ""
@ -808,22 +779,22 @@ msgstr ""
msgid "Catalog"
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
msgid "Edit Ammo"
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
msgid "Move Ammo"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:111
#: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format
msgid "No ammo in this container"
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
msgid "Show Ammo"
msgstr ""
@ -835,18 +806,18 @@ msgstr ""
#: lib/cannery_web/components/container_card.ex:58
#: 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
msgid "Packs:"
msgstr ""
#: 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
msgid "Cannery logo"
msgstr ""
#: lib/cannery_web/live/home_live.ex:44
#: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format
msgid "isn't he cute >:3"
msgstr ""
@ -864,22 +835,12 @@ msgstr ""
#: 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/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:61
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:195
#: lib/cannery_web/components/ammo_group_table_component.ex:192
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -904,7 +865,7 @@ 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/show.html.heex:103
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
@ -1060,18 +1021,18 @@ msgstr ""
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:117
#: 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:233
#: 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:86
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
@ -1081,7 +1042,7 @@ msgstr ""
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format
msgid "Original Count"
msgstr ""
@ -1090,3 +1051,55 @@ msgstr ""
#, 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 ""
#: 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/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -137,7 +137,7 @@ msgstr ""
msgid "Send instructions to reset password"
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
msgid "Why not add one?"
msgstr ""
@ -157,7 +157,7 @@ msgstr ""
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:80
#: 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/range_live/index.html.heex:38
#, elixir-autogen, elixir-format
@ -189,7 +189,7 @@ msgstr ""
msgid "add a container first"
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
msgid "Create"
msgstr ""

View File

@ -11,12 +11,12 @@ msgstr ""
"Language: en\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
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr ""
#: lib/cannery_web/live/home_live.ex:86
#: lib/cannery_web/live/home_live.ex:69
#, elixir-autogen, elixir-format
msgid "Access from any internet-capable device"
msgstr ""
@ -26,19 +26,20 @@ msgstr ""
msgid "Admins"
msgstr ""
#: lib/cannery_web/live/home_live.ex:100
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format
msgid "Admins:"
msgstr ""
#: 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/range_live/index.ex:80
#, elixir-autogen, elixir-format
msgid "Ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:96
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -90,9 +91,9 @@ msgstr ""
msgid "Case material"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: 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
#, elixir-autogen, elixir-format
msgid "Container"
msgstr ""
@ -111,7 +112,7 @@ msgstr ""
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Count"
@ -136,16 +137,11 @@ msgstr ""
msgid "Description:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:61
#: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
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
#, elixir-autogen, elixir-format
msgid "Edit Ammo type"
@ -183,17 +179,17 @@ msgstr ""
msgid "Incendiary"
msgstr ""
#: lib/cannery_web/live/home_live.ex:95
#: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format
msgid "Instance Information"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr ""
#: lib/cannery_web/live/home_live.ex:128
#: lib/cannery_web/live/home_live.ex:111
#, elixir-autogen, elixir-format
msgid "Invite Only"
msgstr ""
@ -281,11 +277,6 @@ msgstr ""
msgid "No Ammo"
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
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
@ -308,9 +299,9 @@ msgid "No tags"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/components/ammo_group_table_component.ex:88
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: 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/index.ex:82
#, elixir-autogen, elixir-format
@ -334,7 +325,7 @@ msgstr ""
msgid "Pressure"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:85
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#, elixir-autogen, elixir-format
msgid "Price paid"
@ -351,17 +342,17 @@ msgstr ""
msgid "Primer type"
msgstr ""
#: lib/cannery_web/live/home_live.ex:127
#: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format
msgid "Public Signups"
msgstr ""
#: lib/cannery_web/live/home_live.ex:73
#: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format
msgid "Secure:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:76
#: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
@ -372,7 +363,7 @@ msgstr ""
msgid "Settings"
msgstr ""
#: lib/cannery_web/live/home_live.ex:83
#: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Simple:"
msgstr ""
@ -405,7 +396,7 @@ msgstr ""
msgid "Text color"
msgstr ""
#: lib/cannery_web/live/home_live.ex:52
#: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website"
msgstr ""
@ -434,7 +425,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr ""
@ -444,22 +435,22 @@ msgstr ""
msgid "Uses left"
msgstr ""
#: lib/cannery_web/live/home_live.ex:48
#: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}"
msgstr ""
#: lib/cannery_web/live/home_live.ex:77
#: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format
msgid "Your data stays with you, period"
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
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81
#, elixir-autogen, elixir-format
msgid "Range"
@ -470,7 +461,9 @@ msgstr ""
msgid "Range day"
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
#, elixir-autogen, elixir-format
msgid "Date"
@ -492,18 +485,7 @@ msgstr ""
msgid "Record shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#, 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/ammo_group_live/show.ex:42
#: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Edit Shot Records"
@ -525,7 +507,7 @@ msgstr ""
msgid "Rounds left"
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.html.heex:62
#, elixir-autogen, elixir-format
@ -538,11 +520,7 @@ msgid "Shot Records"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
@ -559,8 +537,8 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:159
#: lib/cannery_web/components/ammo_group_table_component.ex:227
#: 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:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179
@ -620,12 +598,12 @@ msgstr ""
msgid "New password"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:73
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:73
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
@ -647,32 +625,32 @@ msgid "Loading..."
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:124
#: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:125
#: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr ""
#: lib/cannery_web/components/container_card.ex:63
#: 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
msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/components/ammo_group_table_component.ex:221
#: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:87
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format
msgid "% left"
msgstr ""
@ -727,13 +705,13 @@ msgstr ""
msgid "Reset your password"
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
#, elixir-autogen, elixir-format, fuzzy
msgid "Record Shots"
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
msgid "Copies"
msgstr ""
@ -743,13 +721,6 @@ msgstr ""
msgid "Ammo types"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:66
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on:"
@ -783,22 +754,22 @@ msgstr ""
msgid "Language"
msgstr ""
#: lib/cannery_web/live/home_live.ex:151
#: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format
msgid "Get involved!"
msgstr ""
#: lib/cannery_web/live/home_live.ex:172
#: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format
msgid "Help translate"
msgstr ""
#: lib/cannery_web/live/home_live.ex:183
#: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format
msgid "Report bugs or request features"
msgstr ""
#: lib/cannery_web/live/home_live.ex:161
#: lib/cannery_web/live/home_live.ex:146
#, elixir-autogen, elixir-format
msgid "View the source code"
msgstr ""
@ -809,22 +780,22 @@ msgstr ""
msgid "Catalog"
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
msgid "Edit Ammo"
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
msgid "Move Ammo"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:111
#: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container"
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
msgid "Show Ammo"
msgstr ""
@ -836,18 +807,18 @@ msgstr ""
#: lib/cannery_web/components/container_card.ex:58
#: 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
msgid "Packs:"
msgstr ""
#: 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
msgid "Cannery logo"
msgstr ""
#: lib/cannery_web/live/home_live.ex:44
#: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format
msgid "isn't he cute >:3"
msgstr ""
@ -865,22 +836,12 @@ msgstr ""
#: 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/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:61
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:195
#: lib/cannery_web/components/ammo_group_table_component.ex:192
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -905,7 +866,7 @@ 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/show.html.heex:103
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
@ -1061,18 +1022,18 @@ msgstr ""
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:117
#: 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:233
#: 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:86
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
@ -1082,7 +1043,7 @@ msgstr ""
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr ""
@ -1091,3 +1052,55 @@ msgstr ""
#, 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 ""
#: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:75
#: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}"
msgstr ""
@ -175,17 +175,17 @@ msgstr ""
msgid "Invalid multiplier"
msgstr ""
#: lib/cannery/ammo/ammo_group.ex:94
#: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format
msgid "Please select an ammo type and container"
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
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
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 ""
#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:56
#: 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:133
#: lib/cannery_web/live/tag_live/index.ex:38
@ -39,7 +39,7 @@ msgid "%{name} enabled succesfully"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:65
#: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format
msgid "%{name} has been deleted"
msgstr ""
@ -62,20 +62,15 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address."
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:133
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
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/show.html.heex:51
#: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format
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}?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -142,13 +137,13 @@ msgstr ""
msgid "Please check your email to verify your account"
msgstr ""
#: lib/cannery_web/live/home_live.ex:108
#: lib/cannery_web/live/home_live.ex:91
#, elixir-autogen, elixir-format
msgid "Register to setup %{name}"
msgstr ""
#: 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/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -173,7 +168,7 @@ msgstr ""
msgid "%{name} added successfully"
msgstr ""
#: lib/cannery_web/live/container_live/show.ex:41
#: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}"
msgstr ""
@ -193,13 +188,13 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?"
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:159
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
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
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
@ -236,7 +231,7 @@ msgstr ""
msgid "You'll need to"
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
msgid "Creating..."
msgstr ""
@ -251,7 +246,8 @@ msgstr ""
msgid "Language updated successfully."
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
msgid "Ammo deleted succesfully"
msgstr ""

View File

@ -16,7 +16,7 @@ msgid "Container must be empty before deleting"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:75
#: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}"
msgstr ""
@ -174,17 +174,17 @@ msgstr ""
msgid "Invalid multiplier"
msgstr ""
#: lib/cannery/ammo/ammo_group.ex:94
#: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format
msgid "Please select an ammo type and container"
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
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
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,7 +3,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-21 19:45+0000\n"
"PO-Revision-Date: 2022-11-13 21:49+0000\n"
"PO-Revision-Date: 2022-11-30 19:19+0000\n"
"Last-Translator: Brea Foga <breaardiente@gmail.com>\n"
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
"actions/es/>\n"
@ -134,7 +134,7 @@ msgid "Reset password"
msgstr "Resetear contraseña"
#: 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/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -149,7 +149,7 @@ msgstr "Guardar"
msgid "Send instructions to reset password"
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
msgid "Why not add one?"
msgstr "¿Por qué no añadir una?"
@ -169,7 +169,7 @@ msgstr "Preparar munición"
msgid "Why not get some ready to shoot?"
msgstr "¿Por qué no preparar parte para disparar?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:80
#: 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/range_live/index.html.heex:38
#, elixir-autogen, elixir-format
@ -201,7 +201,7 @@ msgstr "Copiar al portapapeles"
msgid "add a container first"
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
msgid "Create"
msgstr "Crear"
@ -244,21 +244,21 @@ msgstr "Mover munición"
#: lib/cannery_web/live/invite_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
msgstr "Activar ilimitados"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
msgstr "Preparar para el campo de tiro"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#: lib/cannery_web/live/range_live/index.html.heex:30
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
msgstr "Desmontar del campo de tiro"
#: lib/cannery_web/templates/user_settings/edit.html.heex:148
#, elixir-autogen, elixir-format
msgid "Export Data as JSON"
msgstr ""
msgstr "Exportar datos como JSON"

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-21 19:44+0000\n"
"PO-Revision-Date: 2022-05-22 22:52+0000\n"
"Last-Translator: Ed <ed.ylles1997@gmail.com>\n"
"PO-Revision-Date: 2022-11-30 19:19+0000\n"
"Last-Translator: Hannah Winter <konhat@hotmail.es>\n"
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
"emails/es/>\n"
"Language: es\n"
@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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.
##
@ -41,23 +41,23 @@ msgstr "Hola %{email},"
#: lib/cannery_web/templates/email/confirm_email.txt.eex:10
#, elixir-autogen, elixir-format
msgid "If you didn't create an account at %{url}, please ignore this."
msgstr ""
msgstr "Si no creó un usuario en %{url}, por favor, ignore este mensaje."
#: lib/cannery_web/templates/email/reset_password.txt.eex:8
#: lib/cannery_web/templates/email/update_email.txt.eex:8
#, elixir-autogen, elixir-format
msgid "If you didn't request this change from %{url}, please ignore this."
msgstr ""
msgstr "Si no pidió este cambio desde %{url}, por favor, ignore este mensaje."
#: lib/cannery/accounts/email.ex:37
#, elixir-autogen, elixir-format
msgid "Reset your %{name} password"
msgstr ""
msgstr "Reseteé su contraseña en %{name}"
#: lib/cannery/accounts/email.ex:44
#, elixir-autogen, elixir-format
msgid "Update your %{name} email"
msgstr ""
msgstr "Actualice su correo en &{url}"
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
#, elixir-autogen, elixir-format
@ -95,20 +95,26 @@ msgstr ""
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
#, elixir-autogen, elixir-format
msgid "If you didn't create an account at %{name}, please ignore this."
msgstr ""
msgstr "Si no ha creado una cuenta en %{name}, por favor, ignore este mensaje."
#: lib/cannery_web/templates/email/reset_password.html.eex:16
#: lib/cannery_web/templates/email/update_email.html.eex:16
#, elixir-autogen, elixir-format
msgid "If you didn't request this change from %{name}, please ignore this."
msgstr ""
"Si no ha solicitado este cambio desde %{name}, por favor, ignore este "
"mensaje."
#: lib/cannery_web/templates/layout/email.txt.eex:9
#, elixir-autogen, elixir-format
msgid "This email was sent from %{name} at %{url}, the self-hosted firearm tracker website."
msgstr ""
"Este correo se mandó por %{name} desde %{url}, la página de seguimiento de "
"armas autogestionada."
#: lib/cannery_web/templates/layout/email.html.heex:13
#, elixir-autogen, elixir-format
msgid "This email was sent from %{name}, the self-hosted firearm tracker website."
msgstr ""
"Este correo se mandó por %{name}, la página de seguimiento de armas "
"autogestionada."

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-21 19:44+0000\n"
"PO-Revision-Date: 2022-11-13 21:49+0000\n"
"PO-Revision-Date: 2022-11-30 19:19+0000\n"
"Last-Translator: Brea Foga <breaardiente@gmail.com>\n"
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
"errors/es/>\n"
@ -29,7 +29,7 @@ msgid "Container must be empty before deleting"
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/show.ex:75
#: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}"
msgstr "No se pudo eliminar %{name}: %{error}"
@ -90,18 +90,18 @@ msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:56
#, elixir-autogen, elixir-format
msgid "Sorry, public registration is disabled"
msgstr "Lo sentimos, la inscripción pública está desactivada"
msgstr "Lo sentimos, el registro público no está habilitado"
#: lib/cannery_web/controllers/user_registration_controller.ex:15
#: lib/cannery_web/controllers/user_registration_controller.ex:46
#, elixir-autogen, elixir-format
msgid "Sorry, this invite was not found or expired"
msgstr "Lo sentimos, esta invitación no fue encontrada o ha expirado"
msgstr "Lo sentimos, esta invitación no es válida o ha caducado"
#: lib/cannery_web/controllers/user_settings_controller.ex:99
#, elixir-autogen, elixir-format
msgid "Unable to delete user"
msgstr "No se pudo borrar el usuario"
msgstr "No se ha podido eliminar el usuario"
#: lib/cannery_web/views/error_view.ex:10
#, elixir-autogen, elixir-format
@ -111,7 +111,7 @@ msgstr "No autorizado"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:54
#, elixir-autogen, elixir-format
msgid "User confirmation link is invalid or it has expired."
msgstr "El enlace de confirmación es inválido o ha expirado."
msgstr "El enlace de confirmación de usuario no es válido o ha caducado"
#: lib/cannery_web/live/invite_live/index.ex:18
#, elixir-autogen, elixir-format
@ -151,7 +151,7 @@ msgstr "Etiqueta no encontrada"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30
#, elixir-autogen, elixir-format
msgid "Tag could not be added"
msgstr "La etiqueta no pudo ser añadida"
msgstr "No se ha podido añadir la etiqueta"
#: lib/cannery/activity_log/shot_group.ex:123
#, elixir-autogen, elixir-format
@ -178,7 +178,7 @@ msgstr "La etiqueta no pudo ser eliminada"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:157
#, elixir-autogen, elixir-format
msgid "Could not parse number of copies"
msgstr "No se pudo analizar el número de copias"
msgstr "No se ha podido procesar el número de copias"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:142
#, elixir-autogen, elixir-format
@ -190,17 +190,17 @@ msgstr "Número inválido de copias, debe ser entre 1 y %{max}. Fue %{multiplier
msgid "Invalid multiplier"
msgstr "Multiplicador inválido"
#: lib/cannery/ammo/ammo_group.ex:94
#: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format
msgid "Please select an ammo type and container"
msgstr ""
#: lib/cannery/activity_log/shot_group.ex:77
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""
msgstr "Por favor escoja un tipo de munición y un contenedor"
#: lib/cannery_web/live/range_live/index.html.heex:67
#, elixir-autogen, elixir-format
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
msgid "Please select a valid user and ammo pack"
msgstr "Por favor escoja un usuario y tipo de munición valido"

View File

@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-21 19:44+0000\n"
"PO-Revision-Date: 2022-06-06 19:05+0000\n"
"Last-Translator: Ed <ed.ylles1997@gmail.com>\n"
"PO-Revision-Date: 2022-11-30 19:19+0000\n"
"Last-Translator: Brea Foga <breaardiente@gmail.com>\n"
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
"prompts/es/>\n"
"Language: es\n"
@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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.
##
@ -32,7 +32,7 @@ msgid "%{name} created successfully"
msgstr "%{name} creado exitosamente"
#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:56
#: 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:133
#: lib/cannery_web/live/tag_live/index.ex:38
@ -51,7 +51,7 @@ msgid "%{name} enabled succesfully"
msgstr "%{name} activado exitosamente"
#: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:65
#: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format
msgid "%{name} has been deleted"
msgstr "%{name} ha sido borrado"
@ -76,20 +76,15 @@ msgstr ""
"Un enlace para confirmar el correo electrónico ha sido enviado a la nueva "
"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:133
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!"
#: lib/cannery_web/live/container_live/index.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/show.html.heex:51
#: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format
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}?"
msgstr "Está seguro que quiere eliminar la invitación para %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format
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"
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
msgid "Register to setup %{name}"
msgstr "Regístrese para configurar %{name}"
#: 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/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -192,7 +187,7 @@ msgstr ""
msgid "%{name} added successfully"
msgstr "%{name} añadido exitosamente"
#: lib/cannery_web/live/container_live/show.ex:41
#: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}"
msgstr "se ha removido %{tag_name} de %{container_name}"
@ -212,88 +207,91 @@ msgstr "Tiros registrados exitosamente"
msgid "Are you sure you want to unstage this ammo?"
msgstr "Está seguro que desea desmontar esta munición?"
#: lib/cannery_web/live/ammo_group_live/show.ex:132
#: lib/cannery_web/live/ammo_group_live/show.ex:137
#: lib/cannery_web/live/range_live/index.ex:159
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""
msgstr "¿Está segure que quiere borrar este récord de disparos?"
#: 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
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
msgstr ""
msgstr "Récord de disparos borrado exitosamente"
#: lib/cannery_web/live/range_live/form_component.ex:55
#, elixir-autogen, elixir-format
msgid "Shot records updated successfully"
msgstr ""
msgstr "Récord de disparos actualizado exitosamente"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:38
#, elixir-autogen, elixir-format
msgid "%{email} confirmed successfully."
msgstr ""
msgstr "%{email} confirmado exitosamente."
#: lib/cannery_web/components/move_ammo_group_component.ex:53
#, elixir-autogen, elixir-format
msgid "Ammo moved to %{name} successfully"
msgstr ""
msgstr "Munición movida a %{name} exitosamente"
#: lib/cannery_web/live/invite_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Copied to clipboard"
msgstr ""
msgstr "Copiado al portapapeles"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:58
#, elixir-autogen, elixir-format
msgid "%{name} removed successfully"
msgstr ""
msgstr "%{name} eliminado exitosamente"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:17
#: lib/cannery_web/live/ammo_group_live/index.html.heex:27
#, elixir-autogen, elixir-format
msgid "You'll need to"
msgstr ""
msgstr "Necesitará hacerlo"
#: 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
msgid "Creating..."
msgstr ""
msgstr "Creando..."
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
#, elixir-autogen, elixir-format
msgid "Are you sure you want to change your language?"
msgstr ""
msgstr "¿Está segure de que quiere cambiar el idioma?"
#: lib/cannery_web/controllers/user_settings_controller.ex:65
#, elixir-autogen, elixir-format
msgid "Language updated successfully."
msgstr ""
msgstr "Idioma cambiado exitosamente."
#: lib/cannery_web/live/ammo_group_live/show.ex:50
#, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/live/ammo_group_live/index.ex:64
#: lib/cannery_web/live/ammo_group_live/show.ex:55
#, elixir-autogen, elixir-format
msgid "Ammo deleted succesfully"
msgstr ""
msgstr "Munición borrada exitosamente"
#: lib/cannery_web/live/range_live/index.ex:68
#, elixir-autogen, elixir-format, fuzzy
#, elixir-autogen, elixir-format
msgid "Ammo unstaged succesfully"
msgstr ""
msgstr "Munición descargada exitosamente"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:118
#, elixir-autogen, elixir-format, fuzzy
#, elixir-autogen, elixir-format
msgid "Ammo updated successfully"
msgstr ""
msgstr "Munición actualizada exitosamente"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:178
#, elixir-autogen, elixir-format, fuzzy
#, elixir-autogen, elixir-format
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "Munición añadida exitosamente"
msgstr[1] "Municiones añadidas exitosamente"
#: lib/cannery_web/live/ammo_type_live/index.ex:232
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
msgstr ""
"¿Está seguro de que quiere borrar %{name}? ¡Esto también borrará todos los "
"tipos de munición %{name}!"

View File

@ -134,7 +134,7 @@ msgid "Reset password"
msgstr "Réinitialisé le mot de passe"
#: 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/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -149,7 +149,7 @@ msgstr "Sauvegarder"
msgid "Send instructions to reset password"
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
msgid "Why not add one?"
msgstr "Pourquoi pas en ajouter un?"
@ -169,7 +169,7 @@ msgstr "Munition préparée"
msgid "Why not get some ready to shoot?"
msgstr "Pourquoi pas en préparer pour tirer?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:80
#: 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/range_live/index.html.heex:38
#, elixir-autogen, elixir-format
@ -201,7 +201,7 @@ msgstr "Copier dans le presse-papier"
msgid "add a container first"
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
msgid "Create"
msgstr "Créer"

View File

@ -23,14 +23,14 @@ msgstr ""
# # Run "mix gettext.extract" to bring this file up to
# # date. Leave "msgstr"s empty as changing them here has no
# # effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/home_live.ex:64
#: lib/cannery_web/live/home_live.ex:47
#, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr ""
"%{name} vous permet de facilement garder un œil sur votre niveau de munition "
"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
msgid "Access from any internet-capable device"
msgstr "Accédez depuis nimporte quel appareil connecté à internet"
@ -40,19 +40,20 @@ msgstr "Accédez depuis nimporte quel appareil connecté à internet"
msgid "Admins"
msgstr "Administrateur·ices"
#: lib/cannery_web/live/home_live.ex:100
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format
msgid "Admins:"
msgstr "Administrateur·ices:"
#: 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/range_live/index.ex:80
#, elixir-autogen, elixir-format
msgid "Ammo"
msgstr "Munition"
#: lib/cannery_web/components/ammo_group_table_component.ex:96
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -104,9 +105,9 @@ msgstr "Cartouche"
msgid "Case material"
msgstr "Matériau de la caisse"
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: 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
#, elixir-autogen, elixir-format
msgid "Container"
msgstr "Conteneur"
@ -125,7 +126,7 @@ msgstr "Conteneurs"
msgid "Corrosive"
msgstr "Corrosive"
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Count"
@ -150,16 +151,11 @@ msgstr "Description"
msgid "Description:"
msgstr "Description:"
#: lib/cannery_web/live/home_live.ex:61
#: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
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
#, elixir-autogen, elixir-format
msgid "Edit Ammo type"
@ -197,17 +193,17 @@ msgstr "Graines"
msgid "Incendiary"
msgstr "Incendiaire"
#: lib/cannery_web/live/home_live.ex:95
#: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format
msgid "Instance Information"
msgstr "Information de linstance"
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
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
msgid "Invite Only"
msgstr "Uniquement sur invitation"
@ -295,11 +291,6 @@ msgstr "Nouveau tag"
msgid "No Ammo"
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
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
@ -322,9 +313,9 @@ msgid "No tags"
msgstr "Aucun tag"
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/components/ammo_group_table_component.ex:88
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: 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/index.ex:82
#, elixir-autogen, elixir-format
@ -348,7 +339,7 @@ msgstr "Sur létagère"
msgid "Pressure"
msgstr "Pression"
#: lib/cannery_web/components/ammo_group_table_component.ex:85
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#, elixir-autogen, elixir-format
msgid "Price paid"
@ -365,17 +356,17 @@ msgstr "Prix payé:"
msgid "Primer type"
msgstr "Type damorce"
#: lib/cannery_web/live/home_live.ex:127
#: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format
msgid "Public Signups"
msgstr "Enregistrements publics"
#: lib/cannery_web/live/home_live.ex:73
#: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format
msgid "Secure:"
msgstr "Sécurisé:"
#: lib/cannery_web/live/home_live.ex:76
#: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
@ -388,7 +379,7 @@ msgstr ""
msgid "Settings"
msgstr "Paramètres"
#: lib/cannery_web/live/home_live.ex:83
#: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Simple:"
msgstr "Simple:"
@ -423,7 +414,7 @@ msgstr ""
msgid "Text color"
msgstr "Couleur du texte"
#: lib/cannery_web/live/home_live.ex:52
#: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website"
msgstr "Le site web de suivi darme à feux auto-hébergé"
@ -452,7 +443,7 @@ msgstr "Type:"
msgid "Users"
msgstr "Utilisateurs"
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr "Utilisations restantes:"
@ -462,22 +453,22 @@ msgstr "Utilisations restantes:"
msgid "Uses left"
msgstr "Utilisations restantes"
#: lib/cannery_web/live/home_live.ex:48
#: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}"
msgstr "Bienvenue à %{name}"
#: lib/cannery_web/live/home_live.ex:77
#: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format
msgid "Your data stays with you, period"
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
msgid "No tags for this container"
msgstr "Aucun tag pour ce conteneur"
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81
#, elixir-autogen, elixir-format
msgid "Range"
@ -488,7 +479,9 @@ msgstr "Portée"
msgid "Range day"
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
#, elixir-autogen, elixir-format
msgid "Date"
@ -510,18 +503,7 @@ msgstr "Aucune munition sélectionnée"
msgid "Record shots"
msgstr "Tirs enregistrés"
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#, 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/ammo_group_live/show.ex:42
#: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Edit Shot Records"
@ -543,7 +525,7 @@ msgstr "Aucun tir enregistré"
msgid "Rounds left"
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.html.heex:62
#, elixir-autogen, elixir-format
@ -556,11 +538,7 @@ msgid "Shot Records"
msgstr "Enregistrements de tir"
#: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Move Ammo group"
msgstr "Déplacer le groupe de munition"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr "Déplacer munition"
@ -577,8 +555,8 @@ msgstr "Évènements de tir"
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:159
#: lib/cannery_web/components/ammo_group_table_component.ex:227
#: 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:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179
@ -638,12 +616,12 @@ msgstr "Mot de passe actuel"
msgid "New password"
msgstr "Nouveau mot de passe"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:73
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr "Sélectionné"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:73
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr "Désélectionner"
@ -665,32 +643,32 @@ msgid "Loading..."
msgstr "Chargement en cours…"
#: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:124
#: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr "Éditer %{name}"
#: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:125
#: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr "Éditer les tags de %{name}"
#: lib/cannery_web/components/container_card.ex:63
#: 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
msgid "Rounds:"
msgstr "Cartouches:"
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/components/ammo_group_table_component.ex:221
#: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr "Aucune information de prix"
#: lib/cannery_web/components/ammo_group_table_component.ex:87
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format
msgid "% left"
msgstr "%restante"
@ -745,13 +723,13 @@ msgstr "Senregistrer"
msgid "Reset your password"
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
#, elixir-autogen, elixir-format
msgid "Record Shots"
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
msgid "Copies"
msgstr "Exemplaires"
@ -761,13 +739,6 @@ msgstr "Exemplaires"
msgid "Ammo types"
msgstr "Types de munition"
#: lib/cannery_web/components/ammo_group_table_component.ex:66
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr "Ajouté le"
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on:"
@ -801,22 +772,22 @@ msgstr "Allemand"
msgid "Language"
msgstr "Langue"
#: lib/cannery_web/live/home_live.ex:151
#: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format
msgid "Get involved!"
msgstr "Impliquez-vous!"
#: lib/cannery_web/live/home_live.ex:172
#: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format
msgid "Help translate"
msgstr "Aider à la traduction"
#: lib/cannery_web/live/home_live.ex:183
#: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format
msgid "Report bugs or request features"
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
msgid "View the source code"
msgstr "Voir le code source"
@ -827,22 +798,22 @@ msgstr "Voir le code source"
msgid "Catalog"
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
msgid "Edit Ammo"
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
msgid "Move Ammo"
msgstr "Déplacer munition"
#: lib/cannery_web/live/container_live/show.html.heex:111
#: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container"
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
msgid "Show Ammo"
msgstr "Montrer le type de munition"
@ -854,18 +825,18 @@ msgstr "Ce groupe de munition nest pas dans un conteneur"
#: lib/cannery_web/components/container_card.ex:58
#: 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
msgid "Packs:"
msgstr "Packages:"
#: 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
msgid "Cannery logo"
msgstr "Logo de Cannery"
#: lib/cannery_web/live/home_live.ex:44
#: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format
msgid "isn't he cute >:3"
msgstr "N'est-il mignon >:3"
@ -884,22 +855,12 @@ msgstr "Conteneur"
#: 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/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:61
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:195
#: lib/cannery_web/components/ammo_group_table_component.ex:192
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -924,7 +885,7 @@ 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/show.html.heex:103
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
@ -1080,18 +1041,18 @@ msgstr "UPC"
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:117
#: 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:233
#: 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:86
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
@ -1101,7 +1062,7 @@ msgstr ""
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr "Nombre original:"
@ -1110,3 +1071,55 @@ msgstr "Nombre original:"
#, 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é"
#: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:75
#: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}"
msgstr "Impossible de supprimer %{name} : %{error}"
@ -191,17 +191,17 @@ msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"
msgid "Invalid multiplier"
msgstr "Multiplicateur invalide"
#: lib/cannery/ammo/ammo_group.ex:94
#: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format
msgid "Please select an ammo type and container"
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
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
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"
#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:56
#: 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:133
#: lib/cannery_web/live/tag_live/index.ex:38
@ -51,7 +51,7 @@ msgid "%{name} enabled succesfully"
msgstr "%{name} activé·e avec succès"
#: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:65
#: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format
msgid "%{name} has been deleted"
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 "
"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:133
#, elixir-autogen, elixir-format
@ -88,9 +83,9 @@ msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
"Êtes-vous certain·e de supprimer %{email}? Cette action est définitive!"
#: lib/cannery_web/live/container_live/index.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/show.html.heex:51
#: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format
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}?"
msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format
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"
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
msgid "Register to setup %{name}"
msgstr "Senregistrer pour mettre en place %{name}"
#: 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/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -194,7 +189,7 @@ msgstr ""
msgid "%{name} added successfully"
msgstr "%{name} a été ajouté avec succès"
#: lib/cannery_web/live/container_live/show.ex:41
#: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{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?"
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:159
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir?"
#: 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
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
@ -257,7 +252,7 @@ msgstr "%{name} retiré avec succès"
msgid "You'll need to"
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
msgid "Creating..."
msgstr "Création en cours…"
@ -272,7 +267,8 @@ msgstr "Êtes-vous certain·e de vouloir changer votre langue?"
msgid "Language updated successfully."
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
msgid "Ammo deleted succesfully"
msgstr "Groupe de munition supprimé avec succès"

View File

@ -132,7 +132,7 @@ msgid "Reset password"
msgstr ""
#: 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/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
@ -147,7 +147,7 @@ msgstr ""
msgid "Send instructions to reset password"
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
msgid "Why not add one?"
msgstr ""
@ -167,7 +167,7 @@ msgstr ""
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:80
#: 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/range_live/index.html.heex:38
#, elixir-autogen, elixir-format
@ -199,7 +199,7 @@ msgstr ""
msgid "add a container first"
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
msgid "Create"
msgstr ""

View File

@ -21,12 +21,12 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/home_live.ex:64
#: lib/cannery_web/live/home_live.ex:47
#, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr ""
#: lib/cannery_web/live/home_live.ex:86
#: lib/cannery_web/live/home_live.ex:69
#, elixir-autogen, elixir-format
msgid "Access from any internet-capable device"
msgstr ""
@ -36,19 +36,20 @@ msgstr ""
msgid "Admins"
msgstr ""
#: lib/cannery_web/live/home_live.ex:100
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format
msgid "Admins:"
msgstr ""
#: 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/range_live/index.ex:80
#, elixir-autogen, elixir-format
msgid "Ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:96
#: lib/cannery_web/components/ammo_group_table_component.ex:89
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Ammo type"
@ -100,9 +101,9 @@ msgstr ""
msgid "Case material"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/ammo_group_table_component.ex:65
#: 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
#, elixir-autogen, elixir-format
msgid "Container"
msgstr ""
@ -121,7 +122,7 @@ msgstr ""
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:83
#: lib/cannery_web/components/ammo_group_table_component.ex:76
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Count"
@ -146,16 +147,11 @@ msgstr ""
msgid "Description:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:61
#: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
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
#, elixir-autogen, elixir-format
msgid "Edit Ammo type"
@ -193,17 +189,17 @@ msgstr ""
msgid "Incendiary"
msgstr ""
#: lib/cannery_web/live/home_live.ex:95
#: lib/cannery_web/live/home_live.ex:78
#, elixir-autogen, elixir-format
msgid "Instance Information"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:32
#: lib/cannery_web/components/invite_card.ex:35
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr ""
#: lib/cannery_web/live/home_live.ex:128
#: lib/cannery_web/live/home_live.ex:111
#, elixir-autogen, elixir-format
msgid "Invite Only"
msgstr ""
@ -291,11 +287,6 @@ msgstr ""
msgid "No Ammo"
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
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
@ -318,9 +309,9 @@ msgid "No tags"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/components/ammo_group_table_component.ex:88
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/components/ammo_group_table_component.ex:81
#: 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/index.ex:82
#, elixir-autogen, elixir-format
@ -344,7 +335,7 @@ msgstr ""
msgid "Pressure"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:85
#: lib/cannery_web/components/ammo_group_table_component.ex:78
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#, elixir-autogen, elixir-format
msgid "Price paid"
@ -361,17 +352,17 @@ msgstr ""
msgid "Primer type"
msgstr ""
#: lib/cannery_web/live/home_live.ex:127
#: lib/cannery_web/live/home_live.ex:110
#, elixir-autogen, elixir-format
msgid "Public Signups"
msgstr ""
#: lib/cannery_web/live/home_live.ex:73
#: lib/cannery_web/live/home_live.ex:56
#, elixir-autogen, elixir-format
msgid "Secure:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:76
#: lib/cannery_web/live/home_live.ex:59
#, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
@ -382,7 +373,7 @@ msgstr ""
msgid "Settings"
msgstr ""
#: lib/cannery_web/live/home_live.ex:83
#: lib/cannery_web/live/home_live.ex:66
#, elixir-autogen, elixir-format
msgid "Simple:"
msgstr ""
@ -415,7 +406,7 @@ msgstr ""
msgid "Text color"
msgstr ""
#: lib/cannery_web/live/home_live.ex:52
#: lib/cannery_web/live/home_live.ex:35
#, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website"
msgstr ""
@ -444,7 +435,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:27
#: lib/cannery_web/components/invite_card.ex:30
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr ""
@ -454,22 +445,22 @@ msgstr ""
msgid "Uses left"
msgstr ""
#: lib/cannery_web/live/home_live.ex:48
#: lib/cannery_web/live/home_live.ex:31
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}"
msgstr ""
#: lib/cannery_web/live/home_live.ex:77
#: lib/cannery_web/live/home_live.ex:60
#, elixir-autogen, elixir-format
msgid "Your data stays with you, period"
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
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#: lib/cannery_web/components/ammo_group_table_component.ex:72
#: lib/cannery_web/components/topbar.ex:81
#, elixir-autogen, elixir-format
msgid "Range"
@ -480,7 +471,9 @@ msgstr ""
msgid "Range day"
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
#, elixir-autogen, elixir-format
msgid "Date"
@ -502,18 +495,7 @@ msgstr ""
msgid "Record shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#, 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/ammo_group_live/show.ex:42
#: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Edit Shot Records"
@ -535,7 +517,7 @@ msgstr ""
msgid "Rounds left"
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.html.heex:62
#, elixir-autogen, elixir-format
@ -548,11 +530,7 @@ msgid "Shot Records"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:97
#: lib/cannery_web/live/ammo_group_live/index.html.heex:96
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
@ -569,8 +547,8 @@ msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71
#: lib/cannery_web/components/ammo_group_card.ex:78
#: lib/cannery_web/components/ammo_group_table_component.ex:159
#: lib/cannery_web/components/ammo_group_table_component.ex:227
#: 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:44
#: lib/cannery_web/live/ammo_type_live/index.ex:179
@ -630,12 +608,12 @@ msgstr ""
msgid "New password"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:73
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:73
#: lib/cannery_web/live/ammo_group_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
@ -657,32 +635,32 @@ msgid "Loading..."
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:124
#: lib/cannery_web/live/container_live/show.ex:126
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:125
#: lib/cannery_web/live/container_live/show.ex:127
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr ""
#: lib/cannery_web/components/container_card.ex:63
#: 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
msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:224
#: lib/cannery_web/components/ammo_group_table_component.ex:221
#: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:87
#: lib/cannery_web/components/ammo_group_table_component.ex:80
#, elixir-autogen, elixir-format
msgid "% left"
msgstr ""
@ -737,13 +715,13 @@ msgstr ""
msgid "Reset your password"
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
#, elixir-autogen, elixir-format
msgid "Record Shots"
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
msgid "Copies"
msgstr ""
@ -753,13 +731,6 @@ msgstr ""
msgid "Ammo types"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:66
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:57
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:123
#, elixir-autogen, elixir-format
msgid "Added on:"
@ -793,22 +764,22 @@ msgstr ""
msgid "Language"
msgstr ""
#: lib/cannery_web/live/home_live.ex:151
#: lib/cannery_web/live/home_live.ex:136
#, elixir-autogen, elixir-format
msgid "Get involved!"
msgstr ""
#: lib/cannery_web/live/home_live.ex:172
#: lib/cannery_web/live/home_live.ex:157
#, elixir-autogen, elixir-format
msgid "Help translate"
msgstr ""
#: lib/cannery_web/live/home_live.ex:183
#: lib/cannery_web/live/home_live.ex:168
#, elixir-autogen, elixir-format
msgid "Report bugs or request features"
msgstr ""
#: lib/cannery_web/live/home_live.ex:161
#: lib/cannery_web/live/home_live.ex:146
#, elixir-autogen, elixir-format
msgid "View the source code"
msgstr ""
@ -819,22 +790,22 @@ msgstr ""
msgid "Catalog"
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
msgid "Edit Ammo"
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
msgid "Move Ammo"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:111
#: lib/cannery_web/live/container_live/show.html.heex:119
#, elixir-autogen, elixir-format
msgid "No ammo in this container"
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
msgid "Show Ammo"
msgstr ""
@ -846,18 +817,18 @@ msgstr ""
#: lib/cannery_web/components/container_card.ex:58
#: 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
msgid "Packs:"
msgstr ""
#: 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
msgid "Cannery logo"
msgstr ""
#: lib/cannery_web/live/home_live.ex:44
#: lib/cannery_web/live/home_live.ex:27
#, elixir-autogen, elixir-format
msgid "isn't he cute >:3"
msgstr ""
@ -875,22 +846,12 @@ msgstr ""
#: 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/show.html.heex:152
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#, elixir-autogen, elixir-format
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:61
#, elixir-autogen, elixir-format
msgid "Used up on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63
#, elixir-autogen, elixir-format
msgid "Used up on:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:195
#: lib/cannery_web/components/ammo_group_table_component.ex:192
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
@ -915,7 +876,7 @@ 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/show.html.heex:103
#: lib/cannery_web/live/container_live/show.html.heex:111
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
@ -1071,18 +1032,18 @@ msgstr ""
msgid "Average CPR"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:117
#: 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:233
#: 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:86
#: lib/cannery_web/components/ammo_group_table_component.ex:79
#, elixir-autogen, elixir-format
msgid "CPR"
msgstr ""
@ -1092,7 +1053,7 @@ msgstr ""
msgid "CPR:"
msgstr ""
#: lib/cannery_web/components/ammo_group_table_component.ex:84
#: lib/cannery_web/components/ammo_group_table_component.ex:77
#, elixir-autogen, elixir-format, fuzzy
msgid "Original Count"
msgstr ""
@ -1101,3 +1062,55 @@ msgstr ""
#, 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"
#: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:75
#: lib/cannery_web/live/container_live/show.ex:77
#, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}"
msgstr "Ní feidir %{name} a scriosadh: %{error}"
@ -190,17 +190,17 @@ msgstr ""
msgid "Invalid multiplier"
msgstr ""
#: lib/cannery/ammo/ammo_group.ex:94
#: lib/cannery/ammo/ammo_group.ex:96
#, elixir-autogen, elixir-format
msgid "Please select an ammo type and container"
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
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
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 ""
#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:56
#: 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:133
#: lib/cannery_web/live/tag_live/index.ex:38
@ -49,7 +49,7 @@ msgid "%{name} enabled succesfully"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:65
#: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format
msgid "%{name} has been deleted"
msgstr ""
@ -72,20 +72,15 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address."
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:133
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
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/show.html.heex:51
#: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format
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}?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -152,13 +147,13 @@ msgstr ""
msgid "Please check your email to verify your account"
msgstr ""
#: lib/cannery_web/live/home_live.ex:108
#: lib/cannery_web/live/home_live.ex:91
#, elixir-autogen, elixir-format
msgid "Register to setup %{name}"
msgstr ""
#: 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/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -183,7 +178,7 @@ msgstr ""
msgid "%{name} added successfully"
msgstr ""
#: lib/cannery_web/live/container_live/show.ex:41
#: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}"
msgstr ""
@ -203,13 +198,13 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?"
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:159
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
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
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
@ -246,7 +241,7 @@ msgstr ""
msgid "You'll need to"
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
msgid "Creating..."
msgstr ""
@ -261,7 +256,8 @@ msgstr ""
msgid "Language updated successfully."
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
msgid "Ammo deleted succesfully"
msgstr ""

View File

@ -19,7 +19,7 @@ msgid "%{name} created successfully"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:56
#: 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:133
#: lib/cannery_web/live/tag_live/index.ex:38
@ -38,7 +38,7 @@ msgid "%{name} enabled succesfully"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:65
#: lib/cannery_web/live/container_live/show.ex:67
#, elixir-autogen, elixir-format
msgid "%{name} has been deleted"
msgstr ""
@ -61,20 +61,15 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address."
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:133
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
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/show.html.heex:51
#: lib/cannery_web/live/container_live/show.html.heex:59
#: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format
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}?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:132
#: lib/cannery_web/live/ammo_group_live/index.html.heex:131
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -141,13 +136,13 @@ msgstr ""
msgid "Please check your email to verify your account"
msgstr ""
#: lib/cannery_web/live/home_live.ex:108
#: lib/cannery_web/live/home_live.ex:91
#, elixir-autogen, elixir-format
msgid "Register to setup %{name}"
msgstr ""
#: 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/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33
@ -172,7 +167,7 @@ msgstr ""
msgid "%{name} added successfully"
msgstr ""
#: lib/cannery_web/live/container_live/show.ex:41
#: lib/cannery_web/live/container_live/show.ex:43
#, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}"
msgstr ""
@ -192,13 +187,13 @@ msgstr ""
msgid "Are you sure you want to unstage this ammo?"
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:159
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
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
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
@ -235,7 +230,7 @@ msgstr ""
msgid "You'll need to"
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
msgid "Creating..."
msgstr ""
@ -250,7 +245,8 @@ msgstr ""
msgid "Language updated successfully."
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
msgid "Ammo deleted succesfully"
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,9 +224,22 @@ defmodule Cannery.AmmoTest do
end
describe "ammo_groups" do
@valid_attrs %{"count" => 42, "notes" => "some notes", "price_paid" => 120.5}
@update_attrs %{"count" => 43, "notes" => "some updated notes", "price_paid" => 456.7}
@invalid_attrs %{"count" => nil, "notes" => nil, "price_paid" => nil}
@valid_attrs %{
"count" => 42,
"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
current_user = user_fixture()

View File

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

View File

@ -14,4 +14,10 @@ defmodule CanneryWeb.HomeLiveTest do
assert disconnected_html =~ gettext("Welcome to %{name}", name: "Cannery")
assert render(home_live) =~ gettext("Welcome to %{name}", name: "Cannery")
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

View File

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