Compare commits

...

11 Commits

Author SHA1 Message Date
pehoulihan
1c9c6a6ab4 Translated using Weblate (Irish)
Some checks failed
continuous-integration/drone/push Build is failing
Currently translated at 57.5% (19 of 33 strings)

Translation: cannery/errors
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/errors/ga/
2022-11-07 06:37:39 +00:00
Weblate
75fb64a65b Added translation using Weblate (Irish) 2022-11-07 06:37:39 +00:00
Weblate
0b3ecf648e Added translation using Weblate (Irish) 2022-11-07 06:37:39 +00:00
Weblate
36f0707bf7 Added translation using Weblate (Irish) 2022-11-07 06:37:39 +00:00
Weblate
2bee98fa41 Added translation using Weblate (Irish) 2022-11-07 06:37:39 +00:00
Weblate
e717ff810f Added translation using Weblate (Irish) 2022-11-07 06:37:39 +00:00
pehoulihan
22747efbc1 Translated using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)

Translation: cannery/actions
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/actions/fr/
2022-11-07 06:37:39 +00:00
pehoulihan
010d8dfc8a Translated using Weblate (French)
Currently translated at 100.0% (33 of 33 strings)

Translation: cannery/errors
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/errors/fr/
2022-11-07 06:37:38 +00:00
pehoulihan
b71a8aadbb Translated using Weblate (French)
Currently translated at 96.9% (157 of 162 strings)

Translation: cannery/default
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/default/fr/
2022-11-07 06:37:38 +00:00
23013d2662 Added translation using Weblate (Irish) 2022-11-07 06:37:38 +00:00
6083fbca4f display used-up date on used-up ammo
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2022-11-07 01:36:28 -05:00
37 changed files with 2091 additions and 411 deletions

View File

@ -1,5 +1,6 @@
# v0.5.5 # v0.5.5
- Update translations - Update translations
- Display used-up date on used-up ammo
- Make ammo index page a bit more compact - Make ammo index page a bit more compact
- Make ammo index page filter used-up ammo - Make ammo index page filter used-up ammo
- Make ammo catalog page include ammo count - Make ammo catalog page include ammo count

View File

