Compare commits
15 Commits
0.5.4
...
cfbec3189c
Author | SHA1 | Date | |
---|---|---|---|
cfbec3189c | |||
cc31958bbe | |||
9e386f1631 | |||
36a0a1c6c8 | |||
2e0bb861f1 | |||
dbc575d305 | |||
5390dcc4c2 | |||
dc355fcd8e | |||
44fbd69e0f | |||
10c4f40864 | |||
d512ec8e10 | |||
81b68ba4af | |||
b6e0a543ec | |||
cf75007e4d | |||
1583ad3503 |
12
.drone.yml
12
.drone.yml
@ -32,9 +32,13 @@ steps:
|
||||
- mix test
|
||||
|
||||
- name: build and publish stable
|
||||
image: plugins/docker
|
||||
image: thegeeklab/drone-docker-buildx
|
||||
privileged: true
|
||||
settings:
|
||||
repo: shibaobun/cannery
|
||||
purge: true
|
||||
compress: true
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
@ -45,9 +49,13 @@ steps:
|
||||
- stable
|
||||
|
||||
- name: build and publish tagged version
|
||||
image: plugins/docker
|
||||
image: thegeeklab/drone-docker-buildx
|
||||
privileged: true
|
||||
settings:
|
||||
repo: shibaobun/cannery
|
||||
purge: true
|
||||
compress: true
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
|
13
CHANGELOG.md
13
CHANGELOG.md
@ -1,3 +1,16 @@
|
||||
# v0.5.5
|
||||
- Update translations
|
||||
- Display used-up date on used-up ammo
|
||||
- Make ammo index page a bit more compact
|
||||
- Make ammo index page filter used-up ammo
|
||||
- Make ammo catalog page include ammo count
|
||||
- Make ammo type show page a bit more compact
|
||||
- Make ammo type show page include container names for each ammo
|
||||
- Make ammo type show page filter used-up ammo
|
||||
- Make container show page a bit more compact
|
||||
- Make container show page filter used-up ammo
|
||||
- Forgot to add the logo as the favicon whoops
|
||||
|
||||
# v0.5.4
|
||||
- Rename "Ammo" tab to "Catalog", and "Manage" tab is now "Ammo"
|
||||
- Ammo groups are now just referred to as Ammo or "Packs"
|
||||
|
@ -1,6 +1,5 @@
|
||||
# Cannery
|
||||
|
||||

|
||||