@ -227,7 +227,7 @@ defmodule Cannery.Ammo do
def list_ammo_groups_for_type( def list_ammo_groups_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id}, %AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id}, %User{id: user_id},
_include_empty = true true = _include_empty
) do ) do
Repo.all( Repo.all(
from ag in AmmoGroup, from ag in AmmoGroup,
@ -242,7 +242,7 @@ defmodule Cannery.Ammo do
def list_ammo_groups_for_type( def list_ammo_groups_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id}, %AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id}, %User{id: user_id},
_include_empty = false false = _include_empty
) do ) do
Repo.all( Repo.all(
from ag in AmmoGroup, from ag in AmmoGroup,
@ -272,7 +272,7 @@ defmodule Cannery.Ammo do
def list_ammo_groups_for_container( def list_ammo_groups_for_container(
%Container{id: container_id, user_id: user_id}, %Container{id: container_id, user_id: user_id},
%User{id: user_id}, %User{id: user_id},
_include_empty = true true = _include_empty
) do ) do
Repo.all( Repo.all(
from ag in AmmoGroup, from ag in AmmoGroup,
@ -287,7 +287,7 @@ defmodule Cannery.Ammo do
def list_ammo_groups_for_container( def list_ammo_groups_for_container(
%Container{id: container_id, user_id: user_id}, %Container{id: container_id, user_id: user_id},
%User{id: user_id}, %User{id: user_id},
_include_empty = false false = _include_empty
) do ) do
Repo.all( Repo.all(
from ag in AmmoGroup, from ag in AmmoGroup,
@ -317,7 +317,7 @@ defmodule Cannery.Ammo do
def get_ammo_groups_count_for_type( def get_ammo_groups_count_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id}, %AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id}, %User{id: user_id},
_include_empty = true true = _include_empty
) do ) do
Repo.one!( Repo.one!(
from ag in AmmoGroup, from ag in AmmoGroup,
@ -331,7 +331,7 @@ defmodule Cannery.Ammo do
def get_ammo_groups_count_for_type( def get_ammo_groups_count_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id}, %AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id}, %User{id: user_id},
_include_empty = false false = _include_empty
) do ) do
Repo.one!( Repo.one!(
from ag in AmmoGroup, from ag in AmmoGroup,
@ -356,7 +356,7 @@ defmodule Cannery.Ammo do
@spec list_ammo_groups(User.t(), include_empty :: boolean()) :: [AmmoGroup.t()] @spec list_ammo_groups(User.t(), include_empty :: boolean()) :: [AmmoGroup.t()]
def list_ammo_groups(user, include_empty \\ false) def list_ammo_groups(user, include_empty \\ false)
def list_ammo_groups(%User{id: user_id}, _include_empty = true) do def list_ammo_groups(%User{id: user_id}, true = _include_empty) do
Repo.all( Repo.all(
from ag in AmmoGroup, from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups), left_join: sg in assoc(ag, :shot_groups),
@ -366,7 +366,7 @@ defmodule Cannery.Ammo do
) )
end end
def list_ammo_groups(%User{id: user_id}, _include_empty = false) do def list_ammo_groups(%User{id: user_id}, false = _include_empty) do
Repo.all( Repo.all(
from ag in AmmoGroup, from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups), left_join: sg in assoc(ag, :shot_groups),
@ -435,6 +435,17 @@ defmodule Cannery.Ammo do
|> Enum.sum() |> Enum.sum()
end 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 """ @doc """
Calculates the percentage remaining of an ammo group out of 100 Calculates the percentage remaining of an ammo group out of 100
""" """

View File

@ -4,7 +4,7 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
""" """
use CanneryWeb, :component use CanneryWeb, :component
alias Cannery.Repo alias Cannery.{Ammo, Repo}
alias CanneryWeb.Endpoint alias CanneryWeb.Endpoint
def ammo_group_card(%{ammo_group: ammo_group} = assigns) do def ammo_group_card(%{ammo_group: ammo_group} = assigns) do
@ -47,6 +47,13 @@ defmodule CanneryWeb.Components.AmmoGroupCard do
<%= @ammo_group.inserted_at |> display_datetime() %> <%= @ammo_group.inserted_at |> display_datetime() %>
</span> </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 %> <%= if @ammo_group.price_paid do %>
<span class="rounded-lg title text-lg"> <span class="rounded-lg title text-lg">
<%= gettext("Price paid:") %> <%= gettext("Price paid:") %>

View File

@ -6,7 +6,7 @@ defmodule CanneryWeb.Components.TableComponent do
- `:columns`: An array of maps containing the following keys - `:columns`: An array of maps containing the following keys
- `:label`: A gettext'd or otherwise user-facing string label for the - `:label`: A gettext'd or otherwise user-facing string label for the
column. Can be nil 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. - `:class`: Extra classes to be applied to the column element, if desired.
Optional Optional
- `:sortable`: If false, will prevent the user from sorting with it. - `:sortable`: If false, will prevent the user from sorting with it.
@ -28,13 +28,13 @@ defmodule CanneryWeb.Components.TableComponent do
required(:columns) => required(:columns) =>
list(%{ list(%{
required(:label) => String.t() | nil, required(:label) => String.t() | nil,
required(:key) => String.t() | nil, required(:key) => atom() | nil,
optional(:class) => String.t(), optional(:class) => String.t(),
optional(:sortable) => false optional(:sortable) => false
}), }),
required(:rows) => required(:rows) =>
list(%{ 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() optional(any()) => any()
}, },
@ -56,20 +56,19 @@ defmodule CanneryWeb.Components.TableComponent do
def handle_event( def handle_event(
"sort_by", "sort_by",
%{"sort-key" => key}, %{"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 ) do
sort_mode = if sort_mode == :asc, do: :desc, else: :asc key = key |> String.to_existing_atom()
rows = rows |> sort_by_custom_sort_value_or_value(key, sort_mode)
{:noreply, socket |> assign(sort_mode: sort_mode, 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 end
def handle_event( rows = rows |> sort_by_custom_sort_value_or_value(key, sort_mode)
"sort_by", {:noreply, socket |> assign(last_sort_key: key, sort_mode: sort_mode, rows: rows)}
%{"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)}
end end
defp sort_by_custom_sort_value_or_value(rows, key, sort_mode) do defp sort_by_custom_sort_value_or_value(rows, key, sort_mode) do

View File

@ -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"> <table class="min-w-full table-auto text-center bg-white">
<thead class="border-b border-primary-600"> <thead class="border-b border-primary-600">
<tr> <tr>

View File

@ -73,7 +73,7 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
end end
@impl true @impl true
def handle_event("toggle_show_used", _, %{assigns: %{show_used: show_used}} = socket) do def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_groups()} {:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_groups()}
end end
@ -87,16 +87,24 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
containers_count = Containers.get_containers_count!(current_user) containers_count = Containers.get_containers_count!(current_user)
columns = [ columns = [
%{label: gettext("Ammo type"), key: "ammo_type"}, %{label: gettext("Ammo type"), key: :ammo_type},
%{label: gettext("Count"), key: "count"}, %{label: gettext("Count"), key: :count},
%{label: gettext("Price paid"), key: "price_paid"}, %{label: gettext("Price paid"), key: :price_paid},
%{label: gettext("% left"), key: "remaining"}, %{label: gettext("% left"), key: :remaining},
%{label: gettext("Range"), key: "range"}, %{label: gettext("Range"), key: :range},
%{label: gettext("Container"), key: "container"}, %{label: gettext("Container"), key: :container},
%{label: gettext("Added on"), key: "added_on"}, %{label: gettext("Added on"), key: :added_on}
%{label: nil, key: "actions", sortable: false}
] ]
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 = rows =
ammo_groups ammo_groups
|> Enum.map(fn ammo_group -> ammo_group |> get_row_data_for_ammo_group(columns) end) |> Enum.map(fn ammo_group -> ammo_group |> get_row_data_for_ammo_group(columns) end)
@ -119,8 +127,8 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
|> Enum.into(%{}, fn %{key: key} -> {key, get_value_for_key(key, ammo_group)} end) |> Enum.into(%{}, fn %{key: key} -> {key, get_value_for_key(key, ammo_group)} end)
end end
@spec get_value_for_key(String.t(), AmmoGroup.t()) :: any() @spec get_value_for_key(atom(), AmmoGroup.t()) :: any()
defp get_value_for_key("ammo_type", %{ammo_type: ammo_type}) do defp get_value_for_key(:ammo_type, %{ammo_type: ammo_type}) do
{ammo_type.name, {ammo_type.name,
live_patch(ammo_type.name, live_patch(ammo_type.name,
to: Routes.ammo_type_show_path(Endpoint, :show, ammo_type), to: Routes.ammo_type_show_path(Endpoint, :show, ammo_type),
@ -128,12 +136,12 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
)} )}
end 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)) 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} assigns = %{inserted_at: inserted_at}
{inserted_at, {inserted_at,
@ -142,7 +150,22 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
"""} """}
end 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} assigns = %{ammo_group: ammo_group}
{staged, {staged,
@ -165,10 +188,10 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
"""} """}
end end
defp get_value_for_key("remaining", ammo_group), defp get_value_for_key(:remaining, ammo_group),
do: "#{ammo_group |> Ammo.get_percentage_remaining()}%" 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} assigns = %{ammo_group: ammo_group}
~H""" ~H"""
@ -199,9 +222,9 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
""" """
end 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} assigns = %{ammo_group: ammo_group}
{container_name, {container_name,
@ -222,6 +245,5 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
"""} """}
end end
defp get_value_for_key(key, ammo_group), defp get_value_for_key(key, ammo_group), do: ammo_group |> Map.get(key)
do: ammo_group |> Map.get(key |> String.to_existing_atom())
end end

View File

@ -84,9 +84,9 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
ammo_group = ammo_group |> Repo.preload([:container, :ammo_type, :shot_groups], force: true) ammo_group = ammo_group |> Repo.preload([:container, :ammo_type, :shot_groups], force: true)
columns = [ columns = [
%{label: gettext("Rounds shot"), key: "count"}, %{label: gettext("Rounds shot"), key: :count},
%{label: gettext("Notes"), key: "notes"}, %{label: gettext("Notes"), key: :notes},
%{label: gettext("Date"), key: "date"}, %{label: gettext("Date"), key: :date},
%{label: nil, key: "actions", sortable: false} %{label: nil, key: "actions", sortable: false}
] ]
@ -110,10 +110,10 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
|> Enum.into(%{}, fn %{key: key} -> |> Enum.into(%{}, fn %{key: key} ->
value = value =
case key do case key do
"date" -> :date ->
{date, date |> display_date()} {date, date |> display_date()}
"actions" -> :actions ->
~H""" ~H"""
<div class="px-4 py-2 space-x-4 flex justify-center items-center"> <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), <%= 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 -> key ->
shot_group |> Map.get(key |> String.to_existing_atom()) shot_group |> Map.get(key)
end end
{key, value} {key, value}

View File

@ -48,29 +48,29 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
columns = columns =
[ [
%{label: gettext("Name"), key: "name", type: :name}, %{label: gettext("Name"), key: :name, type: :name},
%{label: gettext("Bullet type"), key: "bullet_type", type: :string}, %{label: gettext("Bullet type"), key: :bullet_type, type: :string},
%{label: gettext("Bullet core"), key: "bullet_core", type: :string}, %{label: gettext("Bullet core"), key: :bullet_core, type: :string},
%{label: gettext("Cartridge"), key: "cartridge", type: :string}, %{label: gettext("Cartridge"), key: :cartridge, type: :string},
%{label: gettext("Caliber"), key: "caliber", type: :string}, %{label: gettext("Caliber"), key: :caliber, type: :string},
%{label: gettext("Case material"), key: "case_material", type: :string}, %{label: gettext("Case material"), key: :case_material, type: :string},
%{label: gettext("Jacket type"), key: "jacket_type", type: :string}, %{label: gettext("Jacket type"), key: :jacket_type, type: :string},
%{label: gettext("Muzzle velocity"), key: "muzzle_velocity", type: :string}, %{label: gettext("Muzzle velocity"), key: :muzzle_velocity, type: :string},
%{label: gettext("Powder type"), key: "powder_type", type: :string}, %{label: gettext("Powder type"), key: :powder_type, type: :string},
%{ %{
label: gettext("Powder grains per charge"), label: gettext("Powder grains per charge"),
key: "powder_grains_per_charge", key: :powder_grains_per_charge,
type: :string type: :string
}, },
%{label: gettext("Grains"), key: "grains", type: :string}, %{label: gettext("Grains"), key: :grains, type: :string},
%{label: gettext("Pressure"), key: "pressure", type: :string}, %{label: gettext("Pressure"), key: :pressure, type: :string},
%{label: gettext("Primer type"), key: "primer_type", type: :string}, %{label: gettext("Primer type"), key: :primer_type, type: :string},
%{label: gettext("Firing type"), key: "firing_type", type: :string}, %{label: gettext("Firing type"), key: :firing_type, type: :string},
%{label: gettext("Tracer"), key: "tracer", type: :boolean}, %{label: gettext("Tracer"), key: :tracer, type: :boolean},
%{label: gettext("Incendiary"), key: "incendiary", type: :boolean}, %{label: gettext("Incendiary"), key: :incendiary, type: :boolean},
%{label: gettext("Blank"), key: "blank", type: :boolean}, %{label: gettext("Blank"), key: :blank, type: :boolean},
%{label: gettext("Corrosive"), key: "corrosive", type: :boolean}, %{label: gettext("Corrosive"), key: :corrosive, type: :boolean},
%{label: gettext("Manufacturer"), key: "manufacturer", type: :string}, %{label: gettext("Manufacturer"), key: :manufacturer, type: :string},
%{label: gettext("UPC"), key: "upc", type: :string} %{label: gettext("UPC"), key: "upc", type: :string}
] ]
|> Enum.filter(fn %{key: key, type: type} -> |> Enum.filter(fn %{key: key, type: type} ->
@ -83,9 +83,9 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
end) end)
end) end)
|> Kernel.++([ |> Kernel.++([
%{label: gettext("Total # of rounds"), key: "round_count", type: :round_count}, %{label: gettext("Total # of rounds"), key: :round_count, type: :round_count},
%{label: gettext("Total # of ammo"), key: "ammo_count", type: :ammo_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: gettext("Average Price paid"), key: :avg_price_paid, type: :avg_price_paid},
%{label: nil, key: "actions", type: :actions, sortable: false} %{label: nil, key: "actions", type: :actions, sortable: false}
]) ])
@ -104,7 +104,7 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
end end
defp get_ammo_type_value(:boolean, key, ammo_type, _current_user), 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), defp get_ammo_type_value(:round_count, _key, ammo_type, current_user),
do: ammo_type |> Ammo.get_round_count_for_ammo_type(current_user) do: ammo_type |> Ammo.get_round_count_for_ammo_type(current_user)
@ -164,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(nil, _key, _ammo_type, _current_user), do: nil
defp get_ammo_type_value(_other, key, ammo_type, _current_user), defp get_ammo_type_value(_other, key, ammo_type, _current_user), do: ammo_type |> Map.get(key)
do: ammo_type |> Map.get(key |> String.to_existing_atom())
end end

View File

@ -32,7 +32,7 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
end end
@impl true @impl true
def handle_event("toggle_show_used", _, %{assigns: %{show_used: show_used}} = socket) do def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_type()} {:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_type()}
end end

View File

@ -5,7 +5,7 @@ defmodule CanneryWeb.ContainerLive.Show do
use CanneryWeb, :live_view use CanneryWeb, :live_view
import CanneryWeb.Components.{AmmoGroupCard, TagCard} import CanneryWeb.Components.{AmmoGroupCard, TagCard}
alias Cannery.{Ammo, Accounts.User, Containers, Containers.Container, Repo, Tags} alias Cannery.{Accounts.User, Ammo, Containers, Containers.Container, Repo, Tags}
alias CanneryWeb.Endpoint alias CanneryWeb.Endpoint
alias Ecto.Changeset alias Ecto.Changeset
alias Phoenix.LiveView.Socket alias Phoenix.LiveView.Socket
@ -83,7 +83,7 @@ defmodule CanneryWeb.ContainerLive.Show do
end end
@impl true @impl true
def handle_event("toggle_show_used", _, %{assigns: %{show_used: show_used}} = socket) do def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> render_container()} {:noreply, socket |> assign(:show_used, !show_used) |> render_container()}
end end

View File

@ -77,10 +77,10 @@ defmodule CanneryWeb.RangeLive.Index do
ammo_groups = Ammo.list_staged_ammo_groups(current_user) ammo_groups = Ammo.list_staged_ammo_groups(current_user)
columns = [ columns = [
%{label: gettext("Ammo"), key: "name"}, %{label: gettext("Ammo"), key: :name},
%{label: gettext("Rounds shot"), key: "count"}, %{label: gettext("Rounds shot"), key: :count},
%{label: gettext("Notes"), key: "notes"}, %{label: gettext("Notes"), key: :notes},
%{label: gettext("Date"), key: "date"}, %{label: gettext("Date"), key: :date},
%{label: nil, key: "actions", sortable: false} %{label: nil, key: "actions", sortable: false}
] ]
@ -101,17 +101,17 @@ defmodule CanneryWeb.RangeLive.Index do
|> Enum.into(%{}, fn %{key: key} -> |> Enum.into(%{}, fn %{key: key} ->
value = value =
case key do case key do
"name" -> :name ->
{shot_group.ammo_group.ammo_type.name, {shot_group.ammo_group.ammo_type.name,
live_patch(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), to: Routes.ammo_group_show_path(Endpoint, :show, shot_group.ammo_group),
class: "link" class: "link"
)} )}
"date" -> :date ->
date |> display_date() date |> display_date()
"actions" -> :actions ->
~H""" ~H"""
<div class="px-4 py-2 space-x-4 flex justify-center items-center"> <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), <%= live_patch to: Routes.range_index_path(Endpoint, :edit, shot_group),
@ -134,7 +134,7 @@ defmodule CanneryWeb.RangeLive.Index do
""" """
key -> key ->
shot_group |> Map.get(key |> String.to_existing_atom()) shot_group |> Map.get(key)
end end
{key, value} {key, value}

View File

@ -156,7 +156,7 @@ msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:160 #: 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/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36 #: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots" msgid "Record shots"

View File

@ -169,7 +169,7 @@ msgid "Why not get some ready to shoot?"
msgstr "Warum nicht einige für den Schießstand auswählen?" msgstr "Warum nicht einige für den Schießstand auswählen?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:160 #: 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/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36 #: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots" msgid "Record shots"

View File

@ -376,7 +376,7 @@ msgid "Price paid"
msgstr "Kaufpreis" msgstr "Kaufpreis"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:52 #: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:" msgid "Price paid:"
msgstr "Kaufpreis:" msgstr "Kaufpreis:"
@ -601,7 +601,7 @@ msgstr "Munitionsgruppe verschieben"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80 #: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:217 #: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo" msgid "Move ammo"
msgstr "Munition verschieben" msgstr "Munition verschieben"
@ -616,8 +616,8 @@ msgid "Shot log"
msgstr "Schießkladde" msgstr "Schießkladde"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:53 #: lib/cannery_web/components/ammo_group_card.ex:60
#: lib/cannery_web/live/ammo_group_live/index.ex:134 #: 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:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118 #: lib/cannery_web/live/ammo_type_live/index.ex:118
@ -682,12 +682,12 @@ msgid "New password"
msgstr "Neues Passwort" msgstr "Neues Passwort"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:157 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage" msgid "Stage"
msgstr "Markiert" msgstr "Markiert"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:157 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage" msgid "Unstage"
msgstr "Demarkiert" msgstr "Demarkiert"
@ -942,7 +942,7 @@ msgid "Total # of ammo"
msgstr "Summe aller Patronen" msgstr "Summe aller Patronen"
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/components/ammo_group_card.ex:61 #: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:" msgid "Container:"
msgstr "Behälter" msgstr "Behälter"
@ -952,3 +952,13 @@ msgstr "Behälter"
#: lib/cannery_web/live/container_live/show.html.heex:90 #: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used" msgid "Show used"
msgstr "" 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 ""

View File

@ -188,7 +188,7 @@ msgstr ""
"%{multiplier}" "%{multiplier}"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:524 #: lib/cannery/ammo.ex:535
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -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?" msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:193 #: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71 #: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
msgstr "Sind Sie sicher, dass sie diese Munition löschen möchten?" msgstr "Sind Sie sicher, dass sie diese Munition löschen möchten?"

View File

@ -361,7 +361,7 @@ msgid "Price paid"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:52 #: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:" msgid "Price paid:"
msgstr "" msgstr ""
@ -584,7 +584,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80 #: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:217 #: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -599,8 +599,8 @@ msgid "Shot log"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:53 #: lib/cannery_web/components/ammo_group_card.ex:60
#: lib/cannery_web/live/ammo_group_live/index.ex:134 #: 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:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118 #: lib/cannery_web/live/ammo_type_live/index.ex:118
@ -665,12 +665,12 @@ msgid "New password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:157 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:157 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
@ -925,7 +925,7 @@ msgid "Total # of ammo"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:61 #: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
@ -935,3 +935,13 @@ msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:90 #: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used" msgid "Show used"
msgstr "" 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 ""

View File

@ -157,7 +157,7 @@ msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:160 #: 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/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36 #: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots" msgid "Record shots"

View File

@ -362,7 +362,7 @@ msgid "Price paid"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:52 #: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:" msgid "Price paid:"
msgstr "" msgstr ""
@ -585,7 +585,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80 #: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:217 #: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -600,8 +600,8 @@ msgid "Shot log"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:53 #: lib/cannery_web/components/ammo_group_card.ex:60
#: lib/cannery_web/live/ammo_group_live/index.ex:134 #: 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:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118 #: lib/cannery_web/live/ammo_type_live/index.ex:118
@ -666,12 +666,12 @@ msgid "New password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:157 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:157 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
@ -926,7 +926,7 @@ msgid "Total # of ammo"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/components/ammo_group_card.ex:61 #: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
@ -936,3 +936,13 @@ msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:90 #: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used" msgid "Show used"
msgstr "" 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 ""

View File

@ -171,7 +171,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:524 #: lib/cannery/ammo.ex:535
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -86,7 +86,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:193 #: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71 #: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
msgstr "" msgstr ""

View File

@ -170,7 +170,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:524 #: lib/cannery/ammo.ex:535
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -169,7 +169,7 @@ msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:160 #: 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/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36 #: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots" msgid "Record shots"

View File

@ -376,7 +376,7 @@ msgid "Price paid"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:52 #: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:" msgid "Price paid:"
msgstr "" msgstr ""
@ -599,7 +599,7 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80 #: lib/cannery_web/components/move_ammo_group_component.ex:80
#: lib/cannery_web/live/ammo_group_live/index.ex:217 #: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -614,8 +614,8 @@ msgid "Shot log"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/components/ammo_group_card.ex:53 #: lib/cannery_web/components/ammo_group_card.ex:60
#: lib/cannery_web/live/ammo_group_live/index.ex:134 #: 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:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44 #: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118 #: lib/cannery_web/live/ammo_type_live/index.ex:118
@ -680,12 +680,12 @@ msgid "New password"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:157 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:157 #: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
@ -940,7 +940,7 @@ msgid "Total # of ammo"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/cannery_web/components/ammo_group_card.ex:61 #: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
@ -950,3 +950,13 @@ msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:90 #: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used" msgid "Show used"
msgstr "" 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 ""

View File

@ -186,7 +186,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery/ammo.ex:524 #: lib/cannery/ammo.ex:535
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -100,7 +100,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Está seguro que quiere eliminar la invitación para %{name}?" msgstr "Está seguro que quiere eliminar la invitación para %{name}?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:193 #: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71 #: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
msgstr "Está seguro que desea eliminar esta munición?" msgstr "Está seguro que desea eliminar esta munición?"

View File

@ -14,71 +14,60 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.12.1\n" "X-Generator: Weblate 4.12.1\n"
## This file is a PO Template file. # # This file is a PO Template file.
## # #
## "msgid"s here are often extracted from source code. # # "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic # # Add new translations manually only if they're dynamic
## translations that can't be statically extracted. # # translations that can't be statically extracted.
## # #
## Run "mix gettext.extract" to bring this file up to # # Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no # # date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. # # effect: edit them in PO (.po) files instead.
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42 #: lib/cannery_web/live/ammo_group_live/index.html.heex:42
msgid "Add Ammo" msgid "Add Ammo"
msgstr "ajouter munition" msgstr "ajouter munition"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:37 #: lib/cannery_web/live/ammo_group_live/index.html.heex:37
msgid "Add your first box!" msgid "Add your first box!"
msgstr "Ajoutez votre première caisse !" msgstr "Ajoutez votre première caisse !"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.html.heex:12 #: lib/cannery_web/live/container_live/index.html.heex:12
msgid "Add your first container!" msgid "Add your first container!"
msgstr "Ajoutez votre premier conteneur!" msgstr "Ajoutez votre premier conteneur!"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:12 #: lib/cannery_web/live/ammo_type_live/index.html.heex:12
msgid "Add your first type!" msgid "Add your first type!"
msgstr "Ajoutez votre premier type!" msgstr "Ajoutez votre premier type!"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:15 #: lib/cannery_web/templates/user_settings/edit.html.heex:15
#: lib/cannery_web/templates/user_settings/edit.html.heex:44 #: lib/cannery_web/templates/user_settings/edit.html.heex:44
msgid "Change email" msgid "Change email"
msgstr "Changer le mél" msgstr "Changer le mél"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:58 #: lib/cannery_web/templates/user_settings/edit.html.heex:58
#: lib/cannery_web/templates/user_settings/edit.html.heex:99 #: lib/cannery_web/templates/user_settings/edit.html.heex:99
msgid "Change password" msgid "Change password"
msgstr "Changer le mot de passe" msgstr "Changer le mot de passe"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:17 #: lib/cannery_web/live/invite_live/index.html.heex:17
msgid "Create Invite" msgid "Create Invite"
msgstr "Créer une invitation" msgstr "Créer une invitation"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:142 #: lib/cannery_web/templates/user_settings/edit.html.heex:142
msgid "Delete User" msgid "Delete User"
msgstr "Supprimer utilisateur" msgstr "Supprimer utilisateur"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_registration/new.html.heex:52 #: 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_reset_password/new.html.heex:3
#: lib/cannery_web/templates/user_session/new.html.heex:45 #: lib/cannery_web/templates/user_session/new.html.heex:45
msgid "Forgot your password?" msgid "Forgot your password?"
msgstr "Mot de passe oublié?" msgstr "Mot de passe oublié?"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:12 #: lib/cannery_web/live/invite_live/index.html.heex:12
msgid "Invite someone new!" msgid "Invite someone new!"
msgstr "Invitez une nouvelle personne!" msgstr "Invitez une nouvelle personne!"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:112 #: lib/cannery_web/components/topbar.ex:112
#: lib/cannery_web/templates/user_confirmation/new.html.heex:30 #: lib/cannery_web/templates/user_confirmation/new.html.heex:30
#: lib/cannery_web/templates/user_registration/new.html.heex:48 #: lib/cannery_web/templates/user_registration/new.html.heex:48
@ -89,27 +78,22 @@ msgstr "Invitez une nouvelle personne!"
msgid "Log in" msgid "Log in"
msgstr "Se connecter" msgstr "Se connecter"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/index.html.heex:14 #: lib/cannery_web/live/tag_live/index.html.heex:14
msgid "Make your first tag!" msgid "Make your first tag!"
msgstr "Faîtes votre premier tag!" msgstr "Faîtes votre premier tag!"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_type_live/index.html.heex:17 #: lib/cannery_web/live/ammo_type_live/index.html.heex:17
msgid "New Ammo type" msgid "New Ammo type"
msgstr "Nouveau type de munition" msgstr "Nouveau type de munition"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.html.heex:17 #: lib/cannery_web/live/container_live/index.html.heex:17
msgid "New Container" msgid "New Container"
msgstr "Nouveau conteneur" msgstr "Nouveau conteneur"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/tag_live/index.html.heex:19 #: lib/cannery_web/live/tag_live/index.html.heex:19
msgid "New Tag" msgid "New Tag"
msgstr "Nouveau tag" msgstr "Nouveau tag"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/topbar.ex:105 #: lib/cannery_web/components/topbar.ex:105
#: lib/cannery_web/templates/user_confirmation/new.html.heex:25 #: lib/cannery_web/templates/user_confirmation/new.html.heex:25
#: lib/cannery_web/templates/user_registration/new.html.heex:3 #: lib/cannery_web/templates/user_registration/new.html.heex:3
@ -120,19 +104,16 @@ msgstr "Nouveau tag"
msgid "Register" msgid "Register"
msgstr "Senregistrer" msgstr "Senregistrer"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_confirmation/new.html.heex:3 #: lib/cannery_web/templates/user_confirmation/new.html.heex:3
#: lib/cannery_web/templates/user_confirmation/new.html.heex:16 #: lib/cannery_web/templates/user_confirmation/new.html.heex:16
msgid "Resend confirmation instructions" msgid "Resend confirmation instructions"
msgstr "Renvoyer les instructions de confirmation" msgstr "Renvoyer les instructions de confirmation"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:34 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:34
msgid "Reset password" msgid "Reset password"
msgstr "Réinitialisé le mot de passe" msgstr "Réinitialisé le mot de passe"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:46
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
@ -143,84 +124,69 @@ msgstr "Réinitialisé le mot de passe"
msgid "Save" msgid "Save"
msgstr "Sauvegarder" msgstr "Sauvegarder"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_reset_password/new.html.heex:16 #: lib/cannery_web/templates/user_reset_password/new.html.heex:16
msgid "Send instructions to reset password" msgid "Send instructions to reset password"
msgstr "Envoyer les instructions pour réinitialiser le mot de passe" msgstr "Envoyer les instructions pour réinitialiser le mot de passe"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/show.html.heex:65 #: lib/cannery_web/live/container_live/show.html.heex:65
msgid "Why not add one?" msgid "Why not add one?"
msgstr "Pourquoi pas en ajouter un?" msgstr "Pourquoi pas en ajouter un?"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:52 #: lib/cannery_web/live/container_live/edit_tags_component.html.heex:52
msgid "Add" msgid "Add"
msgstr "Ajouter" msgstr "Ajouter"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:17 #: lib/cannery_web/live/range_live/index.html.heex:17
msgid "Stage ammo" msgid "Stage ammo"
msgstr "Munition préparée" msgstr "Munition préparée"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/range_live/index.html.heex:12 #: lib/cannery_web/live/range_live/index.html.heex:12
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "Pourquoi pas en préparer pour tirer?" msgstr "Pourquoi pas en préparer pour tirer?"
#, elixir-autogen, elixir-format #: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/index.ex:160
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91 #: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36 #: lib/cannery_web/live/range_live/index.html.heex:36
#: lib/cannery_web/live/ammo_group_live/index.ex:151
msgid "Record shots" msgid "Record shots"
msgstr "Enregistrer des tirs" msgstr "Enregistrer des tirs"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:89 #: lib/cannery_web/components/move_ammo_group_component.ex:89
msgid "Add another container!" msgid "Add another container!"
msgstr "Ajoutez un autre conteneur!" msgstr "Ajoutez un autre conteneur!"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85 #: lib/cannery_web/live/ammo_group_live/show.html.heex:85
msgid "Move containers" msgid "Move containers"
msgstr "Déplacer les conteneurs" msgstr "Déplacer les conteneurs"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:127 #: lib/cannery_web/components/move_ammo_group_component.ex:127
msgid "Select" msgid "Select"
msgstr "Sélectionner" msgstr "Sélectionner"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.html.heex:33 #: lib/cannery_web/live/invite_live/index.html.heex:33
msgid "Copy to clipboard" msgid "Copy to clipboard"
msgstr "Copier dans le presse-papier" msgstr "Copier dans le presse-papier"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:20 #: lib/cannery_web/live/ammo_group_live/index.html.heex:20
msgid "add a container first" msgid "add a container first"
msgstr "ajouter un conteneur en premier" msgstr "ajouter un conteneur en premier"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66
msgid "Create" msgid "Create"
msgstr "Créer" msgstr "Créer"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:113 #: lib/cannery_web/templates/user_settings/edit.html.heex:113
msgid "Change Language" msgid "Change Language"
msgstr "Changer la langue" msgstr "Changer la langue"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_settings/edit.html.heex:134 #: lib/cannery_web/templates/user_settings/edit.html.heex:134
msgid "Change language" msgid "Change language"
msgstr "Changer la langue" msgstr "Changer la langue"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55 #: lib/cannery_web/live/ammo_group_live/show.html.heex:55
msgid "View in Catalog" msgid "View in Catalog"
msgstr "" msgstr "Voir en catalogue"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.html.heex:31 #: lib/cannery_web/live/ammo_group_live/index.html.heex:31
msgid "add an ammo type first" msgid "add an ammo type first"
msgstr "" msgstr "Ajoutez d'abord un type de munitions"

File diff suppressed because it is too large Load Diff

View File

@ -14,62 +14,52 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.12\n" "X-Generator: Weblate 4.12\n"
## This file is a PO Template file. # # This file is a PO Template file.
## # #
## "msgid"s here are often extracted from source code. # # "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic # # Add new translations manually only if they're dynamic
## translations that can't be statically extracted. # # translations that can't be statically extracted.
## # #
## Run "mix gettext.extract" to bring this file up to # # Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no # # date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. # # effect: edit them in PO (.po) files instead.
#, elixir-autogen, elixir-format
#: lib/cannery/containers.ex:140 #: lib/cannery/containers.ex:140
msgid "Container must be empty before deleting" msgid "Container must be empty before deleting"
msgstr "Le conteneur doit être vide pour être supprimé" msgstr "Le conteneur doit être vide pour être supprimé"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:69
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:71
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "Impossible de supprimer %{name} : %{error}" msgstr "Impossible de supprimer %{name} : %{error}"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/index.ex:57 #: lib/cannery_web/live/container_live/index.ex:57
msgid "Could not find that container" msgid "Could not find that container"
msgstr "Impossible de trouver ce conteneur" msgstr "Impossible de trouver ce conteneur"
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_settings_controller.ex:84 #: lib/cannery_web/controllers/user_settings_controller.ex:84
msgid "Email change link is invalid or it has expired." msgid "Email change link is invalid or it has expired."
msgstr "Le lien de changement de mél est invalide ou a expiré." msgstr "Le lien de changement de mél est invalide ou a expiré."
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/error/error.html.heex:8 #: lib/cannery_web/templates/error/error.html.heex:8
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/error/error.html.heex:28 #: lib/cannery_web/templates/error/error.html.heex:28
msgid "Go back home" msgid "Go back home"
msgstr "Retour au menu principal" msgstr "Retour au menu principal"
#, elixir-autogen, elixir-format
#: lib/cannery_web/views/error_view.ex:11 #: lib/cannery_web/views/error_view.ex:11
msgid "Internal Server Error" msgid "Internal Server Error"
msgstr "Erreur interne du serveur" msgstr "Erreur interne du serveur"
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_session_controller.ex:17 #: lib/cannery_web/controllers/user_session_controller.ex:17
msgid "Invalid email or password" msgid "Invalid email or password"
msgstr "Mél ou mot de passe invalide" msgstr "Mél ou mot de passe invalide"
#, elixir-autogen, elixir-format
#: lib/cannery_web/views/error_view.ex:9 #: lib/cannery_web/views/error_view.ex:9
msgid "Not found" msgid "Not found"
msgstr "Pas trouvé" msgstr "Pas trouvé"
#, elixir-autogen, elixir-format
#: lib/cannery_web/templates/user_registration/new.html.heex:16 #: lib/cannery_web/templates/user_registration/new.html.heex:16
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:16 #: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
#: lib/cannery_web/templates/user_settings/edit.html.heex:21 #: lib/cannery_web/templates/user_settings/edit.html.heex:21
@ -80,90 +70,73 @@ msgstr ""
"Oups, quelque chose sest mal passé! Veuillez vérifier les erreurs en " "Oups, quelque chose sest mal passé! Veuillez vérifier les erreurs en "
"dessous." "dessous."
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_reset_password_controller.ex:63 #: lib/cannery_web/controllers/user_reset_password_controller.ex:63
msgid "Reset password link is invalid or it has expired." msgid "Reset password link is invalid or it has expired."
msgstr "Le lien de réinitialisation de mot de passe est invalide ou expiré." msgstr "Le lien de réinitialisation de mot de passe est invalide ou expiré."
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_registration_controller.ex:25 #: lib/cannery_web/controllers/user_registration_controller.ex:25
#: lib/cannery_web/controllers/user_registration_controller.ex:56 #: lib/cannery_web/controllers/user_registration_controller.ex:56
msgid "Sorry, public registration is disabled" msgid "Sorry, public registration is disabled"
msgstr "Désolé, lenregistrement public est désactivé" msgstr "Désolé, lenregistrement public est désactivé"
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_registration_controller.ex:15 #: lib/cannery_web/controllers/user_registration_controller.ex:15
#: lib/cannery_web/controllers/user_registration_controller.ex:46 #: lib/cannery_web/controllers/user_registration_controller.ex:46
msgid "Sorry, this invite was not found or expired" msgid "Sorry, this invite was not found or expired"
msgstr "Désolé, cette invitation nest pas trouvée ou est expirée" msgstr "Désolé, cette invitation nest pas trouvée ou est expirée"
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_settings_controller.ex:99 #: lib/cannery_web/controllers/user_settings_controller.ex:99
msgid "Unable to delete user" msgid "Unable to delete user"
msgstr "Impossible de supprimer lutilisateur·ice" msgstr "Impossible de supprimer lutilisateur·ice"
#, elixir-autogen, elixir-format
#: lib/cannery_web/views/error_view.ex:10 #: lib/cannery_web/views/error_view.ex:10
msgid "Unauthorized" msgid "Unauthorized"
msgstr "Non autorisé·e" msgstr "Non autorisé·e"
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_confirmation_controller.ex:54 #: lib/cannery_web/controllers/user_confirmation_controller.ex:54
msgid "User confirmation link is invalid or it has expired." msgid "User confirmation link is invalid or it has expired."
msgstr "Le lien de confirmation dutilisateur·ice est invalide ou a expiré." msgstr "Le lien de confirmation dutilisateur·ice est invalide ou a expiré."
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/invite_live/index.ex:18 #: lib/cannery_web/live/invite_live/index.ex:18
msgid "You are not authorized to view this page" msgid "You are not authorized to view this page"
msgstr "Vous nêtes pas autorisé·e à voir cette page" msgstr "Vous nêtes pas autorisé·e à voir cette page"
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_auth.ex:177 #: lib/cannery_web/controllers/user_auth.ex:177
msgid "You are not authorized to view this page." msgid "You are not authorized to view this page."
msgstr "Vous nêtes pas autorisé·e à voir cette page." msgstr "Vous nêtes pas autorisé·e à voir cette page."
#, elixir-autogen, elixir-format
#: lib/cannery/accounts/user.ex:130 #: lib/cannery/accounts/user.ex:130
msgid "did not change" msgid "did not change"
msgstr "est inchangé" msgstr "est inchangé"
#, elixir-autogen, elixir-format
#: lib/cannery/accounts/user.ex:151 #: lib/cannery/accounts/user.ex:151
msgid "does not match password" msgid "does not match password"
msgstr "le mot de passe ne correspond pas" msgstr "le mot de passe ne correspond pas"
#, elixir-autogen, elixir-format
#: lib/cannery/accounts/user.ex:188 #: lib/cannery/accounts/user.ex:188
msgid "is not valid" msgid "is not valid"
msgstr "nest pas valide" msgstr "nest pas valide"
#, elixir-autogen, elixir-format
#: lib/cannery/accounts/user.ex:84 #: lib/cannery/accounts/user.ex:84
msgid "must have the @ sign and no spaces" msgid "must have the @ sign and no spaces"
msgstr "doit contenir le symbole @ et aucune espace" msgstr "doit contenir le symbole @ et aucune espace"
#, elixir-autogen, elixir-format
#: lib/cannery/tags.ex:40 #: lib/cannery/tags.ex:40
msgid "Tag not found" msgid "Tag not found"
msgstr "Tag pas trouvé" msgstr "Tag pas trouvé"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30 #: lib/cannery_web/live/container_live/edit_tags_component.ex:30
msgid "Tag could not be added" msgid "Tag could not be added"
msgstr "Le tag na pas pu être ajouté" msgstr "Le tag na pas pu être ajouté"
#, elixir-autogen, elixir-format
#: lib/cannery/activity_log/shot_group.ex:115 #: lib/cannery/activity_log/shot_group.ex:115
msgid "Count must be at least 1" msgid "Count must be at least 1"
msgstr "Le nombre doit être au moins égal à 1" msgstr "Le nombre doit être au moins égal à 1"
#, elixir-autogen, elixir-format
#: lib/cannery/activity_log/shot_group.ex:74 #: lib/cannery/activity_log/shot_group.ex:74
#: lib/cannery/activity_log/shot_group.ex:111 #: lib/cannery/activity_log/shot_group.ex:111
msgid "Count must be less than %{count}" msgid "Count must be less than %{count}"
msgstr "La quantité doit être inférieur à %{count}" msgstr "La quantité doit être inférieur à %{count}"
#, elixir-autogen, elixir-format
#: lib/cannery_web/controllers/user_auth.ex:39 #: lib/cannery_web/controllers/user_auth.ex:39
#: lib/cannery_web/controllers/user_auth.ex:161 #: lib/cannery_web/controllers/user_auth.ex:161
msgid "You must confirm your account and log in to access this page." msgid "You must confirm your account and log in to access this page."
@ -171,32 +144,27 @@ msgstr ""
"Vous devez dabord confirmer votre compte et vous connecter pour accéder à " "Vous devez dabord confirmer votre compte et vous connecter pour accéder à "
"cette page." "cette page."
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/container_live/edit_tags_component.ex:52 #: lib/cannery_web/live/container_live/edit_tags_component.ex:52
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "Le tag na pas pu être retiré" msgstr "Le tag na pas pu être retiré"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:156 #: lib/cannery_web/live/ammo_group_live/form_component.ex:156
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "Impossible d'analyser le nombre de copies" msgstr "Impossible d'analyser le nombre de copies"
#, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/form_component.ex:141 #: lib/cannery_web/live/ammo_group_live/form_component.ex:141
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid ""
"Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}" msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"
#, elixir-autogen, elixir-format #: lib/cannery/ammo.ex:407
#: lib/cannery/ammo.ex:524
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr "Multiplicateur invalide"
#, elixir-autogen, elixir-format
#: lib/cannery/ammo/ammo_group.ex:84 #: lib/cannery/ammo/ammo_group.ex:84
msgid "Please select an ammo type and container" msgid "Please select an ammo type and container"
msgstr "" msgstr "Veuillez choisir un type de munitions et un conteneur"
#, elixir-autogen, elixir-format
#: lib/cannery/activity_log/shot_group.ex:69 #: lib/cannery/activity_log/shot_group.ex:69
msgid "Please select a valid user and ammo group" msgid "Please select a valid user and ammo group"
msgstr "" msgstr "Veuillez choisir un utilisateur valide et un groupe de munitions"

View File

@ -101,7 +101,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?" msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:193 #: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71 #: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
msgstr "Êtes-vous certain·e de supprimer cette munition?" msgstr "Êtes-vous certain·e de supprimer cette munition?"

View File

@ -0,0 +1,225 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-06 23:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Translate Toolkit 3.7.3\n"
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
#, elixir-autogen, elixir-format
msgid "Add Ammo"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:37
#, elixir-autogen, elixir-format
msgid "Add your first box!"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "Add your first container!"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "Add your first type!"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:15
#: lib/cannery_web/templates/user_settings/edit.html.heex:44
#, elixir-autogen, elixir-format
msgid "Change email"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:58
#: lib/cannery_web/templates/user_settings/edit.html.heex:99
#, elixir-autogen, elixir-format
msgid "Change password"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Create Invite"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:142
#, elixir-autogen, elixir-format
msgid "Delete User"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Forgot your password?"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "Invite someone new!"
msgstr ""
#: lib/cannery_web/components/topbar.ex:112
#: lib/cannery_web/templates/user_confirmation/new.html.heex:30
#: lib/cannery_web/templates/user_registration/new.html.heex:48
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:48
#: lib/cannery_web/templates/user_reset_password/new.html.heex:30
#: lib/cannery_web/templates/user_session/new.html.heex:3
#: lib/cannery_web/templates/user_session/new.html.heex:33
#, elixir-autogen, elixir-format
msgid "Log in"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:14
#, elixir-autogen, elixir-format
msgid "Make your first tag!"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "New Ammo type"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "New Container"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:19
#, elixir-autogen, elixir-format
msgid "New Tag"
msgstr ""
#: lib/cannery_web/components/topbar.ex:105
#: lib/cannery_web/templates/user_confirmation/new.html.heex:25
#: lib/cannery_web/templates/user_registration/new.html.heex:3
#: lib/cannery_web/templates/user_registration/new.html.heex:42
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:43
#: lib/cannery_web/templates/user_reset_password/new.html.heex:25
#: lib/cannery_web/templates/user_session/new.html.heex:40
#, elixir-autogen, elixir-format
msgid "Register"
msgstr ""
#: lib/cannery_web/templates/user_confirmation/new.html.heex:3
#: lib/cannery_web/templates/user_confirmation/new.html.heex:16
#, elixir-autogen, elixir-format
msgid "Resend confirmation instructions"
msgstr ""
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:34
#, elixir-autogen, elixir-format
msgid "Reset password"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:46
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
#: lib/cannery_web/live/range_live/form_component.html.heex:40
#: lib/cannery_web/live/tag_live/form_component.ex:91
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
#: lib/cannery_web/templates/user_reset_password/new.html.heex:16
#, elixir-autogen, elixir-format
msgid "Send instructions to reset password"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:65
#, elixir-autogen, elixir-format
msgid "Why not add one?"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:52
#, elixir-autogen, elixir-format
msgid "Add"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage ammo"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:151
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:89
#, elixir-autogen, elixir-format
msgid "Add another container!"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:85
#, elixir-autogen, elixir-format
msgid "Move containers"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:127
#, elixir-autogen, elixir-format
msgid "Select"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:33
#, elixir-autogen, elixir-format
msgid "Copy to clipboard"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:20
#, elixir-autogen, elixir-format
msgid "add a container first"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66
#, elixir-autogen, elixir-format
msgid "Create"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:113
#, elixir-autogen, elixir-format
msgid "Change Language"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:134
#, elixir-autogen, elixir-format
msgid "Change language"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "View in Catalog"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:31
#, elixir-autogen, elixir-format
msgid "add an ammo type first"
msgstr ""

View File

@ -0,0 +1,931 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-06 23:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Translate Toolkit 3.7.3\n"
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/home_live.ex:64
#, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr ""
#: lib/cannery_web/live/home_live.ex:86
#, elixir-autogen, elixir-format
msgid "Access from any internet-capable device"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:90
#, elixir-autogen, elixir-format
msgid "Admins"
msgstr ""
#: lib/cannery_web/live/home_live.ex:100
#, elixir-autogen, elixir-format
msgid "Admins:"
msgstr ""
#: lib/cannery_web/components/topbar.ex:62
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:80
#, elixir-autogen, elixir-format
msgid "Ammo"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:81
#, elixir-autogen, elixir-format
msgid "Ammo type"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:87
#: lib/cannery_web/live/ammo_type_live/show.html.heex:100
#, elixir-autogen, elixir-format
msgid "Average Price paid"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.ex:79
#, elixir-autogen, elixir-format
msgid "Background color"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:68
#, elixir-autogen, elixir-format
msgid "Brass"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Container"
msgstr ""
#: lib/cannery_web/components/topbar.ex:50
#: lib/cannery_web/live/container_live/index.ex:36
#: lib/cannery_web/live/container_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Containers"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:82
#, elixir-autogen, elixir-format
msgid "Count"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:29
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Count:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Description"
msgstr ""
#: lib/cannery_web/components/container_card.ex:31
#: lib/cannery_web/live/container_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Description:"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:59
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
#: lib/cannery_web/live/home_live.ex:61
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#, elixir-autogen, elixir-format
msgid "Edit Ammo group"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:45
#, elixir-autogen, elixir-format
msgid "Edit Ammo type"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:33
#, elixir-autogen, elixir-format
msgid "Edit Invite"
msgstr ""
#: lib/cannery_web/live/tag_live/index.ex:21
#, elixir-autogen, elixir-format
msgid "Edit Tag"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Example bullet type abbreviations"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:40
#, elixir-autogen, elixir-format
msgid "FMJ"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
#: lib/cannery_web/live/home_live.ex:95
#, elixir-autogen, elixir-format
msgid "Instance Information"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:25
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr ""
#: lib/cannery_web/live/home_live.ex:126
#, elixir-autogen, elixir-format
msgid "Invite Only"
msgstr ""
#: lib/cannery_web/components/topbar.ex:75
#: lib/cannery_web/live/invite_live/index.ex:41
#: lib/cannery_web/live/invite_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Invites"
msgstr ""
#: lib/cannery_web/templates/user_session/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Keep me logged in for 60 days"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:69
#: lib/cannery_web/live/container_live/form_component.html.heex:42
#, elixir-autogen, elixir-format
msgid "Location"
msgstr ""
#: lib/cannery_web/components/container_card.ex:43
#: lib/cannery_web/live/container_live/show.html.heex:20
#, elixir-autogen, elixir-format
msgid "Location:"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:38
#, elixir-autogen, elixir-format
msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Metal ammo can with the anime girl sticker"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:23
#, elixir-autogen, elixir-format
msgid "My cool ammo can"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
#: lib/cannery_web/live/ammo_type_live/index.ex:51
#: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/invite_live/form_component.html.heex:20
#: lib/cannery_web/live/tag_live/form_component.ex:75
#, elixir-autogen, elixir-format
msgid "Name"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:29
#, elixir-autogen, elixir-format
msgid "New Ammo type"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:31
#, elixir-autogen, elixir-format
msgid "New Container"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:37
#, elixir-autogen, elixir-format
msgid "New Invite"
msgstr ""
#: lib/cannery_web/live/tag_live/index.ex:27
#, elixir-autogen, elixir-format
msgid "New Tag"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo Types"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:120
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No containers"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No invites"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:30
#: lib/cannery_web/live/tag_live/index.html.heex:10
#, elixir-autogen, elixir-format
msgid "No tags"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:30
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/live/range_live/form_component.html.heex:29
#: lib/cannery_web/live/range_live/index.ex:82
#, elixir-autogen, elixir-format
msgid "Notes"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:35
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:46
#, elixir-autogen, elixir-format
msgid "On the bookshelf"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:83
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:47
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr ""
#: lib/cannery_web/live/home_live.ex:125
#, elixir-autogen, elixir-format
msgid "Public Signups"
msgstr ""
#: lib/cannery_web/live/home_live.ex:73
#, elixir-autogen, elixir-format
msgid "Secure:"
msgstr ""
#: lib/cannery_web/live/home_live.ex:76
#, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:79
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/templates/user_settings/edit.html.heex:3
#, elixir-autogen, elixir-format
msgid "Settings"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.ex:44
#, elixir-autogen, elixir-format
msgid "Show Ammo type"
msgstr ""
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format
msgid "Simple:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:47
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:103
#, elixir-autogen, elixir-format
msgid "Stored in"
msgstr ""
#: lib/cannery_web/components/topbar.ex:44
#: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Tags"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:6
#, elixir-autogen, elixir-format
msgid "Tags can be added to your containers to help you organize"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.ex:85
#, elixir-autogen, elixir-format
msgid "Text color"
msgstr ""
#: lib/cannery_web/live/home_live.ex:52
#, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:68
#: lib/cannery_web/live/container_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Type"
msgstr ""
#: lib/cannery_web/components/container_card.ex:37
#: lib/cannery_web/live/container_live/show.html.heex:14
#, elixir-autogen, elixir-format
msgid "Type:"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:119
#, elixir-autogen, elixir-format
msgid "Users"
msgstr ""
#: lib/cannery_web/components/invite_card.ex:20
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:24
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr ""
#: lib/cannery_web/live/home_live.ex:48
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}"
msgstr ""
#: lib/cannery_web/live/home_live.ex:77
#, elixir-autogen, elixir-format
msgid "Your data stays with you, period"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:61
#, elixir-autogen, elixir-format
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/topbar.ex:68
#: lib/cannery_web/live/ammo_group_live/index.ex:85
#, elixir-autogen, elixir-format
msgid "Range"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Range day"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:89
#: lib/cannery_web/live/range_live/index.ex:83
#, elixir-autogen, elixir-format
msgid "Date"
msgstr ""
#: lib/cannery_web/live/range_live/form_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Shots fired"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No ammo staged"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:82
#: lib/cannery_web/live/range_live/index.html.heex:33
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:81
#: lib/cannery_web/live/range_live/index.html.heex:32
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:3
#: lib/cannery_web/live/ammo_group_live/index.ex:26
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:49
#, elixir-autogen, elixir-format
msgid "Ammo groups"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:38
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Date (UTC)"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:37
#: lib/cannery_web/live/range_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Edit Shot Records"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:38
#, elixir-autogen, elixir-format
msgid "New Shot Records"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:48
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Rounds left"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:87
#: lib/cannery_web/live/range_live/index.ex:81
#, elixir-autogen, elixir-format
msgid "Rounds shot"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:44
#, elixir-autogen, elixir-format
msgid "Shot Records"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:32
#, elixir-autogen, elixir-format
msgid "Move Ammo group"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:85
#, elixir-autogen, elixir-format
msgid "No other containers"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:53
#, elixir-autogen, elixir-format
msgid "Shot log"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:125
#: 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
#, elixir-autogen, elixir-format
msgid "$%{amount}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:75
#, elixir-autogen, elixir-format
msgid "Bimetal"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:78
#, elixir-autogen, elixir-format
msgid "Confirm new password"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:32
#: lib/cannery_web/templates/user_settings/edit.html.heex:87
#, elixir-autogen, elixir-format
msgid "Current password"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:71
#, elixir-autogen, elixir-format
msgid "New password"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:148
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:148
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: 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
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
#: lib/cannery_web/templates/layout/live.html.heex:50
#, elixir-autogen, elixir-format
msgid "Reconnecting..."
msgstr ""
#: lib/cannery_web/templates/layout/live.html.heex:37
#, elixir-autogen, elixir-format
msgid "Loading..."
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:27
#: lib/cannery_web/live/container_live/show.ex:95
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:46
#: lib/cannery_web/live/container_live/show.ex:96
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr ""
#: lib/cannery_web/components/container_card.ex:55
#: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format
msgid "Rounds:"
msgstr ""
#: lib/cannery_web/live/container_live/show.ex:94
#, elixir-autogen, elixir-format
msgid "Show %{name}"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:113
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:84
#, elixir-autogen, elixir-format
msgid "% left"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:43
#, elixir-autogen, elixir-format
msgid "Current value:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:36
#, elixir-autogen, elixir-format
msgid "Original cost:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:13
#, elixir-autogen, elixir-format
msgid "Original count:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:18
#, elixir-autogen, elixir-format
msgid "Percentage left:"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:116
#, elixir-autogen, elixir-format
msgid "Rounds used"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75
#, elixir-autogen, elixir-format
msgid "Current # of rounds:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83
#, elixir-autogen, elixir-format
msgid "Total rounds shot:"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#, elixir-autogen, elixir-format
msgid "Confirm your account"
msgstr ""
#: lib/cannery_web/controllers/user_reset_password_controller.ex:9
#, elixir-autogen, elixir-format
msgid "Forgot your password?"
msgstr ""
#: lib/cannery_web/controllers/user_session_controller.ex:8
#, elixir-autogen, elixir-format
msgid "Log in"
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:35
#, elixir-autogen, elixir-format
msgid "Register"
msgstr ""
#: lib/cannery_web/controllers/user_reset_password_controller.ex:36
#, elixir-autogen, elixir-format
msgid "Reset your password"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:36
#: lib/cannery_web/live/range_live/index.ex:26
#, elixir-autogen, elixir-format
msgid "Record Shots"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:58
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:34
#, elixir-autogen, elixir-format
msgid "Ammo types"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:87
#, elixir-autogen, elixir-format
msgid "Added on"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:41
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:91
#, elixir-autogen, elixir-format
msgid "Added on:"
msgstr ""
#: lib/cannery_web/components/user_card.ex:30
#, elixir-autogen, elixir-format
msgid "User registered on"
msgstr ""
#: lib/cannery_web/templates/user_registration/new.html.heex:37
#: lib/cannery_web/templates/user_settings/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "English"
msgstr ""
#: lib/cannery_web/templates/user_registration/new.html.heex:37
#: lib/cannery_web/templates/user_settings/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "French"
msgstr ""
#: lib/cannery_web/templates/user_registration/new.html.heex:37
#: lib/cannery_web/templates/user_settings/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "German"
msgstr ""
#: lib/cannery_web/templates/user_registration/new.html.heex:33
#, elixir-autogen, elixir-format
msgid "Language"
msgstr ""
#: lib/cannery_web/live/home_live.ex:147
#, elixir-autogen, elixir-format
msgid "Get involved!"
msgstr ""
#: lib/cannery_web/live/home_live.ex:164
#, elixir-autogen, elixir-format
msgid "Help translate"
msgstr ""
#: lib/cannery_web/live/home_live.ex:173
#, elixir-autogen, elixir-format
msgid "Report bugs or request features"
msgstr ""
#: lib/cannery_web/live/home_live.ex:155
#, elixir-autogen, elixir-format
msgid "View the source code"
msgstr ""
#: lib/cannery_web/components/topbar.ex:56
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Catalog"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:40
#, elixir-autogen, elixir-format
msgid "Edit Ammo"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:38
#, elixir-autogen, elixir-format
msgid "Move Ammo"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:90
#, elixir-autogen, elixir-format
msgid "No ammo in this container"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:39
#, elixir-autogen, elixir-format
msgid "Show Ammo"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.html.heex:108
#, elixir-autogen, elixir-format
msgid "This ammo is not in a container"
msgstr ""
#: lib/cannery_web/components/container_card.ex:50
#: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format
msgid "Packs:"
msgstr ""
#: lib/cannery_web/components/topbar.ex:24
#: lib/cannery_web/live/home_live.ex:42
#, elixir-autogen, elixir-format
msgid "Cannery logo"
msgstr ""
#: lib/cannery_web/live/home_live.ex:44
#, elixir-autogen, elixir-format
msgid "isn't he cute >:3"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
#, elixir-autogen, elixir-format
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""

View File

@ -0,0 +1,108 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-06 23:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Translate Toolkit 3.7.3\n"
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/accounts/email.ex:30
#, elixir-autogen, elixir-format
msgid "Confirm your %{name} account"
msgstr ""
#: lib/cannery_web/templates/email/confirm_email.html.eex:3
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
#: lib/cannery_web/templates/email/reset_password.html.eex:3
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
#: lib/cannery_web/templates/email/update_email.html.eex:3
#: lib/cannery_web/templates/email/update_email.txt.eex:2
#, elixir-autogen, elixir-format
msgid "Hi %{email},"
msgstr ""
#: lib/cannery_web/templates/email/confirm_email.txt.eex:10
#, elixir-autogen, elixir-format
msgid "If you didn't create an account at %{url}, please ignore this."
msgstr ""
#: lib/cannery_web/templates/email/reset_password.txt.eex:8
#: lib/cannery_web/templates/email/update_email.txt.eex:8
#, elixir-autogen, elixir-format
msgid "If you didn't request this change from %{url}, please ignore this."
msgstr ""
#: lib/cannery/accounts/email.ex:37
#, elixir-autogen, elixir-format
msgid "Reset your %{name} password"
msgstr ""
#: lib/cannery/accounts/email.ex:44
#, elixir-autogen, elixir-format
msgid "Update your %{name} email"
msgstr ""
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}!"
msgstr ""
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}%!"
msgstr ""
#: lib/cannery_web/templates/email/update_email.html.eex:8
#: lib/cannery_web/templates/email/update_email.txt.eex:4
#, elixir-autogen, elixir-format
msgid "You can change your email by visiting the URL below:"
msgstr ""
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
#, elixir-autogen, elixir-format
msgid "You can confirm your account by visiting the URL below:"
msgstr ""
#: lib/cannery_web/templates/email/reset_password.html.eex:8
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
#, elixir-autogen, elixir-format
msgid "You can reset your password by visiting the URL below:"
msgstr ""
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
#, elixir-autogen, elixir-format
msgid "If you didn't create an account at %{name}, please ignore this."
msgstr ""
#: lib/cannery_web/templates/email/reset_password.html.eex:16
#: lib/cannery_web/templates/email/update_email.html.eex:16
#, elixir-autogen, elixir-format
msgid "If you didn't request this change from %{name}, please ignore this."
msgstr ""
#: lib/cannery_web/templates/layout/email.txt.eex:9
#, elixir-autogen, elixir-format
msgid "This email was sent from %{name} at %{url}, the self-hosted firearm tracker website."
msgstr ""
#: lib/cannery_web/templates/layout/email.html.heex:13
#, elixir-autogen, elixir-format
msgid "This email was sent from %{name}, the self-hosted firearm tracker website."
msgstr ""