|
||||
|
||||
The self-hosted firearm tracker website.
|
||||
|
@ -25,7 +25,7 @@
|
||||
}
|
||||
|
||||
.btn {
|
||||
@apply inline-block break-words min-w-4;
|
||||
@apply inline-block break-words;
|
||||
@apply focus:outline-none px-4 py-2 rounded-lg;
|
||||
@apply shadow-sm focus:shadow-lg;
|
||||
@apply transition-all duration-300 ease-in-out;
|
||||
@ -52,7 +52,7 @@
|
||||
}
|
||||
|
||||
.link {
|
||||
@apply inline-block break-all min-w-4;
|
||||
@apply inline-block break-words;
|
||||
@apply hover:underline;
|
||||
@apply transition-colors duration-500 ease-in-out;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ defmodule Cannery.Ammo do
|
||||
|
||||
import CanneryWeb.Gettext
|
||||
import Ecto.Query, warn: false
|
||||
alias Cannery.{Accounts.User, Containers, Repo}
|
||||
alias Cannery.{Accounts.User, Containers, Containers.Container, Repo}
|
||||
alias Cannery.ActivityLog.ShotGroup
|
||||
alias Cannery.Ammo.{AmmoGroup, AmmoType}
|
||||
alias Ecto.Changeset
|
||||
@ -220,7 +220,15 @@ defmodule Cannery.Ammo do
|
||||
|
||||
"""
|
||||
@spec list_ammo_groups_for_type(AmmoType.t(), User.t()) :: [AmmoGroup.t()]
|
||||
def list_ammo_groups_for_type(%AmmoType{id: ammo_type_id, user_id: user_id}, %User{id: user_id}) do
|
||||
@spec list_ammo_groups_for_type(AmmoType.t(), User.t(), include_empty :: boolean()) ::
|
||||
[AmmoGroup.t()]
|
||||
def list_ammo_groups_for_type(ammo_type, user, include_empty \\ false)
|
||||
|
||||
def list_ammo_groups_for_type(
|
||||
%AmmoType{id: ammo_type_id, user_id: user_id},
|
||||
%User{id: user_id},
|
||||
true = _include_empty
|
||||
) do
|
||||
Repo.all(
|
||||
from ag in AmmoGroup,
|
||||
left_join: sg in assoc(ag, :shot_groups),
|
||||
@ -231,6 +239,110 @@ defmodule Cannery.Ammo do
|
||||
)
|
||||
end
|
||||
|
||||
def list_ammo_groups_for_type(
|
||||
%AmmoType{id: ammo_type_id, user_id: user_id},
|
||||
%User{id: user_id},
|
||||
false = _include_empty
|
||||
) do
|
||||
Repo.all(
|
||||
from ag in AmmoGroup,
|
||||
left_join: sg in assoc(ag, :shot_groups),
|
||||
where: ag.ammo_type_id == ^ammo_type_id,
|
||||
where: ag.user_id == ^user_id,
|
||||
where: not (ag.count == 0),
|
||||
preload: [shot_groups: sg],
|
||||
order_by: ag.id
|
||||
)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns the list of ammo_groups for a user and container.
|
||||
|
||||
## Examples
|
||||
|
||||
iex> list_ammo_groups_for_container(%AmmoType{id: 123}, %User{id: 123})
|
||||
[%AmmoGroup{}, ...]
|
||||
|
||||
"""
|
||||
@spec list_ammo_groups_for_container(Container.t(), User.t()) :: [AmmoGroup.t()]
|
||||
@spec list_ammo_groups_for_container(Container.t(), User.t(), include_empty :: boolean()) ::
|
||||
[AmmoGroup.t()]
|
||||
def list_ammo_groups_for_container(container, user, include_empty \\ false)
|
||||
|
||||
def list_ammo_groups_for_container(
|
||||
%Container{id: container_id, user_id: user_id},
|
||||
%User{id: user_id},
|
||||
true = _include_empty
|
||||
) do
|
||||
Repo.all(
|
||||
from ag in AmmoGroup,
|
||||
left_join: sg in assoc(ag, :shot_groups),
|
||||
where: ag.container_id == ^container_id,
|
||||
where: ag.user_id == ^user_id,
|
||||
preload: [shot_groups: sg],
|
||||
order_by: ag.id
|
||||
)
|
||||
end
|
||||
|
||||
def list_ammo_groups_for_container(
|
||||
%Container{id: container_id, user_id: user_id},
|
||||
%User{id: user_id},
|
||||
false = _include_empty
|
||||
) do
|
||||
Repo.all(
|
||||
from ag in AmmoGroup,
|
||||
left_join: sg in assoc(ag, :shot_groups),
|
||||
where: ag.container_id == ^container_id,
|
||||
where: ag.user_id == ^user_id,
|
||||
where: not (ag.count == 0),
|
||||
preload: [shot_groups: sg],
|
||||
order_by: ag.id
|
||||
)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns the count of ammo_groups for an ammo type.
|
||||
|
||||
## Examples
|
||||
|
||||
iex> get_ammo_groups_count_for_type(%User{id: 123})
|
||||
3
|
||||
|
||||
"""
|
||||
@spec get_ammo_groups_count_for_type(AmmoType.t(), User.t()) :: [AmmoGroup.t()]
|
||||
@spec get_ammo_groups_count_for_type(AmmoType.t(), User.t(), include_empty :: boolean()) ::
|
||||
[AmmoGroup.t()]
|
||||
def get_ammo_groups_count_for_type(ammo_type, user, include_empty \\ false)
|
||||
|
||||
def get_ammo_groups_count_for_type(
|
||||
%AmmoType{id: ammo_type_id, user_id: user_id},
|
||||
%User{id: user_id},
|
||||
true = _include_empty
|
||||
) do
|
||||
Repo.one!(
|
||||
from ag in AmmoGroup,
|
||||
where: ag.user_id == ^user_id,
|
||||
where: ag.ammo_type_id == ^ammo_type_id,
|
||||
distinct: true,
|
||||
select: count(ag.id)
|
||||
) || 0
|
||||
end
|
||||
|
||||
def get_ammo_groups_count_for_type(
|
||||
%AmmoType{id: ammo_type_id, user_id: user_id},
|
||||
%User{id: user_id},
|
||||
false = _include_empty
|
||||
) do
|
||||
Repo.one!(
|
||||
from ag in AmmoGroup,
|
||||
where: ag.user_id == ^user_id,
|
||||
where: ag.ammo_type_id == ^ammo_type_id,
|
||||
where: not (ag.count == 0),
|
||||
distinct: true,
|
||||
select: count(ag.id)
|
||||
) || 0
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns the list of ammo_groups for a user.
|
||||
|
||||
@ -242,22 +354,27 @@ defmodule Cannery.Ammo do
|
||||
"""
|
||||
@spec list_ammo_groups(User.t()) :: [AmmoGroup.t()]
|
||||
@spec list_ammo_groups(User.t(), include_empty :: boolean()) :: [AmmoGroup.t()]
|
||||
def list_ammo_groups(%User{id: user_id}, include_empty \\ false) do
|
||||
if include_empty do
|
||||
def list_ammo_groups(user, include_empty \\ false)
|
||||
|
||||
def list_ammo_groups(%User{id: user_id}, true = _include_empty) do
|
||||
Repo.all(
|
||||
from ag in AmmoGroup,
|
||||
left_join: sg in assoc(ag, :shot_groups),
|
||||
where: ag.user_id == ^user_id,
|
||||
preload: [shot_groups: sg],
|
||||
order_by: ag.id
|
||||
else
|
||||
)
|
||||
end
|
||||
|
||||
def list_ammo_groups(%User{id: user_id}, false = _include_empty) do
|
||||
Repo.all(
|
||||
from ag in AmmoGroup,
|
||||
left_join: sg in assoc(ag, :shot_groups),
|
||||
where: ag.user_id == ^user_id,
|
||||
where: not (ag.count == 0),
|
||||
preload: [shot_groups: sg],
|
||||
order_by: ag.id
|
||||
end
|
||||
|> Repo.all()
|
||||
)
|
||||
end
|
||||
|
||||
@doc """
|
||||
@ -318,6 +435,17 @@ defmodule Cannery.Ammo do
|
||||
|> Enum.sum()
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns the last entered shot group for an ammo group
|
||||
"""
|
||||
@spec get_last_used_shot_group(AmmoGroup.t()) :: ShotGroup.t() | nil
|
||||
def get_last_used_shot_group(%AmmoGroup{} = ammo_group) do
|
||||
ammo_group
|
||||
|> Repo.preload(:shot_groups)
|
||||
|> Map.fetch!(:shot_groups)
|
||||
|> Enum.max_by(fn %{date: date} -> date end, Date, fn -> nil end)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Calculates the percentage remaining of an ammo group out of 100
|
||||
"""
|
||||
|
@ -212,6 +212,7 @@ defmodule Cannery.Containers do
|
||||
container
|
||||
|> Repo.preload(:ammo_groups)
|
||||
|> Map.fetch!(:ammo_groups)
|
||||
|> Enum.reject(fn %{count: count} -> count == 0 end)
|
||||
|> Enum.count()
|
||||
end
|
||||
|
||||
|
@ -4,11 +4,16 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
|
||||
"""
|
||||
|
||||
use CanneryWeb, :component
|
||||
alias Cannery.Repo
|
||||
alias Cannery.{Ammo, Repo}
|
||||
alias CanneryWeb.Endpoint
|
||||
|
||||
def ammo_group_card(assigns) do
|
||||
assigns = assigns |> assign(:ammo_group, assigns.ammo_group |> Repo.preload(:ammo_type))
|
||||
def ammo_group_card(%{ammo_group: ammo_group} = assigns) do
|
||||
assigns =
|
||||
%{show_container: show_container} = assigns |> assign_new(:show_container, fn -> false end)
|
||||
|
||||
preloads = if show_container, do: [:ammo_type, :container], else: [:ammo_type]
|
||||
ammo_group = ammo_group |> Repo.preload(preloads)
|
||||
assigns = assigns |> assign(:ammo_group, ammo_group)
|
||||
|
||||
~H"""
|
||||
<div
|
||||
@ -17,7 +22,7 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
|
||||
border border-gray-400 rounded-lg shadow-lg hover:shadow-md
|
||||
transition-all duration-300 ease-in-out"
|
||||
>
|
||||
<%= live_redirect to: Routes.ammo_group_show_path(Endpoint, :show, @ammo_group),
|
||||
<%= live_patch to: Routes.ammo_group_show_path(Endpoint, :show, @ammo_group),
|
||||
class: "mb-2 link" do %>
|
||||
<h1 class="title text-xl title-primary-500">
|
||||
<%= @ammo_group.ammo_type.name %>
|
||||
@ -27,7 +32,7 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
|
||||
<div class="flex flex-col justify-center items-center">
|
||||
<span class="rounded-lg title text-lg">
|
||||
<%= gettext("Count:") %>
|
||||
<%= @ammo_group.count %>
|
||||
<%= if @ammo_group.count == 0, do: "Empty", else: @ammo_group.count %>
|
||||
</span>
|
||||
|
||||
<%= if @ammo_group.notes do %>
|
||||
@ -42,6 +47,13 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
|
||||
<%= @ammo_group.inserted_at |> display_datetime() %>
|
||||
</span>
|
||||
|
||||
<%= if @ammo_group.count == 0 do %>
|
||||
<span class="rounded-lg title text-lg">
|
||||
<%= gettext("Used up on:") %>
|
||||
<%= @ammo_group |> Ammo.get_last_used_shot_group() |> Map.get(:date) |> display_date() %>
|
||||
</span>
|
||||
<% end %>
|
||||
|
||||
<%= if @ammo_group.price_paid do %>
|
||||
<span class="rounded-lg title text-lg">
|
||||
<%= gettext("Price paid:") %>
|
||||
@ -50,6 +62,17 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
|
||||
) %>
|
||||
</span>
|
||||
<% end %>
|
||||
|
||||
<%= if @show_container and @ammo_group.container do %>
|
||||
<span class="rounded-lg title text-lg">
|
||||
<%= gettext("Container:") %>
|
||||
|
||||
<%= live_patch to: Routes.container_show_path(Endpoint, :show, @ammo_group.container),
|
||||
class: "link" do %>
|
||||
<%= @ammo_group.container.name %>
|
||||
<% end %>
|
||||
</span>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= if assigns |> Map.has_key?(:inner_block) do %>
|
||||
|
@ -6,7 +6,7 @@ defmodule CanneryWeb.Components.TableComponent do
|
||||
- `:columns`: An array of maps containing the following keys
|
||||
- `:label`: A gettext'd or otherwise user-facing string label for the
|
||||
column. Can be nil
|
||||
- `:key`: A string key used for sorting
|
||||
- `:key`: An atom key used for sorting
|
||||
- `:class`: Extra classes to be applied to the column element, if desired.
|
||||
Optional
|
||||
- `:sortable`: If false, will prevent the user from sorting with it.
|
||||
@ -28,13 +28,13 @@ defmodule CanneryWeb.Components.TableComponent do
|
||||
required(:columns) =>
|
||||
list(%{
|
||||
required(:label) => String.t() | nil,
|
||||
required(:key) => String.t() | nil,
|
||||
required(:key) => atom() | nil,
|
||||
optional(:class) => String.t(),
|
||||
optional(:sortable) => false
|
||||
}),
|
||||
required(:rows) =>
|
||||
list(%{
|
||||
(key :: String.t()) => any() | {custom_sort_value :: String.t(), value :: any()}
|
||||
(key :: atom()) => any() | {custom_sort_value :: String.t(), value :: any()}
|
||||
}),
|
||||
optional(any()) => any()
|
||||
},
|
||||
@ -56,20 +56,19 @@ defmodule CanneryWeb.Components.TableComponent do
|
||||
def handle_event(
|
||||
"sort_by",
|
||||
%{"sort-key" => key},
|
||||
%{assigns: %{rows: rows, last_sort_key: key, sort_mode: sort_mode}} = socket
|
||||
%{assigns: %{rows: rows, last_sort_key: last_sort_key, sort_mode: sort_mode}} = socket
|
||||
) do
|
||||
sort_mode = if sort_mode == :asc, do: :desc, else: :asc
|
||||
rows = rows |> sort_by_custom_sort_value_or_value(key, sort_mode)
|
||||
{:noreply, socket |> assign(sort_mode: sort_mode, rows: rows)}
|
||||
end
|
||||
key = key |> String.to_existing_atom()
|
||||
|
||||
def handle_event(
|
||||
"sort_by",
|
||||
%{"sort-key" => key},
|
||||
%{assigns: %{rows: rows}} = socket
|
||||
) do
|
||||
rows = rows |> sort_by_custom_sort_value_or_value(key, :asc)
|
||||
{:noreply, socket |> assign(last_sort_key: key, sort_mode: :asc, rows: rows)}
|
||||
sort_mode =
|
||||
case {key, sort_mode} do
|
||||
{^last_sort_key, :asc} -> :desc
|
||||
{^last_sort_key, :desc} -> :asc
|
||||
{_new_sort_key, _last_sort_mode} -> :asc
|
||||
end
|
||||
|
||||
rows = rows |> sort_by_custom_sort_value_or_value(key, sort_mode)
|
||||
{:noreply, socket |> assign(last_sort_key: key, sort_mode: sort_mode, rows: rows)}
|
||||
end
|
||||
|
||||
defp sort_by_custom_sort_value_or_value(rows, key, sort_mode) do
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div 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-black">
|
||||
<table class="min-w-full table-auto text-center bg-white">
|
||||
<thead class="border-b border-primary-600">
|
||||
<tr>
|
||||
|
@ -9,7 +9,7 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
|
||||
|
||||
@impl true
|
||||
def mount(_params, _session, socket) do
|
||||
{:ok, socket |> display_ammo_groups()}
|
||||
{:ok, socket |> assign(show_used: false) |> display_ammo_groups()}
|
||||
end
|
||||
|
||||
@impl true
|
||||
@ -72,22 +72,39 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
|
||||
{:noreply, socket |> display_ammo_groups()}
|
||||
end
|
||||
|
||||
defp display_ammo_groups(%{assigns: %{current_user: current_user}} = socket) do
|
||||
ammo_groups = Ammo.list_ammo_groups(current_user) |> Repo.preload([:ammo_type, :container])
|
||||
@impl true
|
||||
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
|
||||
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_groups()}
|
||||
end
|
||||
|
||||
defp display_ammo_groups(
|
||||
%{assigns: %{current_user: current_user, show_used: show_used}} = socket
|
||||
) do
|
||||
ammo_groups =
|
||||
Ammo.list_ammo_groups(current_user, show_used) |> Repo.preload([:ammo_type, :container])
|
||||
|
||||
ammo_types_count = Ammo.get_ammo_types_count!(current_user)
|
||||
containers_count = Containers.get_containers_count!(current_user)
|
||||
|
||||
columns = [
|
||||
%{label: gettext("Ammo type"), key: "ammo_type"},
|
||||
%{label: gettext("Count"), key: "count"},
|
||||
%{label: gettext("Price paid"), key: "price_paid"},
|
||||
%{label: gettext("% left"), key: "remaining"},
|
||||
%{label: gettext("Range"), key: "range"},
|
||||
%{label: gettext("Container"), key: "container"},
|
||||
%{label: gettext("Added on"), key: "added_on"},
|
||||
%{label: nil, key: "actions", sortable: false}
|
||||
%{label: gettext("Ammo type"), key: :ammo_type},
|
||||
%{label: gettext("Count"), key: :count},
|
||||
%{label: gettext("Price paid"), key: :price_paid},
|
||||
%{label: gettext("% left"), key: :remaining},
|
||||
%{label: gettext("Range"), key: :range},
|
||||
%{label: gettext("Container"), key: :container},
|
||||
%{label: gettext("Added on"), key: :added_on}
|
||||
]
|
||||
|
||||
columns =
|
||||
if show_used do
|
||||
columns ++ [%{label: gettext("Used up on"), key: :used_up_on}]
|
||||
else
|
||||
columns
|
||||
end
|
||||
|
||||
columns = columns ++ [%{label: nil, key: :actions, sortable: false}]
|
||||
|
||||
rows =
|
||||
ammo_groups
|
||||
|> Enum.map(fn ammo_group -> ammo_group |> get_row_data_for_ammo_group(columns) end)
|
||||
@ -110,8 +127,8 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
|
||||
|> Enum.into(%{}, fn %{key: key} -> {key, get_value_for_key(key, ammo_group)} end)
|
||||
end
|
||||
|
||||
@spec get_value_for_key(String.t(), AmmoGroup.t()) :: any()
|
||||
defp get_value_for_key("ammo_type", %{ammo_type: ammo_type}) do
|
||||
@spec get_value_for_key(atom(), AmmoGroup.t()) :: any()
|
||||
defp get_value_for_key(:ammo_type, %{ammo_type: ammo_type}) do
|
||||
{ammo_type.name,
|
||||
live_patch(ammo_type.name,
|
||||
to: Routes.ammo_type_show_path(Endpoint, :show, ammo_type),
|
||||
@ -119,12 +136,12 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
|
||||
)}
|
||||
end
|
||||
|
||||
defp get_value_for_key("price_paid", %{price_paid: nil}), do: {"a", nil}
|
||||
defp get_value_for_key(:price_paid, %{price_paid: nil}), do: {"a", nil}
|
||||
|
||||
defp get_value_for_key("price_paid", %{price_paid: price_paid}),
|
||||
defp get_value_for_key(:price_paid, %{price_paid: price_paid}),
|
||||
do: gettext("$%{amount}", amount: price_paid |> :erlang.float_to_binary(decimals: 2))
|
||||
|
||||
defp get_value_for_key("added_on", %{inserted_at: inserted_at}) do
|
||||
defp get_value_for_key(:added_on, %{inserted_at: inserted_at}) do
|
||||
assigns = %{inserted_at: inserted_at}
|
||||
|
||||
{inserted_at,
|
||||
@ -133,15 +150,30 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
|
||||
"""}
|
||||
end
|
||||
|
||||
defp get_value_for_key("range", %{staged: staged} = ammo_group) do
|
||||
defp get_value_for_key(:used_up_on, ammo_group) do
|
||||
last_shot_group_date =
|
||||
case ammo_group |> Ammo.get_last_used_shot_group() do
|
||||
%{date: last_shot_group_date} -> last_shot_group_date
|
||||
_no_shot_groups -> nil
|
||||
end
|
||||
|
||||
assigns = %{last_shot_group_date: last_shot_group_date}
|
||||
|
||||
{last_shot_group_date,
|
||||
~H"""
|
||||
<%= @last_shot_group_date |> display_date() %>
|
||||
"""}
|
||||
end
|
||||
|
||||
defp get_value_for_key(:range, %{staged: staged} = ammo_group) do
|
||||
assigns = %{ammo_group: ammo_group}
|
||||
|
||||
{staged,
|
||||
~H"""
|
||||
<div class="min-w-20 py-2 px-4 h-full flex flex-col justify-center items-center">
|
||||
<div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
|
||||
<button
|
||||
type="button"
|
||||
class="mx-2 my-1 btn btn-primary"
|
||||
class="mx-2 my-1 text-sm btn btn-primary"
|
||||
phx-click="toggle_staged"
|
||||
phx-value-ammo_group_id={ammo_group.id}
|
||||
>
|
||||
@ -150,16 +182,16 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
|
||||
|
||||
<%= live_patch(dgettext("actions", "Record shots"),
|
||||
to: Routes.ammo_group_index_path(Endpoint, :add_shot_group, ammo_group),
|
||||
class: "mx-2 my-1 btn btn-primary"
|
||||
class: "mx-2 my-1 text-sm btn btn-primary"
|
||||
) %>
|
||||
</div>
|
||||
"""}
|
||||
end
|
||||
|
||||
defp get_value_for_key("remaining", ammo_group),
|
||||
defp get_value_for_key(:remaining, ammo_group),
|
||||
do: "#{ammo_group |> Ammo.get_percentage_remaining()}%"
|
||||
|
||||
defp get_value_for_key("actions", ammo_group) do
|
||||
defp get_value_for_key(:actions, ammo_group) do
|
||||
assigns = %{ammo_group: ammo_group}
|
||||
|
||||
~H"""
|
||||
@ -190,22 +222,28 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
|
||||
"""
|
||||
end
|
||||
|
||||
defp get_value_for_key("container", %{container: nil}), do: {nil, nil}
|
||||
defp get_value_for_key(:container, %{container: nil}), do: {nil, nil}
|
||||
|
||||
defp get_value_for_key("container", %{container: %{name: container_name}} = ammo_group) do
|
||||
defp get_value_for_key(:container, %{container: %{name: container_name}} = ammo_group) do
|
||||
assigns = %{ammo_group: ammo_group}
|
||||
|
||||
{container_name,
|
||||
~H"""
|
||||
<div class="min-w-20 py-2 px-4 h-full space-x-4 flex justify-center items-center">
|
||||
<%= live_patch(@ammo_group.container.name,
|
||||
<div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
|
||||
<%= live_patch(
|
||||
@ammo_group.container.name,
|
||||
to: Routes.container_show_path(Endpoint, :show, @ammo_group.container),
|
||||
class: "mx-2 my-1 link"
|
||||
) %>
|
||||
|
||||
<%= live_patch(
|
||||
gettext("Move ammo"),
|
||||
to: Routes.ammo_group_index_path(Endpoint, :move, @ammo_group),
|
||||
class: "btn btn-primary"
|
||||
class: "mx-2 my-1 text-sm btn btn-primary"
|
||||
) %>
|
||||
</div>
|
||||
"""}
|
||||
end
|
||||
|
||||
defp get_value_for_key(key, ammo_group),
|
||||
do: ammo_group |> Map.get(key |> String.to_existing_atom())
|
||||
defp get_value_for_key(key, ammo_group), do: ammo_group |> Map.get(key)
|
||||
end
|
||||
|
@ -46,6 +46,14 @@
|
||||
<% end %>
|
||||
|
||||
<%= unless @ammo_groups |> Enum.empty?() do %>
|
||||
<div class="flex flex-col justify-center items-center">
|
||||
<.toggle_button action="toggle_show_used" value={@show_used}>
|
||||
<span class="title text-lg text-primary-600">
|
||||
<%= gettext("Show used") %>
|
||||
</span>
|
||||
</.toggle_button>
|
||||
</div>
|
||||
|
||||
<.live_component
|
||||
module={CanneryWeb.Components.TableComponent}
|
||||
id="ammo_groups_index_table"
|
||||
|
@ -84,10 +84,10 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
|
||||
ammo_group = ammo_group |> Repo.preload([:container, :ammo_type, :shot_groups], force: true)
|
||||
|
||||
columns = [
|
||||
%{label: gettext("Rounds shot"), key: "count"},
|
||||
%{label: gettext("Notes"), key: "notes"},
|
||||
%{label: gettext("Date"), key: "date"},
|
||||
%{label: nil, key: "actions", sortable: false}
|
||||
%{label: gettext("Rounds shot"), key: :count},
|
||||
%{label: gettext("Notes"), key: :notes},
|
||||
%{label: gettext("Date"), key: :date},
|
||||
%{label: nil, key: :actions, sortable: false}
|
||||
]
|
||||
|
||||
rows =
|
||||
@ -110,10 +110,10 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
|
||||
|> Enum.into(%{}, fn %{key: key} ->
|
||||
value =
|
||||
case key do
|
||||
"date" ->
|
||||
:date ->
|
||||
{date, date |> display_date()}
|
||||
|
||||
"actions" ->
|
||||
:actions ->
|
||||
~H"""
|
||||
<div class="px-4 py-2 space-x-4 flex justify-center items-center">
|
||||
<%= live_patch to: Routes.ammo_group_show_path(Endpoint, :edit_shot_group, @ammo_group, shot_group),
|
||||
@ -136,7 +136,7 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
|
||||
"""
|
||||
|
||||
key ->
|
||||
shot_group |> Map.get(key |> String.to_existing_atom())
|
||||
shot_group |> Map.get(key)
|
||||
end
|
||||
|
||||
{key, value}
|
||||
|
@ -48,29 +48,29 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
|
||||
|
||||
columns =
|
||||
[
|
||||
%{label: gettext("Name"), key: "name", type: :string},
|
||||
%{label: gettext("Bullet type"), key: "bullet_type", type: :string},
|
||||
%{label: gettext("Bullet core"), key: "bullet_core", type: :string},
|
||||
%{label: gettext("Cartridge"), key: "cartridge", type: :string},
|
||||
%{label: gettext("Caliber"), key: "caliber", type: :string},
|
||||
%{label: gettext("Case material"), key: "case_material", type: :string},
|
||||
%{label: gettext("Jacket type"), key: "jacket_type", type: :string},
|
||||
%{label: gettext("Muzzle velocity"), key: "muzzle_velocity", type: :string},
|
||||
%{label: gettext("Powder type"), key: "powder_type", type: :string},
|
||||
%{label: gettext("Name"), key: :name, type: :name},
|
||||
%{label: gettext("Bullet type"), key: :bullet_type, type: :string},
|
||||
%{label: gettext("Bullet core"), key: :bullet_core, type: :string},
|
||||
%{label: gettext("Cartridge"), key: :cartridge, type: :string},
|
||||
%{label: gettext("Caliber"), key: :caliber, type: :string},
|
||||
%{label: gettext("Case material"), key: :case_material, type: :string},
|
||||
%{label: gettext("Jacket type"), key: :jacket_type, type: :string},
|
||||
%{label: gettext("Muzzle velocity"), key: :muzzle_velocity, type: :string},
|
||||
%{label: gettext("Powder type"), key: :powder_type, type: :string},
|
||||
%{
|
||||
label: gettext("Powder grains per charge"),
|
||||
key: "powder_grains_per_charge",
|
||||
key: :powder_grains_per_charge,
|
||||
type: :string
|
||||
},
|
||||
%{label: gettext("Grains"), key: "grains", type: :string},
|
||||
%{label: gettext("Pressure"), key: "pressure", type: :string},
|
||||
%{label: gettext("Primer type"), key: "primer_type", type: :string},
|
||||
%{label: gettext("Firing type"), key: "firing_type", type: :string},
|
||||
%{label: gettext("Tracer"), key: "tracer", type: :boolean},
|
||||
%{label: gettext("Incendiary"), key: "incendiary", type: :boolean},
|
||||
%{label: gettext("Blank"), key: "blank", type: :boolean},
|
||||
%{label: gettext("Corrosive"), key: "corrosive", type: :boolean},
|
||||
%{label: gettext("Manufacturer"), key: "manufacturer", type: :string},
|
||||
%{label: gettext("Grains"), key: :grains, type: :string},
|
||||
%{label: gettext("Pressure"), key: :pressure, type: :string},
|
||||
%{label: gettext("Primer type"), key: :primer_type, type: :string},
|
||||
%{label: gettext("Firing type"), key: :firing_type, type: :string},
|
||||
%{label: gettext("Tracer"), key: :tracer, type: :boolean},
|
||||
%{label: gettext("Incendiary"), key: :incendiary, type: :boolean},
|
||||
%{label: gettext("Blank"), key: :blank, type: :boolean},
|
||||
%{label: gettext("Corrosive"), key: :corrosive, type: :boolean},
|
||||
%{label: gettext("Manufacturer"), key: :manufacturer, type: :string},
|
||||
%{label: gettext("UPC"), key: "upc", type: :string}
|
||||
]
|
||||
|> Enum.filter(fn %{key: key, type: type} ->
|
||||
@ -79,12 +79,13 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
|
||||
|
||||
ammo_types
|
||||
|> Enum.any?(fn ammo_type ->
|
||||
not (ammo_type |> Map.get(key |> String.to_existing_atom()) == default_value)
|
||||
not (ammo_type |> Map.get(key) == default_value)
|
||||
end)
|
||||
end)
|
||||
|> Kernel.++([
|
||||
%{label: gettext("Total # of rounds"), key: "round_count", type: :round_count},
|
||||
%{label: gettext("Average Price paid"), key: "avg_price_paid", type: :avg_price_paid},
|
||||
%{label: gettext("Total # of rounds"), key: :round_count, type: :round_count},
|
||||
%{label: gettext("Total # of ammo"), key: :ammo_count, type: :ammo_count},
|
||||
%{label: gettext("Average Price paid"), key: :avg_price_paid, type: :avg_price_paid},
|
||||
%{label: nil, key: "actions", type: :actions, sortable: false}
|
||||
])
|
||||
|
||||
@ -103,11 +104,14 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
|
||||
end
|
||||
|
||||
defp get_ammo_type_value(:boolean, key, ammo_type, _current_user),
|
||||
do: ammo_type |> Map.get(key |> String.to_existing_atom()) |> humanize()
|
||||
do: ammo_type |> Map.get(key) |> humanize()
|
||||
|
||||
defp get_ammo_type_value(:round_count, _key, ammo_type, current_user),
|
||||
do: ammo_type |> Ammo.get_round_count_for_ammo_type(current_user)
|
||||
|
||||
defp get_ammo_type_value(:ammo_count, _key, ammo_type, current_user),
|
||||
do: ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user)
|
||||
|
||||
defp get_ammo_type_value(:avg_price_paid, _key, ammo_type, current_user) do
|
||||
case ammo_type |> Ammo.get_average_cost_for_ammo_type!(current_user) do
|
||||
nil -> gettext("No cost information")
|
||||
@ -115,6 +119,18 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
|
||||
end
|
||||
end
|
||||
|
||||
defp get_ammo_type_value(:name, _key, ammo_type, _current_user) do
|
||||
assigns = %{ammo_type: ammo_type}
|
||||
|
||||
~H"""
|
||||
<%= live_redirect to: Routes.ammo_type_show_path(Endpoint, :show, ammo_type),
|
||||
class: "link",
|
||||
data: [qa: "view-name-#{ammo_type.id}"] do %>
|
||||
<%= ammo_type.name %>
|
||||
<% end %>
|
||||
"""
|
||||
end
|
||||
|
||||
defp get_ammo_type_value(:actions, _key, ammo_type, _current_user) do
|
||||
assigns = %{ammo_type: ammo_type}
|
||||
|
||||
@ -148,6 +164,5 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
|
||||
|
||||
defp get_ammo_type_value(nil, _key, _ammo_type, _current_user), do: nil
|
||||
|
||||
defp get_ammo_type_value(_other, key, ammo_type, _current_user),
|
||||
do: ammo_type |> Map.get(key |> String.to_existing_atom())
|
||||
defp get_ammo_type_value(_other, key, ammo_type, _current_user), do: ammo_type |> Map.get(key)
|
||||
end
|
||||
|
@ -9,22 +9,12 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
|
||||
alias CanneryWeb.Endpoint
|
||||
|
||||
@impl true
|
||||
def mount(_params, _session, socket), do: {:ok, socket}
|
||||
def mount(_params, _session, socket), do: {:ok, socket |> assign(show_used: false)}
|
||||
|
||||
@impl true
|
||||
def handle_params(%{"id" => id}, _params, %{assigns: %{current_user: current_user}} = socket) do
|
||||
ammo_type = Ammo.get_ammo_type!(id, current_user)
|
||||
|
||||
socket =
|
||||
socket
|
||||
|> assign(
|
||||
page_title: page_title(socket.assigns.live_action),
|
||||
ammo_type: ammo_type,
|
||||
ammo_groups: ammo_type |> Ammo.list_ammo_groups_for_type(current_user),
|
||||
avg_cost_per_round: ammo_type |> Ammo.get_average_cost_for_ammo_type!(current_user)
|
||||
)
|
||||
|
||||
{:noreply, socket}
|
||||
{:noreply, socket |> display_ammo_type(ammo_type)}
|
||||
end
|
||||
|
||||
@impl true
|
||||
@ -41,6 +31,34 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
|
||||
{:noreply, socket |> put_flash(:info, prompt) |> push_redirect(to: redirect_to)}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
|
||||
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_type()}
|
||||
end
|
||||
|
||||
defp display_ammo_type(
|
||||
%{
|
||||
assigns: %{
|
||||
live_action: live_action,
|
||||
current_user: current_user,
|
||||
show_used: show_used
|
||||
}
|
||||
} = socket,
|
||||
ammo_type
|
||||
) do
|
||||
socket
|
||||
|> assign(
|
||||
page_title: page_title(live_action),
|
||||
ammo_type: ammo_type,
|
||||
ammo_groups: ammo_type |> Ammo.list_ammo_groups_for_type(current_user, show_used),
|
||||
avg_cost_per_round: ammo_type |> Ammo.get_average_cost_for_ammo_type!(current_user)
|
||||
)
|
||||
end
|
||||
|
||||
defp display_ammo_type(%{assigns: %{ammo_type: ammo_type}} = socket) do
|
||||
socket |> display_ammo_type(ammo_type)
|
||||
end
|
||||
|
||||
defp page_title(:show), do: gettext("Show Ammo type")
|
||||
defp page_title(:edit), do: gettext("Edit Ammo type")
|
||||
end
|
||||
|
@ -1,5 +1,4 @@
|
||||
<div class="mx-auto px-4 sm:px-8 space-y-4 max-w-3xl
|
||||
flex flex-col justify-center items-center">
|
||||
<div class="space-y-4 flex flex-col justify-center items-center">
|
||||
<h1 class="title text-2xl title-primary-500">
|
||||
<%= @ammo_type.name %>
|
||||
</h1>
|
||||
@ -114,6 +113,14 @@
|
||||
|
||||
<hr class="hr" />
|
||||
|
||||
<div class="flex flex-col justify-center items-center">
|
||||
<.toggle_button action="toggle_show_used" value={@show_used}>
|
||||
<span class="title text-lg text-primary-600">
|
||||
<%= gettext("Show used") %>
|
||||
</span>
|
||||
</.toggle_button>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= if @ammo_groups |> Enum.empty?() do %>
|
||||
<h2 class="mx-8 my-4 title text-lg text-primary-600">
|
||||
@ -123,7 +130,7 @@
|
||||
<% else %>
|
||||
<div class="flex flex-wrap justify-center items-center">
|
||||
<%= for ammo_group <- @ammo_groups do %>
|
||||
<.ammo_group_card ammo_group={ammo_group} />
|
||||
<.ammo_group_card ammo_group={ammo_group} show_container={true} />
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
@ -5,13 +5,13 @@ defmodule CanneryWeb.ContainerLive.Show do
|
||||
|
||||
use CanneryWeb, :live_view
|
||||
import CanneryWeb.Components.{AmmoGroupCard, TagCard}
|
||||
alias Cannery.{Accounts.User, Containers, Containers.Container, Repo, Tags}
|
||||
alias Cannery.{Accounts.User, Ammo, Containers, Containers.Container, Repo, Tags}
|
||||
alias CanneryWeb.Endpoint
|
||||
alias Ecto.Changeset
|
||||
alias Phoenix.LiveView.Socket
|
||||
|
||||
@impl true
|
||||
def mount(_params, _session, socket), do: {:ok, socket}
|
||||
def mount(_params, _session, socket), do: {:ok, socket |> assign(show_used: false)}
|
||||
|
||||
@impl true
|
||||
def handle_params(
|
||||
@ -39,7 +39,7 @@ defmodule CanneryWeb.ContainerLive.Show do
|
||||
container_name: container.name
|
||||
)
|
||||
|
||||
socket |> put_flash(:info, prompt) |> render_container(container.id, current_user)
|
||||
socket |> put_flash(:info, prompt) |> render_container()
|
||||
|
||||
{:error, error_string} ->
|
||||
socket |> put_flash(:error, error_string)
|
||||
@ -82,12 +82,23 @@ defmodule CanneryWeb.ContainerLive.Show do
|
||||
{:noreply, socket}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
|
||||
{:noreply, socket |> assign(:show_used, !show_used) |> render_container()}
|
||||
end
|
||||
|
||||
@spec render_container(Socket.t(), Container.id(), User.t()) :: Socket.t()
|
||||
defp render_container(%{assigns: %{live_action: live_action}} = socket, id, current_user) do
|
||||
defp render_container(
|
||||
%{assigns: %{live_action: live_action, show_used: show_used}} = socket,
|
||||
id,
|
||||
current_user
|
||||
) do
|
||||
%{name: container_name} =
|
||||
container =
|
||||
Containers.get_container!(id, current_user)
|
||||
|> Repo.preload([:ammo_groups, :tags], force: true)
|
||||
|> Repo.preload([:tags], force: true)
|
||||
|
||||
ammo_groups = Ammo.list_ammo_groups_for_container(container, current_user, show_used)
|
||||
|
||||
page_title =
|
||||
case live_action do
|
||||
@ -96,6 +107,13 @@ defmodule CanneryWeb.ContainerLive.Show do
|
||||
:edit_tags -> gettext("Edit %{name} tags", name: container_name)
|
||||
end
|
||||
|
||||
socket |> assign(container: container, page_title: page_title)
|
||||
socket |> assign(container: container, ammo_groups: ammo_groups, page_title: page_title)
|
||||
end
|
||||
|
||||
@spec render_container(Socket.t()) :: Socket.t()
|
||||
defp render_container(
|
||||
%{assigns: %{container: %{id: container_id}, current_user: current_user}} = socket
|
||||
) do
|
||||
socket |> render_container(container_id, current_user)
|
||||
end
|
||||
end
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div class="mx-auto space-y-4 max-w-3xl flex flex-col justify-center items-center">
|
||||
<div class="space-y-4 flex flex-col justify-center items-center">
|
||||
<h1 class="title text-2xl title-primary-500">
|
||||
<%= @container.name %>
|
||||
</h1>
|
||||
@ -22,10 +22,10 @@
|
||||
</span>
|
||||
<% end %>
|
||||
|
||||
<%= unless @container.ammo_groups |> Enum.empty?() do %>
|
||||
<%= unless @ammo_groups |> Enum.empty?() do %>
|
||||
<span class="rounded-lg title text-lg">
|
||||
<%= gettext("Packs:") %>
|
||||
<%= @container |> Containers.get_container_ammo_group_count!() %>
|
||||
<%= Enum.count(@ammo_groups) %>
|
||||
</span>
|
||||
|
||||
<span class="rounded-lg title text-lg">
|
||||
@ -84,14 +84,22 @@
|
||||
|
||||
<hr class="mb-4 hr" />
|
||||
|
||||
<div class="flex flex-col justify-center items-center">
|
||||
<.toggle_button action="toggle_show_used" value={@show_used}>
|
||||
<span class="title text-lg text-primary-600">
|
||||
<%= gettext("Show used") %>
|
||||
</span>
|
||||
</.toggle_button>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= if @container.ammo_groups |> Enum.empty?() do %>
|
||||
<%= if @ammo_groups |> Enum.empty?() do %>
|
||||
<h2 class="mx-8 my-4 title text-lg text-primary-600">
|
||||
<%= gettext("No ammo in this container") %>
|
||||
</h2>
|
||||
<% else %>
|
||||
<div class="flex flex-wrap justify-center items-center">
|
||||
<%= for ammo_group <- @container.ammo_groups do %>
|
||||
<%= for ammo_group <- @ammo_groups do %>
|
||||
<.ammo_group_card ammo_group={ammo_group} />
|
||||
<% end %>
|
||||
</div>
|
||||
|
@ -134,7 +134,7 @@ defmodule CanneryWeb.HomeLive do
|
||||
to: "https://gitea.bubbletea.dev/shibao/cannery/src/branch/stable/CHANGELOG.md",
|
||||
target: "_blank",
|
||||
rel: "noopener noreferrer" do %>
|
||||
<p>0.5.4</p>
|
||||
<p>0.5.5</p>
|
||||
<i class="fas fa-md fa-info-circle"></i>
|
||||
<% end %>
|
||||
</li>
|
||||
|
@ -77,11 +77,11 @@ defmodule CanneryWeb.RangeLive.Index do
|
||||
ammo_groups = Ammo.list_staged_ammo_groups(current_user)
|
||||
|
||||
columns = [
|
||||
%{label: gettext("Ammo"), key: "name"},
|
||||
%{label: gettext("Rounds shot"), key: "count"},
|
||||
%{label: gettext("Notes"), key: "notes"},
|
||||
%{label: gettext("Date"), key: "date"},
|
||||
%{label: nil, key: "actions", sortable: false}
|
||||
%{label: gettext("Ammo"), key: :name},
|
||||
%{label: gettext("Rounds shot"), key: :count},
|
||||
%{label: gettext("Notes"), key: :notes},
|
||||
%{label: gettext("Date"), key: :date},
|
||||
%{label: nil, key: :actions, sortable: false}
|
||||
]
|
||||
|
||||
rows =
|
||||
@ -101,17 +101,17 @@ defmodule CanneryWeb.RangeLive.Index do
|
||||
|> Enum.into(%{}, fn %{key: key} ->
|
||||
value =
|
||||
case key do
|
||||
"name" ->
|
||||
:name ->
|
||||
{shot_group.ammo_group.ammo_type.name,
|
||||
live_patch(shot_group.ammo_group.ammo_type.name,
|
||||
to: Routes.ammo_group_show_path(Endpoint, :show, shot_group.ammo_group),
|
||||
class: "link"
|
||||
)}
|
||||
|
||||
"date" ->
|
||||
:date ->
|
||||
date |> display_date()
|
||||
|
||||
"actions" ->
|
||||
:actions ->
|
||||
~H"""
|
||||
<div class="px-4 py-2 space-x-4 flex justify-center items-center">
|
||||
<%= live_patch to: Routes.range_index_path(Endpoint, :edit, shot_group),
|
||||
@ -134,7 +134,7 @@ defmodule CanneryWeb.RangeLive.Index do
|
||||
"""
|
||||
|
||||
key ->
|
||||
shot_group |> Map.get(key |> String.to_existing_atom())
|
||||
shot_group |> Map.get(key)
|
||||
end
|
||||
|
||||
{key, value}
|
||||
|
@ -22,7 +22,7 @@
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="mx-4 sm:mx-8 md:mx-16">
|
||||
<div class="mx-4 sm:mx-8 md:mx-16 flex flex-col justify-center items-stretch">
|
||||
<%= @inner_content %>
|
||||
</div>
|
||||
</main>
|
||||
|
@ -5,6 +5,11 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%= csrf_meta_tag() %>
|
||||
<link
|
||||
rel="shortcut icon"
|
||||
type="image/jpg"
|
||||
href={Routes.static_path(@conn, "/images/cannery.svg")}
|
||||
/>
|
||||
<%= if(assigns |> Map.has_key?(:page_title), do: @page_title, else: "Cannery")
|
||||
|> live_title_tag(suffix: " | Cannery") %>
|
||||
<link phx-track-static rel="stylesheet" href={Routes.static_path(@conn, "/css/app.css")} />
|
||||
|
@ -5,6 +5,7 @@ defmodule CanneryWeb.ViewHelpers do
|
||||
:view`
|
||||
"""
|
||||
|
||||
import Phoenix.LiveView
|
||||
import Phoenix.LiveView.Helpers
|
||||
|
||||
@id_length 16
|
||||
@ -65,4 +66,43 @@ defmodule CanneryWeb.ViewHelpers do
|
||||
if(Application.get_env(:cannery, CanneryWeb.ViewHelpers)[:shibao_mode], do: "q_q", else: "😔")
|
||||
|
||||
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
|
||||
type="checkbox"
|
||||
value={@value}
|
||||
checked={@value}
|
||||
id={@id}
|
||||
class="sr-only peer"
|
||||
{
|
||||
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
|
||||
end
|
||||
|
2
mix.exs
2
mix.exs
@ -4,7 +4,7 @@ defmodule Cannery.MixProject do
|
||||
def project do
|
||||
[
|
||||
app: :cannery,
|
||||
version: "0.5.4",
|
||||
version: "0.5.5",
|
||||
elixir: "1.13.4",
|
||||
elixirc_paths: elixirc_paths(Mix.env()),
|
||||
compilers: [:gettext] ++ Mix.compilers(),
|
||||
|
@ -156,7 +156,7 @@ msgid "Why not get some ready to shoot?"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:151
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:183
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
|
||||
#: lib/cannery_web/live/range_live/index.html.heex:36
|
||||
msgid "Record shots"
|
||||
|
@ -169,7 +169,7 @@ msgid "Why not get some ready to shoot?"
|
||||
msgstr "Warum nicht einige für den Schießstand auswählen?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:151
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:183
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
|
||||
#: lib/cannery_web/live/range_live/index.html.heex:36
|
||||
msgid "Record shots"
|
||||
|
@ -54,13 +54,13 @@ msgstr "Munition"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:81
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:90
|
||||
msgid "Ammo type"
|
||||
msgstr "Munitionsarten"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:87
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:88
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:99
|
||||
msgid "Average Price paid"
|
||||
msgstr "Durchschnittlicher Kaufpreis"
|
||||
|
||||
@ -72,7 +72,7 @@ msgstr "Hintergrundfarbe"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:71
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
|
||||
msgid "Blank"
|
||||
msgstr "Knallpatrone"
|
||||
|
||||
@ -84,42 +84,42 @@ msgstr "Messing"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:53
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
|
||||
msgid "Bullet core"
|
||||
msgstr "Projektilkern"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:37
|
||||
msgid "Bullet type"
|
||||
msgstr "Patronenart"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:55
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
|
||||
msgid "Caliber"
|
||||
msgstr "Kaliber"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:54
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
|
||||
msgid "Cartridge"
|
||||
msgstr "Patrone"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:56
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
|
||||
msgid "Case material"
|
||||
msgstr "Gehäusematerial"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: 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/index.ex:86
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:95
|
||||
msgid "Container"
|
||||
msgstr "Behälter"
|
||||
|
||||
@ -133,18 +133,18 @@ msgstr "Behälter"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:72
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
|
||||
msgid "Corrosive"
|
||||
msgstr "Korrosiv"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:82
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:91
|
||||
msgid "Count"
|
||||
msgstr "Anzahl"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:29
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:34
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
|
||||
msgid "Count:"
|
||||
msgstr "Anzahl:"
|
||||
@ -178,7 +178,7 @@ msgstr "Munitionsgruppe bearbeiten"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:23
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:45
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:63
|
||||
msgid "Edit Ammo type"
|
||||
msgstr "Munitionstyp bearbeiten"
|
||||
|
||||
@ -210,14 +210,14 @@ msgstr "VM"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:65
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
|
||||
msgid "Grains"
|
||||
msgstr "Körner"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:70
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
|
||||
msgid "Incendiary"
|
||||
msgstr "Brandmunition"
|
||||
|
||||
@ -268,7 +268,7 @@ msgstr "Magazin, Ladestreifen, Munitionskiste usw."
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:73
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
|
||||
msgid "Manufacturer"
|
||||
msgstr "Hersteller"
|
||||
|
||||
@ -322,7 +322,7 @@ msgid "No Ammo Types"
|
||||
msgstr "Keine Munitionsarten"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:127
|
||||
msgid "No ammo for this type"
|
||||
msgstr "Keine Munition dieser Art"
|
||||
|
||||
@ -352,7 +352,7 @@ msgid "Notes"
|
||||
msgstr "Bemerkungen"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:35
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:40
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
|
||||
msgid "Notes:"
|
||||
msgstr "Bemerkungen:"
|
||||
@ -365,25 +365,25 @@ msgstr "Auf dem Bücherregal"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:66
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
|
||||
msgid "Pressure"
|
||||
msgstr "Druck"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:83
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:92
|
||||
msgid "Price paid"
|
||||
msgstr "Kaufpreis"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:47
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:59
|
||||
msgid "Price paid:"
|
||||
msgstr "Kaufpreis:"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:67
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
|
||||
msgid "Primer type"
|
||||
msgstr "Zündertyp"
|
||||
|
||||
@ -416,7 +416,7 @@ msgid "Settings"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:62
|
||||
msgid "Show Ammo type"
|
||||
msgstr "Zeige Munitionsarten"
|
||||
|
||||
@ -460,7 +460,7 @@ msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:69
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
|
||||
msgid "Tracer"
|
||||
msgstr "Leuchtspur"
|
||||
|
||||
@ -508,7 +508,7 @@ msgstr "Keine Tags für diesen Behälter"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/topbar.ex:68
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:85
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:94
|
||||
msgid "Range"
|
||||
msgstr "Schießplatz"
|
||||
|
||||
@ -601,6 +601,7 @@ msgstr "Munitionsgruppe verschieben"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/move_ammo_group_component.ex:80
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:240
|
||||
msgid "Move ammo"
|
||||
msgstr "Munition verschieben"
|
||||
|
||||
@ -615,12 +616,12 @@ msgid "Shot log"
|
||||
msgstr "Schießkladde"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:48
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:125
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:60
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:142
|
||||
#: 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:114
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:118
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:103
|
||||
msgid "$%{amount}"
|
||||
msgstr "$%{amount}"
|
||||
|
||||
@ -632,35 +633,35 @@ msgstr "Bimetall"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:57
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
|
||||
msgid "Jacket type"
|
||||
msgstr "Patronenhülse"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:58
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
|
||||
msgid "Muzzle velocity"
|
||||
msgstr "Mündungsgeschwindigkeit"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:61
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
|
||||
msgid "Powder grains per charge"
|
||||
msgstr "Pulverkörner pro Ladung"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:59
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
|
||||
msgid "Powder type"
|
||||
msgstr "Pulverart"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:74
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
|
||||
msgid "UPC"
|
||||
msgstr "UPC"
|
||||
|
||||
@ -681,19 +682,19 @@ msgid "New password"
|
||||
msgstr "Neues Passwort"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:148
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:180
|
||||
msgid "Stage"
|
||||
msgstr "Markiert"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:148
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:180
|
||||
msgid "Unstage"
|
||||
msgstr "Demarkiert"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:68
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
|
||||
msgid "Firing type"
|
||||
msgstr "Patronenhülsenform"
|
||||
|
||||
@ -709,13 +710,13 @@ msgstr "Lädt..."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:27
|
||||
#: lib/cannery_web/live/container_live/show.ex:95
|
||||
#: lib/cannery_web/live/container_live/show.ex:106
|
||||
msgid "Edit %{name}"
|
||||
msgstr "%{name} bearbeiten"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:46
|
||||
#: lib/cannery_web/live/container_live/show.ex:96
|
||||
#: lib/cannery_web/live/container_live/show.ex:107
|
||||
msgid "Edit %{name} tags"
|
||||
msgstr "Editiere %{name} Tags"
|
||||
|
||||
@ -726,18 +727,18 @@ msgid "Rounds:"
|
||||
msgstr "Patronen:"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/show.ex:94
|
||||
#: lib/cannery_web/live/container_live/show.ex:105
|
||||
msgid "Show %{name}"
|
||||
msgstr "Zeige %{name}"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:113
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:117
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:109
|
||||
msgid "No cost information"
|
||||
msgstr "Keine Preisinformationen"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:84
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:93
|
||||
msgid "% left"
|
||||
msgstr "% verbleibend"
|
||||
|
||||
@ -767,7 +768,7 @@ msgid "Rounds used"
|
||||
msgstr "Patronen verbraucht"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:74
|
||||
msgid "Current # of rounds:"
|
||||
msgstr "Derzeitige # an Patronen:"
|
||||
|
||||
@ -777,7 +778,7 @@ msgid "Total # of rounds"
|
||||
msgstr "Summe aller Patronen"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:82
|
||||
msgid "Total rounds shot:"
|
||||
msgstr "Summe abgegebener Schüsse:"
|
||||
|
||||
@ -823,14 +824,14 @@ msgid "Ammo types"
|
||||
msgstr "Munitionsart"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:87
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:96
|
||||
msgid "Added on"
|
||||
msgstr "Hinzugefügt am"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:41
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:46
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:90
|
||||
msgid "Added on:"
|
||||
msgstr "Hinzugefügt am:"
|
||||
|
||||
@ -899,7 +900,7 @@ msgid "Move Ammo"
|
||||
msgstr "Munition verschieben"
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:90
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:98
|
||||
msgid "No ammo in this container"
|
||||
msgstr "Keine Munitionsgruppe in diesem Behälter"
|
||||
|
||||
@ -934,3 +935,30 @@ msgstr ""
|
||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
|
||||
msgid "Leave \"Uses left\" blank to make invite unlimited"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:87
|
||||
msgid "Total # of ammo"
|
||||
msgstr "Summe aller Patronen"
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:68
|
||||
msgid "Container:"
|
||||
msgstr "Behälter"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:90
|
||||
msgid "Show used"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:101
|
||||
msgid "Used up on"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:52
|
||||
msgid "Used up on:"
|
||||
msgstr ""
|
||||
|
@ -188,7 +188,7 @@ msgstr ""
|
||||
"%{multiplier}"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery/ammo.ex:407
|
||||
#: lib/cannery/ammo.ex:535
|
||||
msgid "Invalid multiplier"
|
||||
msgstr ""
|
||||
|
||||
|
@ -33,7 +33,7 @@ msgstr "%{name} erfolgreich erstellt"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:41
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:38
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:28
|
||||
#: 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
|
||||
@ -100,7 +100,7 @@ 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?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:184
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:216
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
|
||||
msgid "Are you sure you want to delete this ammo?"
|
||||
msgstr "Sind Sie sicher, dass sie diese Munition löschen möchten?"
|
||||
@ -293,7 +293,7 @@ msgstr[0] "Munitionsgruppe erfolgreich aktualisiert"
|
||||
msgstr[1] "Munitionsgruppe erfolgreich aktualisiert"
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:140
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:156
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:26
|
||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
|
||||
msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"
|
||||
|
@ -39,13 +39,13 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:81
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:90
|
||||
msgid "Ammo type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:87
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:88
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:99
|
||||
msgid "Average Price paid"
|
||||
msgstr ""
|
||||
|
||||
@ -57,7 +57,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:71
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
|
||||
msgid "Blank"
|
||||
msgstr ""
|
||||
|
||||
@ -69,42 +69,42 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:53
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
|
||||
msgid "Bullet core"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:37
|
||||
msgid "Bullet type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:55
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
|
||||
msgid "Caliber"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:54
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
|
||||
msgid "Cartridge"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:56
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
|
||||
msgid "Case material"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: 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/index.ex:86
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:95
|
||||
msgid "Container"
|
||||
msgstr ""
|
||||
|
||||
@ -118,18 +118,18 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:72
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
|
||||
msgid "Corrosive"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:82
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:91
|
||||
msgid "Count"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:29
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:34
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
|
||||
msgid "Count:"
|
||||
msgstr ""
|
||||
@ -163,7 +163,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:23
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:45
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:63
|
||||
msgid "Edit Ammo type"
|
||||
msgstr ""
|
||||
|
||||
@ -195,14 +195,14 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:65
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
|
||||
msgid "Grains"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:70
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
|
||||
msgid "Incendiary"
|
||||
msgstr ""
|
||||
|
||||
@ -253,7 +253,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:73
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
|
||||
msgid "Manufacturer"
|
||||
msgstr ""
|
||||
|
||||
@ -307,7 +307,7 @@ msgid "No Ammo Types"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:127
|
||||
msgid "No ammo for this type"
|
||||
msgstr ""
|
||||
|
||||
@ -337,7 +337,7 @@ msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:35
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:40
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
|
||||
msgid "Notes:"
|
||||
msgstr ""
|
||||
@ -350,25 +350,25 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:66
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:83
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:92
|
||||
msgid "Price paid"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:47
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:59
|
||||
msgid "Price paid:"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:67
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
|
||||
msgid "Primer type"
|
||||
msgstr ""
|
||||
|
||||
@ -399,7 +399,7 @@ msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:62
|
||||
msgid "Show Ammo type"
|
||||
msgstr ""
|
||||
|
||||
@ -443,7 +443,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:69
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
|
||||
msgid "Tracer"
|
||||
msgstr ""
|
||||
|
||||
@ -491,7 +491,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/topbar.ex:68
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:85
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:94
|
||||
msgid "Range"
|
||||
msgstr ""
|
||||
|
||||
@ -584,6 +584,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/move_ammo_group_component.ex:80
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:240
|
||||
msgid "Move ammo"
|
||||
msgstr ""
|
||||
|
||||
@ -598,12 +599,12 @@ msgid "Shot log"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:48
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:125
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:60
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:142
|
||||
#: 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:114
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:118
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:103
|
||||
msgid "$%{amount}"
|
||||
msgstr ""
|
||||
|
||||
@ -615,35 +616,35 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:57
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
|
||||
msgid "Jacket type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:58
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
|
||||
msgid "Muzzle velocity"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:61
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
|
||||
msgid "Powder grains per charge"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:59
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
|
||||
msgid "Powder type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:74
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
|
||||
msgid "UPC"
|
||||
msgstr ""
|
||||
|
||||
@ -664,19 +665,19 @@ msgid "New password"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:148
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:180
|
||||
msgid "Stage"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:148
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:180
|
||||
msgid "Unstage"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:68
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
|
||||
msgid "Firing type"
|
||||
msgstr ""
|
||||
|
||||
@ -692,13 +693,13 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:27
|
||||
#: lib/cannery_web/live/container_live/show.ex:95
|
||||
#: lib/cannery_web/live/container_live/show.ex:106
|
||||
msgid "Edit %{name}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:46
|
||||
#: lib/cannery_web/live/container_live/show.ex:96
|
||||
#: lib/cannery_web/live/container_live/show.ex:107
|
||||
msgid "Edit %{name} tags"
|
||||
msgstr ""
|
||||
|
||||
@ -709,18 +710,18 @@ msgid "Rounds:"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/show.ex:94
|
||||
#: lib/cannery_web/live/container_live/show.ex:105
|
||||
msgid "Show %{name}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:113
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:117
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:109
|
||||
msgid "No cost information"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:84
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:93
|
||||
msgid "% left"
|
||||
msgstr ""
|
||||
|
||||
@ -750,7 +751,7 @@ msgid "Rounds used"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:74
|
||||
msgid "Current # of rounds:"
|
||||
msgstr ""
|
||||
|
||||
@ -760,7 +761,7 @@ msgid "Total # of rounds"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:82
|
||||
msgid "Total rounds shot:"
|
||||
msgstr ""
|
||||
|
||||
@ -806,14 +807,14 @@ msgid "Ammo types"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:87
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:96
|
||||
msgid "Added on"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:41
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:46
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:90
|
||||
msgid "Added on:"
|
||||
msgstr ""
|
||||
|
||||
@ -882,7 +883,7 @@ msgid "Move Ammo"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:90
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:98
|
||||
msgid "No ammo in this container"
|
||||
msgstr ""
|
||||
|
||||
@ -917,3 +918,30 @@ msgstr ""
|
||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
|
||||
msgid "Leave \"Uses left\" blank to make invite unlimited"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:87
|
||||
msgid "Total # of ammo"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:68
|
||||
msgid "Container:"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:90
|
||||
msgid "Show used"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:101
|
||||
msgid "Used up on"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:52
|
||||
msgid "Used up on:"
|
||||
msgstr ""
|
||||
|
@ -157,7 +157,7 @@ msgid "Why not get some ready to shoot?"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:151
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:183
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
|
||||
#: lib/cannery_web/live/range_live/index.html.heex:36
|
||||
msgid "Record shots"
|
||||
|
@ -40,13 +40,13 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:81
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:90
|
||||
msgid "Ammo type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:87
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:88
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:99
|
||||
msgid "Average Price paid"
|
||||
msgstr ""
|
||||
|
||||
@ -58,7 +58,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:71
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
|
||||
msgid "Blank"
|
||||
msgstr ""
|
||||
|
||||
@ -70,42 +70,42 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:53
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
|
||||
msgid "Bullet core"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:37
|
||||
msgid "Bullet type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:55
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
|
||||
msgid "Caliber"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:54
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
|
||||
msgid "Cartridge"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:56
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
|
||||
msgid "Case material"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: 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/index.ex:86
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:95
|
||||
msgid "Container"
|
||||
msgstr ""
|
||||
|
||||
@ -119,18 +119,18 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:72
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
|
||||
msgid "Corrosive"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:82
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:91
|
||||
msgid "Count"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:29
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:34
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
|
||||
msgid "Count:"
|
||||
msgstr ""
|
||||
@ -164,7 +164,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:23
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:45
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:63
|
||||
msgid "Edit Ammo type"
|
||||
msgstr ""
|
||||
|
||||
@ -196,14 +196,14 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:65
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
|
||||
msgid "Grains"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:70
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
|
||||
msgid "Incendiary"
|
||||
msgstr ""
|
||||
|
||||
@ -254,7 +254,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:73
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
|
||||
msgid "Manufacturer"
|
||||
msgstr ""
|
||||
|
||||
@ -308,7 +308,7 @@ msgid "No Ammo Types"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:127
|
||||
msgid "No ammo for this type"
|
||||
msgstr ""
|
||||
|
||||
@ -338,7 +338,7 @@ msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:35
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:40
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
|
||||
msgid "Notes:"
|
||||
msgstr ""
|
||||
@ -351,25 +351,25 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:66
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:83
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:92
|
||||
msgid "Price paid"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:47
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:59
|
||||
msgid "Price paid:"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:67
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
|
||||
msgid "Primer type"
|
||||
msgstr ""
|
||||
|
||||
@ -400,7 +400,7 @@ msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:62
|
||||
msgid "Show Ammo type"
|
||||
msgstr ""
|
||||
|
||||
@ -444,7 +444,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:69
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
|
||||
msgid "Tracer"
|
||||
msgstr ""
|
||||
|
||||
@ -492,7 +492,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/topbar.ex:68
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:85
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:94
|
||||
msgid "Range"
|
||||
msgstr ""
|
||||
|
||||
@ -585,6 +585,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/move_ammo_group_component.ex:80
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:240
|
||||
msgid "Move ammo"
|
||||
msgstr ""
|
||||
|
||||
@ -599,12 +600,12 @@ msgid "Shot log"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:48
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:125
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:60
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:142
|
||||
#: 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:114
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:118
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:103
|
||||
msgid "$%{amount}"
|
||||
msgstr ""
|
||||
|
||||
@ -616,35 +617,35 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:57
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
|
||||
msgid "Jacket type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:58
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
|
||||
msgid "Muzzle velocity"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:61
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
|
||||
msgid "Powder grains per charge"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:59
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
|
||||
msgid "Powder type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:74
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
|
||||
msgid "UPC"
|
||||
msgstr ""
|
||||
|
||||
@ -665,19 +666,19 @@ msgid "New password"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:148
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:180
|
||||
msgid "Stage"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:148
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:180
|
||||
msgid "Unstage"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:68
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
|
||||
msgid "Firing type"
|
||||
msgstr ""
|
||||
|
||||
@ -693,13 +694,13 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:27
|
||||
#: lib/cannery_web/live/container_live/show.ex:95
|
||||
#: lib/cannery_web/live/container_live/show.ex:106
|
||||
msgid "Edit %{name}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:46
|
||||
#: lib/cannery_web/live/container_live/show.ex:96
|
||||
#: lib/cannery_web/live/container_live/show.ex:107
|
||||
msgid "Edit %{name} tags"
|
||||
msgstr ""
|
||||
|
||||
@ -710,18 +711,18 @@ msgid "Rounds:"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/show.ex:94
|
||||
#: lib/cannery_web/live/container_live/show.ex:105
|
||||
msgid "Show %{name}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:113
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:117
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:109
|
||||
msgid "No cost information"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:84
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:93
|
||||
msgid "% left"
|
||||
msgstr ""
|
||||
|
||||
@ -751,7 +752,7 @@ msgid "Rounds used"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:74
|
||||
msgid "Current # of rounds:"
|
||||
msgstr ""
|
||||
|
||||
@ -761,7 +762,7 @@ msgid "Total # of rounds"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:82
|
||||
msgid "Total rounds shot:"
|
||||
msgstr ""
|
||||
|
||||
@ -807,14 +808,14 @@ msgid "Ammo types"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:87
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:96
|
||||
msgid "Added on"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:41
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:46
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:90
|
||||
msgid "Added on:"
|
||||
msgstr ""
|
||||
|
||||
@ -883,7 +884,7 @@ msgid "Move Ammo"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:90
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:98
|
||||
msgid "No ammo in this container"
|
||||
msgstr ""
|
||||
|
||||
@ -918,3 +919,30 @@ msgstr ""
|
||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
|
||||
msgid "Leave \"Uses left\" blank to make invite unlimited"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:87
|
||||
msgid "Total # of ammo"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:68
|
||||
msgid "Container:"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:90
|
||||
msgid "Show used"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:101
|
||||
msgid "Used up on"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:52
|
||||
msgid "Used up on:"
|
||||
msgstr ""
|
||||
|
@ -171,7 +171,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery/ammo.ex:407
|
||||
#: lib/cannery/ammo.ex:535
|
||||
msgid "Invalid multiplier"
|
||||
msgstr ""
|
||||
|
||||
|
@ -21,7 +21,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:41
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:38
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:28
|
||||
#: 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
|
||||
@ -86,7 +86,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:184
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:216
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
|
||||
msgid "Are you sure you want to delete this ammo?"
|
||||
msgstr ""
|
||||
@ -273,7 +273,7 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:140
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:156
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:26
|
||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
|
||||
msgstr ""
|
||||
|
@ -170,7 +170,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery/ammo.ex:407
|
||||
#: lib/cannery/ammo.ex:535
|
||||
msgid "Invalid multiplier"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3,14 +3,16 @@ 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: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"PO-Revision-Date: 2022-05-22 22:52+0000\n"
|
||||
"Last-Translator: Hannah Winter <konhat@hotmail.es>\n"
|
||||
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
|
||||
"actions/es/>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 3.6.2\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.12.2\n"
|
||||
|
||||
## This file is a PO Template file.
|
||||
##
|
||||
@ -25,7 +27,7 @@ msgstr ""
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:44
|
||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
|
||||
msgid "Add Ammo"
|
||||
msgstr ""
|
||||
msgstr "Añadir Munición"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:37
|
||||
@ -46,30 +48,30 @@ msgstr ""
|
||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
|
||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:44
|
||||
msgid "Change email"
|
||||
msgstr ""
|
||||
msgstr "Cambiar correo electrónico"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:58
|
||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:99
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
msgstr "Cambiar contraseña"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/invite_live/index.html.heex:17
|
||||
msgid "Create Invite"
|
||||
msgstr ""
|
||||
msgstr "Crear Invitación"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:142
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
msgstr "Eliminar cuenta de Usuario"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/user_registration/new.html.heex:52
|
||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
|
||||
#: lib/cannery_web/templates/user_session/new.html.heex:45
|
||||
msgid "Forgot your password?"
|
||||
msgstr ""
|
||||
msgstr "¿Has olvidado tu contraseña?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/invite_live/index.html.heex:12
|
||||
@ -144,7 +146,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/user_reset_password/new.html.heex:16
|
||||
msgid "Send instructions to reset password"
|
||||
msgstr ""
|
||||
msgstr "Enviar instrucciones para reestablecer contraseña"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:65
|
||||
@ -167,7 +169,7 @@ msgid "Why not get some ready to shoot?"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:151
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:183
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
|
||||
#: lib/cannery_web/live/range_live/index.html.heex:36
|
||||
msgid "Record shots"
|
||||
|
@ -3,14 +3,16 @@ 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: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"PO-Revision-Date: 2022-05-22 22:52+0000\n"
|
||||
"Last-Translator: Ed <ed.ylles1997@gmail.com>\n"
|
||||
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
|
||||
"default/es/>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 3.6.2\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.12.2\n"
|
||||
|
||||
## This file is a PO Template file.
|
||||
##
|
||||
@ -25,6 +27,8 @@ msgstr ""
|
||||
#: lib/cannery_web/live/home_live.ex:64
|
||||
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
|
||||
msgstr ""
|
||||
"%{name} te permite mantener un ojo en tus niveles de munición antes y "
|
||||
"después de un día en el campo de tiro"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/home_live.ex:86
|
||||
@ -50,13 +54,13 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:81
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:90
|
||||
msgid "Ammo type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:87
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:88
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:99
|
||||
msgid "Average Price paid"
|
||||
msgstr ""
|
||||
|
||||
@ -68,7 +72,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:71
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
|
||||
msgid "Blank"
|
||||
msgstr ""
|
||||
|
||||
@ -80,42 +84,42 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:53
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
|
||||
msgid "Bullet core"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:37
|
||||
msgid "Bullet type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:55
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
|
||||
msgid "Caliber"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:54
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
|
||||
msgid "Cartridge"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:56
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
|
||||
msgid "Case material"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: 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/index.ex:86
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:95
|
||||
msgid "Container"
|
||||
msgstr ""
|
||||
|
||||
@ -129,18 +133,18 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:72
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
|
||||
msgid "Corrosive"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:82
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:91
|
||||
msgid "Count"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:29
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:34
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
|
||||
msgid "Count:"
|
||||
msgstr ""
|
||||
@ -174,7 +178,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:23
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:45
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:63
|
||||
msgid "Edit Ammo type"
|
||||
msgstr ""
|
||||
|
||||
@ -206,14 +210,14 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:65
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
|
||||
msgid "Grains"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:70
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
|
||||
msgid "Incendiary"
|
||||
msgstr ""
|
||||
|
||||
@ -264,7 +268,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:73
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
|
||||
msgid "Manufacturer"
|
||||
msgstr ""
|
||||
|
||||
@ -318,7 +322,7 @@ msgid "No Ammo Types"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:127
|
||||
msgid "No ammo for this type"
|
||||
msgstr ""
|
||||
|
||||
@ -348,7 +352,7 @@ msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:35
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:40
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
|
||||
msgid "Notes:"
|
||||
msgstr ""
|
||||
@ -361,25 +365,25 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:66
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:83
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:92
|
||||
msgid "Price paid"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:47
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:59
|
||||
msgid "Price paid:"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:67
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
|
||||
msgid "Primer type"
|
||||
msgstr ""
|
||||
|
||||
@ -410,7 +414,7 @@ msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:62
|
||||
msgid "Show Ammo type"
|
||||
msgstr ""
|
||||
|
||||
@ -454,7 +458,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:69
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
|
||||
msgid "Tracer"
|
||||
msgstr ""
|
||||
|
||||
@ -502,7 +506,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/topbar.ex:68
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:85
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:94
|
||||
msgid "Range"
|
||||
msgstr ""
|
||||
|
||||
@ -595,6 +599,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/move_ammo_group_component.ex:80
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:240
|
||||
msgid "Move ammo"
|
||||
msgstr ""
|
||||
|
||||
@ -609,12 +614,12 @@ msgid "Shot log"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:48
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:125
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:60
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:142
|
||||
#: 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:114
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:118
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:103
|
||||
msgid "$%{amount}"
|
||||
msgstr ""
|
||||
|
||||
@ -626,35 +631,35 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:57
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
|
||||
msgid "Jacket type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:58
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
|
||||
msgid "Muzzle velocity"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:61
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
|
||||
msgid "Powder grains per charge"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:59
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
|
||||
msgid "Powder type"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:74
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
|
||||
msgid "UPC"
|
||||
msgstr ""
|
||||
|
||||
@ -675,19 +680,19 @@ msgid "New password"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:148
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:180
|
||||
msgid "Stage"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:148
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:180
|
||||
msgid "Unstage"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:68
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
|
||||
msgid "Firing type"
|
||||
msgstr ""
|
||||
|
||||
@ -703,13 +708,13 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:27
|
||||
#: lib/cannery_web/live/container_live/show.ex:95
|
||||
#: lib/cannery_web/live/container_live/show.ex:106
|
||||
msgid "Edit %{name}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:46
|
||||
#: lib/cannery_web/live/container_live/show.ex:96
|
||||
#: lib/cannery_web/live/container_live/show.ex:107
|
||||
msgid "Edit %{name} tags"
|
||||
msgstr ""
|
||||
|
||||
@ -720,18 +725,18 @@ msgid "Rounds:"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/show.ex:94
|
||||
#: lib/cannery_web/live/container_live/show.ex:105
|
||||
msgid "Show %{name}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:113
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:117
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:109
|
||||
msgid "No cost information"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:84
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:93
|
||||
msgid "% left"
|
||||
msgstr ""
|
||||
|
||||
@ -761,7 +766,7 @@ msgid "Rounds used"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:74
|
||||
msgid "Current # of rounds:"
|
||||
msgstr ""
|
||||
|
||||
@ -771,7 +776,7 @@ msgid "Total # of rounds"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:82
|
||||
msgid "Total rounds shot:"
|
||||
msgstr ""
|
||||
|
||||
@ -817,14 +822,14 @@ msgid "Ammo types"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:87
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:96
|
||||
msgid "Added on"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:41
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:46
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:90
|
||||
msgid "Added on:"
|
||||
msgstr ""
|
||||
|
||||
@ -893,7 +898,7 @@ msgid "Move Ammo"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:90
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:98
|
||||
msgid "No ammo in this container"
|
||||
msgstr ""
|
||||
|
||||
@ -928,3 +933,30 @@ msgstr ""
|
||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
|
||||
msgid "Leave \"Uses left\" blank to make invite unlimited"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:87
|
||||
msgid "Total # of ammo"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:68
|
||||
msgid "Container:"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:90
|
||||
msgid "Show used"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:101
|
||||
msgid "Used up on"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:52
|
||||
msgid "Used up on:"
|
||||
msgstr ""
|
||||
|
@ -3,14 +3,16 @@ 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: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"PO-Revision-Date: 2022-05-22 22:52+0000\n"
|
||||
"Last-Translator: Ed <ed.ylles1997@gmail.com>\n"
|
||||
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
|
||||
"emails/es/>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 3.6.2\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.12.2\n"
|
||||
|
||||
## This file is a PO Template file.
|
||||
##
|
||||
@ -24,7 +26,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery/accounts/email.ex:30
|
||||
msgid "Confirm your %{name} account"
|
||||
msgstr ""
|
||||
msgstr "Confirma el %{name} de la cuenta"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:3
|
||||
@ -34,7 +36,7 @@ msgstr ""
|
||||
#: lib/cannery_web/templates/email/update_email.html.eex:3
|
||||
#: lib/cannery_web/templates/email/update_email.txt.eex:2
|
||||
msgid "Hi %{email},"
|
||||
msgstr ""
|
||||
msgstr "Hola %{email},"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:10
|
||||
@ -60,30 +62,35 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
|
||||
msgid "Welcome to %{name}!"
|
||||
msgstr ""
|
||||
msgstr "¡Bienvenide a %{name}!"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
|
||||
msgid "Welcome to %{name}%!"
|
||||
msgstr ""
|
||||
msgstr "¡Bienvenide a %{name}%!"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/email/update_email.html.eex:8
|
||||
#: lib/cannery_web/templates/email/update_email.txt.eex:4
|
||||
msgid "You can change your email by visiting the URL below:"
|
||||
msgstr ""
|
||||
"Puede cambiar su correo electrónico visitando el enlace que se muestra a "
|
||||
"continuación:"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
|
||||
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
|
||||
msgid "You can confirm your account by visiting the URL below:"
|
||||
msgstr ""
|
||||
"Puede confirmar su cuenta visitando el enlace que se muestra a continuación:"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/email/reset_password.html.eex:8
|
||||
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
|
||||
msgid "You can reset your password by visiting the URL below:"
|
||||
msgstr ""
|
||||
"Puede reestablecer su contraseña visitando el enlace que se muestra a "
|
||||
"continuación:"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
|
||||
|
@ -3,14 +3,16 @@ 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: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"PO-Revision-Date: 2022-05-22 22:52+0000\n"
|
||||
"Last-Translator: Ed <ed.ylles1997@gmail.com>\n"
|
||||
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
|
||||
"errors/es/>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 3.6.2\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.12.2\n"
|
||||
|
||||
## This file is a PO Template file.
|
||||
##
|
||||
@ -24,13 +26,13 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery/containers.ex:140
|
||||
msgid "Container must be empty before deleting"
|
||||
msgstr ""
|
||||
msgstr "el Contenedor debe estar vació antes de borrarlo"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:69
|
||||
#: lib/cannery_web/live/container_live/show.ex:71
|
||||
msgid "Could not delete %{name}: %{error}"
|
||||
msgstr ""
|
||||
msgstr "No se pudo eliminar %{name}: %{error}"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:57
|
||||
@ -45,7 +47,7 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/error/error.html.heex:8
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
msgstr "Error"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/error/error.html.heex:28
|
||||
@ -75,11 +77,14 @@ msgstr ""
|
||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:119
|
||||
msgid "Oops, something went wrong! Please check the errors below."
|
||||
msgstr ""
|
||||
"¡Ups, algo ha ido mal! Por favor, compruebe los errores que se muestran a "
|
||||
"continuación."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_reset_password_controller.ex:63
|
||||
msgid "Reset password link is invalid or it has expired."
|
||||
msgstr ""
|
||||
"El enlace de reestablecimiento de la contraseña es inválido o ha caducado."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_registration_controller.ex:25
|
||||
@ -181,7 +186,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery/ammo.ex:407
|
||||
#: lib/cannery/ammo.ex:535
|
||||
msgid "Invalid multiplier"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3,14 +3,16 @@ 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: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"PO-Revision-Date: 2022-06-06 19:05+0000\n"
|
||||
"Last-Translator: Ed <ed.ylles1997@gmail.com>\n"
|
||||
"Language-Team: Spanish <https://weblate.bubbletea.dev/projects/cannery/"
|
||||
"prompts/es/>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 3.6.2\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.12.2\n"
|
||||
|
||||
## This file is a PO Template file.
|
||||
##
|
||||
@ -27,37 +29,37 @@ msgstr ""
|
||||
#: lib/cannery_web/live/invite_live/form_component.ex:80
|
||||
#: lib/cannery_web/live/tag_live/form_component.ex:126
|
||||
msgid "%{name} created successfully"
|
||||
msgstr ""
|
||||
msgstr "%{name} creado exitosamente"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:41
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:38
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:28
|
||||
#: 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
|
||||
msgid "%{name} deleted succesfully"
|
||||
msgstr ""
|
||||
msgstr "%{name} borrado exitosamente"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/invite_live/index.ex:109
|
||||
msgid "%{name} disabled succesfully"
|
||||
msgstr ""
|
||||
msgstr "%{name} desactivado exitosamente"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/invite_live/index.ex:87
|
||||
msgid "%{name} enabled succesfully"
|
||||
msgstr ""
|
||||
msgstr "%{name} activado exitosamente"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:62
|
||||
#: lib/cannery_web/live/container_live/show.ex:61
|
||||
msgid "%{name} has been deleted"
|
||||
msgstr ""
|
||||
msgstr "%{name} ha sido borrado"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/invite_live/index.ex:67
|
||||
msgid "%{name} updated succesfully"
|
||||
msgstr ""
|
||||
msgstr "%{name} actualizado exitosamente"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.ex:67
|
||||
@ -65,96 +67,102 @@ msgstr ""
|
||||
#: lib/cannery_web/live/invite_live/form_component.ex:62
|
||||
#: lib/cannery_web/live/tag_live/form_component.ex:108
|
||||
msgid "%{name} updated successfully"
|
||||
msgstr ""
|
||||
msgstr "%{name} actualizado exitosamente"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_settings_controller.ex:29
|
||||
msgid "A link to confirm your email change has been sent to the new address."
|
||||
msgstr ""
|
||||
"Un enlace para confirmar el correo electrónico ha sido enviado a la nueva "
|
||||
"dirección."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:56
|
||||
msgid "Ammo group deleted succesfully"
|
||||
msgstr ""
|
||||
msgstr "Grupo de Munición borrado exitosamente"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/invite_live/index.html.heex:102
|
||||
#: lib/cannery_web/live/invite_live/index.html.heex:131
|
||||
msgid "Are you sure you want to delete %{email}? This action is permanent!"
|
||||
msgstr ""
|
||||
msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.html.heex:46
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:49
|
||||
#: lib/cannery_web/live/tag_live/index.html.heex:38
|
||||
msgid "Are you sure you want to delete %{name}?"
|
||||
msgstr ""
|
||||
msgstr "Está seguro que desea eliminar %{name}?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/invite_live/index.html.heex:49
|
||||
msgid "Are you sure you want to delete the invite for %{name}?"
|
||||
msgstr ""
|
||||
msgstr "Está seguro que quiere eliminar la invitación para %{name}?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:184
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:216
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
|
||||
msgid "Are you sure you want to delete this ammo?"
|
||||
msgstr ""
|
||||
msgstr "Está seguro que desea eliminar esta munición?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/templates/user_settings/edit.html.heex:146
|
||||
msgid "Are you sure you want to delete your account?"
|
||||
msgstr ""
|
||||
msgstr "Está seguro que desea eliminar su cuenta?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/topbar.ex:90
|
||||
msgid "Are you sure you want to log out?"
|
||||
msgstr ""
|
||||
msgstr "Está seguro que desea cerrar sesión?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/invite_live/index.html.heex:74
|
||||
msgid "Are you sure you want to make %{name} unlimited?"
|
||||
msgstr ""
|
||||
msgstr "Está seguro que desea hacer %{name} ilimitado?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_settings_controller.ex:77
|
||||
msgid "Email changed successfully."
|
||||
msgstr ""
|
||||
msgstr "Correo electrónico cambiado exitosamente."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
|
||||
msgid "If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
|
||||
msgstr ""
|
||||
"Si su correo electrónico está en nuestro sistema y no ha sido confirmado "
|
||||
"aun, recibirá un correo con instrucciones en breve."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_reset_password_controller.ex:24
|
||||
msgid "If your email is in our system, you will receive instructions to reset your password shortly."
|
||||
msgstr ""
|
||||
"Si su correo electrónico está en nuestro sistema, recibirá instrucciones "
|
||||
"para reiniciar la contraseña en breve."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_session_controller.ex:23
|
||||
msgid "Logged out successfully."
|
||||
msgstr ""
|
||||
msgstr "Sesión cerrada exitosamente."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_reset_password_controller.ex:46
|
||||
msgid "Password reset successfully."
|
||||
msgstr ""
|
||||
msgstr "Contraseña reiniciada exitosamente."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_settings_controller.ex:49
|
||||
msgid "Password updated successfully."
|
||||
msgstr ""
|
||||
msgstr "Contraseña cambiada exitosamente."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_registration_controller.ex:74
|
||||
msgid "Please check your email to verify your account"
|
||||
msgstr ""
|
||||
msgstr "Por favor chequea el correo para verificar tu cuenta"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/home_live.ex:104
|
||||
msgid "Register to setup %{name}"
|
||||
msgstr ""
|
||||
msgstr "Regístrese para configurar %{name}"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/add_shot_group_component.html.heex:48
|
||||
@ -165,42 +173,43 @@ msgstr ""
|
||||
#: lib/cannery_web/live/range_live/form_component.html.heex:42
|
||||
#: lib/cannery_web/live/tag_live/form_component.ex:93
|
||||
msgid "Saving..."
|
||||
msgstr ""
|
||||
msgstr "Guardando..."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/controllers/user_settings_controller.ex:95
|
||||
msgid "Your account has been deleted"
|
||||
msgstr ""
|
||||
msgstr "Su cuenta ha sido eliminada"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:16
|
||||
msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?"
|
||||
msgstr ""
|
||||
"Está seguro que desea remover la etiqueta %{tag_name} de %{container_name}?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/edit_tags_component.ex:36
|
||||
msgid "%{name} added successfully"
|
||||
msgstr ""
|
||||
msgstr "%{name} añadido exitosamente"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/show.ex:37
|
||||
msgid "%{tag_name} has been removed from %{container_name}"
|
||||
msgstr ""
|
||||
msgstr "se ha removido %{tag_name} de %{container_name}"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:54
|
||||
msgid "Adding..."
|
||||
msgstr ""
|
||||
msgstr "Añadiendo..."
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/add_shot_group_component.ex:56
|
||||
msgid "Shots recorded successfully"
|
||||
msgstr ""
|
||||
msgstr "Tiros registrados exitosamente"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/range_live/index.html.heex:29
|
||||
msgid "Are you sure you want to unstage this ammo?"
|
||||
msgstr ""
|
||||
msgstr "Está seguro que desea desmontar esta munición?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/show.ex:130
|
||||
@ -283,7 +292,7 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:140
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:156
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:26
|
||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
|
||||
msgstr ""
|
||||
|
@ -169,7 +169,7 @@ msgid "Why not get some ready to shoot?"
|
||||
msgstr "Pourquoi pas en préparer pour tirer ?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:151
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:183
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
|
||||
#: lib/cannery_web/live/range_live/index.html.heex:36
|
||||
msgid "Record shots"
|
||||
|
@ -54,13 +54,13 @@ msgstr "Munition"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:81
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:90
|
||||
msgid "Ammo type"
|
||||
msgstr "Type de munition"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:87
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:88
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:99
|
||||
msgid "Average Price paid"
|
||||
msgstr "Prix acheté moyen"
|
||||
|
||||
@ -72,7 +72,7 @@ msgstr "Couleur de fond"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:71
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
|
||||
msgid "Blank"
|
||||
msgstr "Vide"
|
||||
|
||||
@ -84,42 +84,42 @@ msgstr "Cuivre"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:53
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
|
||||
msgid "Bullet core"
|
||||
msgstr "Noyau de balle"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:37
|
||||
msgid "Bullet type"
|
||||
msgstr "Type de balle"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:55
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
|
||||
msgid "Caliber"
|
||||
msgstr "Calibre"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:54
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
|
||||
msgid "Cartridge"
|
||||
msgstr "Cartouche"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:56
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
|
||||
msgid "Case material"
|
||||
msgstr "Matériau de la caisse"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: 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/index.ex:86
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:95
|
||||
msgid "Container"
|
||||
msgstr "Conteneur"
|
||||
|
||||
@ -133,18 +133,18 @@ msgstr "Conteneurs"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:72
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
|
||||
msgid "Corrosive"
|
||||
msgstr "Corrosive"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:82
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:91
|
||||
msgid "Count"
|
||||
msgstr "Quantité"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:29
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:34
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
|
||||
msgid "Count:"
|
||||
msgstr "Quantité :"
|
||||
@ -178,7 +178,7 @@ msgstr "Éditer le groupe de munition"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:23
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:45
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:63
|
||||
msgid "Edit Ammo type"
|
||||
msgstr "Éditer le type de munition"
|
||||
|
||||
@ -210,14 +210,14 @@ msgstr "FMJ"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:65
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
|
||||
msgid "Grains"
|
||||
msgstr "Graines"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:70
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
|
||||
msgid "Incendiary"
|
||||
msgstr "Incendiaire"
|
||||
|
||||
@ -268,7 +268,7 @@ msgstr "Chargeur, lame-chargeur, boite de munition, etc."
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:73
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
|
||||
msgid "Manufacturer"
|
||||
msgstr "Fabricant"
|
||||
|
||||
@ -322,7 +322,7 @@ msgid "No Ammo Types"
|
||||
msgstr "Aucun type de munition"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:127
|
||||
msgid "No ammo for this type"
|
||||
msgstr "Aucune munition pour ce type"
|
||||
|
||||
@ -352,7 +352,7 @@ msgid "Notes"
|
||||
msgstr "Notes"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:35
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:40
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
|
||||
msgid "Notes:"
|
||||
msgstr "Notes :"
|
||||
@ -365,25 +365,25 @@ msgstr "Sur l’étagère"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:66
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
|
||||
msgid "Pressure"
|
||||
msgstr "Pression"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:83
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:92
|
||||
msgid "Price paid"
|
||||
msgstr "Prix payé"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:47
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:59
|
||||
msgid "Price paid:"
|
||||
msgstr "Prix payé :"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:67
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
|
||||
msgid "Primer type"
|
||||
msgstr "Type d’amorce"
|
||||
|
||||
@ -416,7 +416,7 @@ msgid "Settings"
|
||||
msgstr "Paramètres"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:62
|
||||
msgid "Show Ammo type"
|
||||
msgstr "Montrer le type de munition"
|
||||
|
||||
@ -462,7 +462,7 @@ msgstr "Le site web de suivi d’arme à feux auto-hébergé"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:69
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
|
||||
msgid "Tracer"
|
||||
msgstr "Traceuse"
|
||||
|
||||
@ -510,7 +510,7 @@ msgstr "Aucun tag pour ce conteneur"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/topbar.ex:68
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:85
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:94
|
||||
msgid "Range"
|
||||
msgstr "Portée"
|
||||
|
||||
@ -603,6 +603,7 @@ msgstr "Déplacer le groupe de munition"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/move_ammo_group_component.ex:80
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:240
|
||||
msgid "Move ammo"
|
||||
msgstr "Déplacer munition"
|
||||
|
||||
@ -617,12 +618,12 @@ msgid "Shot log"
|
||||
msgstr "Évènements de tir"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:48
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:125
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:60
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:142
|
||||
#: 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:114
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:104
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:118
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:103
|
||||
msgid "$%{amount}"
|
||||
msgstr "%{amount} $"
|
||||
|
||||
@ -634,35 +635,35 @@ msgstr "Bi-métal"
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:57
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
|
||||
msgid "Jacket type"
|
||||
msgstr "Type de douille"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:58
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
|
||||
msgid "Muzzle velocity"
|
||||
msgstr "Vélocité du canon"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:61
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
|
||||
msgid "Powder grains per charge"
|
||||
msgstr "Graines de poudre par charge"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:59
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
|
||||
msgid "Powder type"
|
||||
msgstr "Type de poudre"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:74
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
|
||||
msgid "UPC"
|
||||
msgstr "UPC"
|
||||
|
||||
@ -683,19 +684,19 @@ msgid "New password"
|
||||
msgstr "Nouveau mot de passe"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:148
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:180
|
||||
msgid "Stage"
|
||||
msgstr "Sélectionné"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:148
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:180
|
||||
msgid "Unstage"
|
||||
msgstr "Désélectionner"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:68
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
|
||||
msgid "Firing type"
|
||||
msgstr "Type d’allumage"
|
||||
|
||||
@ -711,13 +712,13 @@ msgstr "Chargement en cours…"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:27
|
||||
#: lib/cannery_web/live/container_live/show.ex:95
|
||||
#: lib/cannery_web/live/container_live/show.ex:106
|
||||
msgid "Edit %{name}"
|
||||
msgstr "Éditer %{name}"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/index.ex:46
|
||||
#: lib/cannery_web/live/container_live/show.ex:96
|
||||
#: lib/cannery_web/live/container_live/show.ex:107
|
||||
msgid "Edit %{name} tags"
|
||||
msgstr "Éditer les tags de %{name}"
|
||||
|
||||
@ -728,18 +729,18 @@ msgid "Rounds:"
|
||||
msgstr "Cartouches :"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/container_live/show.ex:94
|
||||
#: lib/cannery_web/live/container_live/show.ex:105
|
||||
msgid "Show %{name}"
|
||||
msgstr "Montrer %{name}"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:113
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:117
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:109
|
||||
msgid "No cost information"
|
||||
msgstr "Aucune information de prix"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:84
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:93
|
||||
msgid "% left"
|
||||
msgstr "% restante"
|
||||
|
||||
@ -769,7 +770,7 @@ msgid "Rounds used"
|
||||
msgstr "Cartouches utilisées"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:74
|
||||
msgid "Current # of rounds:"
|
||||
msgstr "Quantité actuelle de cartouches :"
|
||||
|
||||
@ -779,7 +780,7 @@ msgid "Total # of rounds"
|
||||
msgstr "Quantité de cartouches"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:82
|
||||
msgid "Total rounds shot:"
|
||||
msgstr "Nombre totale de cartouches tirées :"
|
||||
|
||||
@ -825,14 +826,14 @@ msgid "Ammo types"
|
||||
msgstr "Types de munition"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:87
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:96
|
||||
msgid "Added on"
|
||||
msgstr "Ajouté le"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:41
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:46
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:90
|
||||
msgid "Added on:"
|
||||
msgstr "Ajouté le :"
|
||||
|
||||
@ -901,7 +902,7 @@ msgid "Move Ammo"
|
||||
msgstr "Déplacer munition"
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:90
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:98
|
||||
msgid "No ammo in this container"
|
||||
msgstr "Aucun groupe de munition pour ce conteneur"
|
||||
|
||||
@ -936,3 +937,30 @@ msgstr ""
|
||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
|
||||
msgid "Leave \"Uses left\" blank to make invite unlimited"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:87
|
||||
msgid "Total # of ammo"
|
||||
msgstr "Quantité de cartouches"
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:68
|
||||
msgid "Container:"
|
||||
msgstr "Conteneur"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.html.heex:52
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:119
|
||||
#: lib/cannery_web/live/container_live/show.html.heex:90
|
||||
msgid "Show used"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:101
|
||||
msgid "Used up on"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/components/ammo_group_card.ex:52
|
||||
msgid "Used up on:"
|
||||
msgstr ""
|
||||
|
@ -187,7 +187,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
|
||||
msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery/ammo.ex:407
|
||||
#: lib/cannery/ammo.ex:535
|
||||
msgid "Invalid multiplier"
|
||||
msgstr ""
|
||||
|
||||
|
@ -33,7 +33,7 @@ msgstr "%{name} créé· avec succès"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:41
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:38
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:28
|
||||
#: 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
|
||||
@ -101,7 +101,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
|
||||
msgstr "Êtes-vous certain·e de supprimer l’invitation pour %{name} ?"
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:184
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:216
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
|
||||
msgid "Are you sure you want to delete this ammo?"
|
||||
msgstr "Êtes-vous certain·e de supprimer cette munition ?"
|
||||
@ -294,7 +294,7 @@ msgstr[0] "Groupe de munition mis à jour avec succès"
|
||||
msgstr[1] "Groupe de munition mis à jour avec succès"
|
||||
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:140
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:156
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:26
|
||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
|
||||
msgstr "Êtes-vous certain·e de supprimer %{name} ?"
|
||||
|
@ -20,7 +20,7 @@ msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:41
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:38
|
||||
#: lib/cannery_web/live/ammo_type_live/show.ex:28
|
||||
#: 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
|
||||
@ -85,7 +85,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:184
|
||||
#: lib/cannery_web/live/ammo_group_live/index.ex:216
|
||||
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
|
||||
msgid "Are you sure you want to delete this ammo?"
|
||||
msgstr ""
|
||||
@ -272,7 +272,7 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, elixir-autogen, elixir-format
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:140
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27
|
||||
#: lib/cannery_web/live/ammo_type_live/index.ex:156
|
||||
#: lib/cannery_web/live/ammo_type_live/show.html.heex:26
|
||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
|
||||
msgstr ""
|
||||
|
Reference in New Issue
Block a user