View File

@ -0,0 +1,201 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-06 23:51+0000\n"
"PO-Revision-Date: 2022-11-07 00:18+0000\n"
"Last-Translator: pehoulihan <pehoulihan@gmail.com>\n"
"Language-Team: Irish <https://weblate.bubbletea.dev/projects/cannery/errors/"
"ga/>\n"
"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :("
"n>6 && n<11) ? 3 : 4;\n"
"X-Generator: Weblate 4.14.1\n"
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:140
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh"
#: lib/cannery_web/live/container_live/index.ex:69
#: lib/cannery_web/live/container_live/show.ex:71
#, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}"
msgstr "Ní feidir %{name} a scriosadh: %{error}"
#: lib/cannery_web/live/container_live/index.ex:57
#, elixir-autogen, elixir-format
msgid "Could not find that container"
msgstr "Ní feidir an coimeádán sin a fáil"
#: lib/cannery_web/controllers/user_settings_controller.ex:84
#, elixir-autogen, elixir-format
msgid "Email change link is invalid or it has expired."
msgstr "Tá an nasc chun an seoladh email a athrú neamhbhailí nó as dáta."
#: lib/cannery_web/templates/error/error.html.heex:8
#, elixir-autogen, elixir-format
msgid "Error"
msgstr "Fadhb"
#: lib/cannery_web/templates/error/error.html.heex:28
#, elixir-autogen, elixir-format
msgid "Go back home"
msgstr "Dul abhaile"
#: lib/cannery_web/views/error_view.ex:11
#, elixir-autogen, elixir-format
msgid "Internal Server Error"
msgstr "Fadhb freastalaí inmhéanach"
#: lib/cannery_web/controllers/user_session_controller.ex:17
#, elixir-autogen, elixir-format
msgid "Invalid email or password"
msgstr "Seoladh email nó pasfhocal neamhbhailí"
#: lib/cannery_web/views/error_view.ex:9
#, elixir-autogen, elixir-format
msgid "Not found"
msgstr "Ní feidir é a fáil"
#: lib/cannery_web/templates/user_registration/new.html.heex:16
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
#: lib/cannery_web/templates/user_settings/edit.html.heex:21
#: lib/cannery_web/templates/user_settings/edit.html.heex:64
#: lib/cannery_web/templates/user_settings/edit.html.heex:119
#, elixir-autogen, elixir-format
msgid "Oops, something went wrong! Please check the errors below."
msgstr ""
"Ta brón orainn, tá fadbh againn! Le bhur dtoil feach ar na botún seo a "
"leanais."
#: lib/cannery_web/controllers/user_reset_password_controller.ex:63
#, elixir-autogen, elixir-format
msgid "Reset password link is invalid or it has expired."
msgstr "Tá nasc an pasfhocail a athrú neamhbailí nó as dáta."
#: lib/cannery_web/controllers/user_registration_controller.ex:25
#: lib/cannery_web/controllers/user_registration_controller.ex:56
#, elixir-autogen, elixir-format
msgid "Sorry, public registration is disabled"
msgstr "Tá brón orainn, tá clarú póiblí bactha"
#: lib/cannery_web/controllers/user_registration_controller.ex:15
#: lib/cannery_web/controllers/user_registration_controller.ex:46
#, elixir-autogen, elixir-format
msgid "Sorry, this invite was not found or expired"
msgstr "Tá brón orainn, ní feidir an cuireadh seo a fáil nó tá sé as dáta"
#: lib/cannery_web/controllers/user_settings_controller.ex:99
#, elixir-autogen, elixir-format
msgid "Unable to delete user"
msgstr "Ní feidir an úsáideoir a scriosadh"
#: lib/cannery_web/views/error_view.ex:10
#, elixir-autogen, elixir-format
msgid "Unauthorized"
msgstr "Níl cead agaibh"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:54
#, elixir-autogen, elixir-format
msgid "User confirmation link is invalid or it has expired."
msgstr "Tá nasc an úsáideoir a deimhnigh neamhbailí nó as dáta."
#: lib/cannery_web/live/invite_live/index.ex:18
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page"
msgstr "Níl cead agaibh féachaint ar an leathanach seo"
#: lib/cannery_web/controllers/user_auth.ex:177
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page."
msgstr "Níl cead agaibh féachaint ar an leathanach seo."
#: lib/cannery/accounts/user.ex:130
#, elixir-autogen, elixir-format
msgid "did not change"
msgstr "Níor athraigh sé"
#: lib/cannery/accounts/user.ex:151
#, elixir-autogen, elixir-format
msgid "does not match password"
msgstr ""
#: lib/cannery/accounts/user.ex:188
#, elixir-autogen, elixir-format
msgid "is not valid"
msgstr ""
#: lib/cannery/accounts/user.ex:84
#, elixir-autogen, elixir-format
msgid "must have the @ sign and no spaces"
msgstr ""
#: lib/cannery/tags.ex:40
#, elixir-autogen, elixir-format
msgid "Tag not found"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30
#, elixir-autogen, elixir-format
msgid "Tag could not be added"
msgstr ""
#: lib/cannery/activity_log/shot_group.ex:115
#, elixir-autogen, elixir-format
msgid "Count must be at least 1"
msgstr ""
#: lib/cannery/activity_log/shot_group.ex:74
#: lib/cannery/activity_log/shot_group.ex:111
#, elixir-autogen, elixir-format
msgid "Count must be less than %{count}"
msgstr ""
#: lib/cannery_web/controllers/user_auth.ex:39
#: lib/cannery_web/controllers/user_auth.ex:161
#, elixir-autogen, elixir-format
msgid "You must confirm your account and log in to access this page."
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:52
#, elixir-autogen, elixir-format
msgid "Tag could not be removed"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:156
#, elixir-autogen, elixir-format
msgid "Could not parse number of copies"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:141
#, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr ""
#: lib/cannery/ammo.ex:407
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr ""
#: lib/cannery/ammo/ammo_group.ex:84
#, elixir-autogen, elixir-format
msgid "Please select an ammo type and container"
msgstr ""
#: lib/cannery/activity_log/shot_group.ex:69
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo group"
msgstr ""

View File

@ -0,0 +1,290 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-06 23:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Translate Toolkit 3.7.3\n"
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_type_live/form_component.ex:85
#: lib/cannery_web/live/container_live/form_component.ex:85
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126
#, elixir-autogen, elixir-format
msgid "%{name} created successfully"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:41
#: lib/cannery_web/live/ammo_type_live/show.ex:38
#: 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
#, elixir-autogen, elixir-format
msgid "%{name} deleted succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:109
#, elixir-autogen, elixir-format
msgid "%{name} disabled succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:87
#, elixir-autogen, elixir-format
msgid "%{name} enabled succesfully"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:62
#: lib/cannery_web/live/container_live/show.ex:61
#, elixir-autogen, elixir-format
msgid "%{name} has been deleted"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:67
#, elixir-autogen, elixir-format
msgid "%{name} updated succesfully"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.ex:67
#: lib/cannery_web/live/container_live/form_component.ex:67
#: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:108
#, elixir-autogen, elixir-format
msgid "%{name} updated successfully"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:29
#, elixir-autogen, elixir-format
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:102
#: lib/cannery_web/live/invite_live/index.html.heex:131
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:46
#: lib/cannery_web/live/container_live/show.html.heex:49
#: lib/cannery_web/live/tag_live/index.html.heex:38
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:49
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete the invite for %{name}?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:184
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:146
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete your account?"
msgstr ""
#: lib/cannery_web/components/topbar.ex:90
#, elixir-autogen, elixir-format
msgid "Are you sure you want to log out?"
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:74
#, elixir-autogen, elixir-format
msgid "Are you sure you want to make %{name} unlimited?"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:77
#, elixir-autogen, elixir-format
msgid "Email changed successfully."
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
#, elixir-autogen, elixir-format
msgid "If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
msgstr ""
#: lib/cannery_web/controllers/user_reset_password_controller.ex:24
#, elixir-autogen, elixir-format
msgid "If your email is in our system, you will receive instructions to reset your password shortly."
msgstr ""
#: lib/cannery_web/controllers/user_session_controller.ex:23
#, elixir-autogen, elixir-format
msgid "Logged out successfully."
msgstr ""
#: lib/cannery_web/controllers/user_reset_password_controller.ex:46
#, elixir-autogen, elixir-format
msgid "Password reset successfully."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:49
#, elixir-autogen, elixir-format
msgid "Password updated successfully."
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:74
#, elixir-autogen, elixir-format
msgid "Please check your email to verify your account"
msgstr ""
#: lib/cannery_web/live/home_live.ex:104
#, elixir-autogen, elixir-format
msgid "Register to setup %{name}"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:33
#: lib/cannery_web/live/range_live/form_component.html.heex:42
#: lib/cannery_web/live/tag_live/form_component.ex:93
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:95
#, elixir-autogen, elixir-format
msgid "Your account has been deleted"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:16
#, elixir-autogen, elixir-format
msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:36
#, elixir-autogen, elixir-format
msgid "%{name} added successfully"
msgstr ""
#: lib/cannery_web/live/container_live/show.ex:37
#, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:54
#, elixir-autogen, elixir-format
msgid "Adding..."
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.ex:56
#, elixir-autogen, elixir-format
msgid "Shots recorded successfully"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:29
#, elixir-autogen, elixir-format
msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:130
#: lib/cannery_web/live/range_live/index.ex:128
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:78
#: lib/cannery_web/live/range_live/index.ex:54
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
msgstr ""
#: lib/cannery_web/live/range_live/form_component.ex:55
#, elixir-autogen, elixir-format
msgid "Shot records updated successfully"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:38
#, elixir-autogen, elixir-format
msgid "%{email} confirmed successfully."
msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:53
#, elixir-autogen, elixir-format
msgid "Ammo moved to %{name} successfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:121
#, elixir-autogen, elixir-format
msgid "Copied to clipboard"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.ex:58
#, elixir-autogen, elixir-format
msgid "%{name} removed successfully"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:17
#: lib/cannery_web/live/ammo_group_live/index.html.heex:28
#, elixir-autogen, elixir-format
msgid "You'll need to"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr ""
#: lib/cannery_web/templates/user_settings/edit.html.heex:136
#, elixir-autogen, elixir-format
msgid "Are you sure you want to change your language?"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:65
#, elixir-autogen, elixir-format
msgid "Language updated successfully."
msgstr ""
#: lib/cannery_web/live/ammo_group_live/show.ex:50
#, elixir-autogen, elixir-format
msgid "Ammo deleted succesfully"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:68
#, elixir-autogen, elixir-format
msgid "Ammo unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:118
#, elixir-autogen, elixir-format
msgid "Ammo updated successfully"
msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:177
#, elixir-autogen, elixir-format
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
msgstr[0] ""
msgstr[1] ""
#: lib/cannery_web/live/ammo_type_live/index.ex:140
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
msgstr ""

View File

@ -85,7 +85,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/cannery_web/live/ammo_group_live/index.ex:193 #: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71 #: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
msgstr "" msgstr ""

10
priv/i18n/ga.tbx Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE martif PUBLIC "ISO 12200:1999A//DTD MARTIF core (DXFcdV04)//EN" "TBXcdv04.dtd">
<martif type="TBX">
<martifHeader>
<fileDesc>
<sourceDesc><p>Translate Toolkit</p></sourceDesc>
</fileDesc>
</martifHeader>
<text><body></body></text>
</martif>