17 Commits

Author SHA1 Message Date
b6b6cecc0a update deps
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2025-02-01 02:12:41 -05:00
08916a504f add button to resend email verification email 2025-02-01 02:12:41 -05:00
3eda522903 move staging to container 2025-02-01 02:12:41 -05:00
2e6e26006d fix style issues 2025-02-01 02:12:41 -05:00
b66d0ea8a1 add date range to range page 2025-02-01 02:12:41 -05:00
839e1d7124 fix dates not displaying properly 2025-01-31 22:33:07 -05:00
76834845a3 update deps 2025-01-12 16:51:27 -05:00
cc1413ade5 finish updating deps
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-10-26 17:16:04 -04:00
668e4c611b update gettext schema and use macros for cannery app
Some checks failed
continuous-integration/drone/push Build is failing
2024-10-26 17:07:32 -04:00
ab3d3721d6 allow filtering ammo types when creating new packs and fix some form errors not displaying on create 2024-10-26 17:07:32 -04:00
7e14f292a6 add slimselect to select elements with user content 2024-10-26 16:32:47 -04:00
16a5cb9254 fix registration page not offering all translations 2024-10-26 14:20:23 -04:00
f722f9901b update deps 2024-10-26 13:12:34 -04:00
6adae82e94 build armv7
All checks were successful
continuous-integration/drone/push Build is passing
2024-08-16 17:50:43 -04:00
a87bf15f72 build arm
All checks were successful
continuous-integration/drone/push Build is passing
2024-08-16 17:01:35 -04:00
75c0f8642b add project website to readme
All checks were successful
continuous-integration/drone/push Build is passing
2024-08-15 09:44:34 -04:00
ec782515ac improve testing db timeout
All checks were successful
continuous-integration/drone/push Build is passing
2024-07-28 13:49:26 -04:00
98 changed files with 5862 additions and 7541 deletions

View File

@ -17,7 +17,7 @@ steps:
- .mix
- name: test
image: elixir:1.17.0-otp-27-alpine
image: elixir:1.18.1-otp-27-alpine
environment:
TEST_DATABASE_URL: ecto://postgres:postgres@database/cannery_test
HOST: testing.example.tld
@ -36,7 +36,7 @@ steps:
- mix test.all
- name: build and publish stable
image: thegeeklab/drone-docker-buildx
image: plugins/docker
privileged: true
settings:
repo: shibaobun/cannery
@ -44,6 +44,8 @@ steps:
compress: true
platforms:
- linux/amd64
- linux/arm64
- linux/arm/v7
username:
from_secret: docker_username
password:
@ -54,7 +56,7 @@ steps:
- stable
- name: build and publish tagged version
image: thegeeklab/drone-docker-buildx
image: plugins/docker
privileged: true
settings:
repo: shibaobun/cannery
@ -62,6 +64,8 @@ steps:
compress: true
platforms:
- linux/amd64
- linux/arm64
- linux/arm/v7
username:
from_secret: docker_username
password:

View File

@ -1,3 +1,3 @@
elixir 1.17.0-otp-27
erlang 27.0
nodejs 22.3.0
elixir 1.18.1-otp-27
erlang 27.2.1
nodejs 23.7.0

View File

@ -1,3 +1,16 @@
# v0.9.13
- Add button to resend email verification email
- Move staging to container, rather than ammo
- Add date restriction dropdown to range page
- Fix dates not rendering properly in table
- Update deps
# v0.9.12
- Allow filtering ammo types when creating new packs
- Add SlimSelect to select elements with user content
- Fix registration page not offering all translations
- Update deps
# v0.9.11
- Fix an issue with emails not being able to be sent for real this time
- Fix some dropdowns not filling in the correct data

View File

@ -1,4 +1,4 @@
FROM elixir:1.17.0-otp-27-alpine AS build
FROM elixir:1.18.1-otp-27-alpine AS build
# install build dependencies
RUN apk add --no-cache build-base npm git python3

View File

@ -94,6 +94,7 @@ license can be found at
# Links
- [Website](https://cannery.app): Project website
- [Gitea](https://gitea.bubbletea.dev/shibao/cannery): Main repo, feature
requests and bug reports
- [Github](https://github.com/shibaobun/cannery): Source code mirror, please

View File

@ -8,6 +8,8 @@ $fa-font-path: "@fortawesome/fontawesome-free/webfonts";
@import "@fortawesome/fontawesome-free/scss/solid";
@import "@fortawesome/fontawesome-free/scss/brands";
@import "slim-select/styles";
@import "components";
/* fix firefox scrollbars */
@ -25,7 +27,7 @@ $fa-font-path: "@fortawesome/fontawesome-free/webfonts";
100% { scale: 1.0; opacity: 1; }
}
// disconnect toast
/* disconnect toast */
.phx-connected > #disconnect {
opacity: 0 !important;
pointer-events: none;
@ -152,3 +154,57 @@ $fa-font-path: "@fortawesome/fontawesome-free/webfonts";
0% { opacity: 1; }
100% { opacity: 0; }
}
.ss-main {
@apply input;
}
.ss-main.input-primary {
@apply border-primary-500 hover:border-primary-600 active:border-primary-600;
}
.ss-content {
@apply input;
}
.ss-content.input-primary {
@apply border-primary-500 hover:border-primary-600 active:border-primary-600;
}
.ss-content.ss-open-above {
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
.ss-content.ss-open-below {
border-top-left-radius: 0px;
border-top-right-radius: 0px;
}
.ss-search input[type="search"] {
@apply input;
}
.ss-content.input-primary .ss-search input[type="search"] {
@apply border-primary-500 hover:border-primary-600 active:border-primary-600;
}
.ss-content.ss-open-above .ss-search {
padding: var(--ss-spacing-l) 0 0 0;
}
.ss-content.ss-open-below .ss-search {
padding: 0 0 var(--ss-spacing-l) 0;
}
.ss-content.ss-open-above .ss-list > *:not(:first-child) {
margin: var(--ss-spacing-l) 0 0 0;
}
.ss-content.ss-open-below .ss-list > *:not(:last-child) {
margin: 0 0 var(--ss-spacing-l) 0;
}
.ss-content .ss-list .ss-option {
border-radius: var(--ss-border-radius);
}

View File

@ -24,15 +24,16 @@ import 'phoenix_html'
// Establish Phoenix Socket and LiveView configuration.
import { Socket } from 'phoenix'
import { LiveSocket } from 'phoenix_live_view'
import topbar from 'topbar'
import ShotLogChart from './shot_log_chart'
import Date from './date'
import DateTime from './datetime'
import ShotLogChart from './shot_log_chart'
import SlimSelect from './slim_select'
import topbar from 'topbar'
const csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute('content')
const liveSocket = new LiveSocket('/live', Socket, {
params: { _csrf_token: csrfToken },
hooks: { Date, DateTime, ShotLogChart }
hooks: { Date, DateTime, ShotLogChart, SlimSelect }
})
// Show progress bar on live navigation and form submits

View File

@ -1,7 +1,7 @@
export default {
displayDate (el) {
const date =
Intl.DateTimeFormat([], { timeZone: 'Etc/UTC', dateStyle: 'short' })
Intl.DateTimeFormat([], { timeZone: 'UTC', dateStyle: 'short' })
.format(new Date(el.dateTime))
el.innerText = date

View File

@ -1,7 +1,7 @@
export default {
displayDateTime (el) {
const date =
Intl.DateTimeFormat([], { dateStyle: 'short', timeStyle: 'long' })
Intl.DateTimeFormat([], { timeZone: 'UTC', dateStyle: 'short', timeStyle: 'long' })
.format(new Date(el.dateTime))
el.innerText = date

28
assets/js/slim_select.js Normal file
View File

@ -0,0 +1,28 @@
import SlimSelect from 'slim-select'
export default {
initalizeSlimSelect (el) {
// eslint-disable-next-line no-new
el.slimselect = new SlimSelect({
select: el,
settings: {
contentPosition: 'fixed'
}
})
const main = document.querySelector(`.ss-main[data-id="${el.dataset.id}"]`)
main.setAttribute('id', `${el.dataset.id}-main`)
main.setAttribute('phx-update', 'ignore')
const content = document.querySelector(`.ss-content[data-id="${el.dataset.id}"]`)
content.setAttribute('id', `${el.dataset.id}-content`)
content.setAttribute('phx-update', 'ignore')
},
updated () {
this.el.slimselect?.destroy()
this.initalizeSlimSelect(this.el)
},
mounted () {
this.initalizeSlimSelect(this.el)
}
}

8769
assets/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,8 @@
"description": " ",
"license": "MIT",
"engines": {
"node": "v22.3.0",
"npm": "10.8.1"
"node": "v23.7.0",
"npm": "10.9.2"
},
"scripts": {
"deploy": "NODE_ENV=production webpack --mode production",
@ -13,37 +13,39 @@
"test": "standard"
},
"dependencies": {
"@fortawesome/fontawesome-free": "^6.6.0",
"chart.js": "^4.4.3",
"@fortawesome/fontawesome-free": "^6.7.2",
"chart.js": "^4.4.7",
"chartjs-adapter-date-fns": "^3.0.0",
"date-fns": "^3.6.0",
"date-fns": "^4.1.0",
"phoenix": "file:../deps/phoenix",
"phoenix_html": "file:../deps/phoenix_html",
"phoenix_live_view": "file:../deps/phoenix_live_view",
"slim-select": "^2.10.0",
"topbar": "^3.0.0"
},
"devDependencies": {
"@babel/core": "^7.24.9",
"@babel/preset-env": "^7.25.0",
"autoprefixer": "^10.4.19",
"babel-loader": "^9.1.3",
"@babel/core": "^7.26.0",
"@babel/preset-env": "^7.26.0",
"autoprefixer": "^10.4.20",
"babel-loader": "^9.2.1",
"copy-webpack-plugin": "^12.0.2",
"css-loader": "^7.1.2",
"css-minimizer-webpack-plugin": "^7.0.0",
"file-loader": "^6.2.0",
"mini-css-extract-plugin": "^2.9.0",
"npm-check-updates": "^16.14.20",
"postcss": "^8.4.40",
"glob": "^11.0.1",
"mini-css-extract-plugin": "^2.9.2",
"npm-check-updates": "^17.1.13",
"postcss": "^8.5.1",
"postcss-import": "^16.1.0",
"postcss-loader": "^8.1.1",
"postcss-preset-env": "^9.6.0",
"sass": "^1.77.8",
"sass-loader": "^16.0.0",
"standard": "^17.1.0",
"tailwindcss": "^3.4.7",
"terser-webpack-plugin": "^5.3.10",
"webpack": "^5.93.0",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^5.0.4"
"postcss-preset-env": "^10.1.3",
"sass": "^1.83.1",
"sass-loader": "^16.0.4",
"standard": "^17.1.2",
"tailwindcss": "^3.4.17",
"terser-webpack-plugin": "^5.3.11",
"webpack": "^5.97.1",
"webpack-cli": "^6.0.1",
"webpack-dev-server": "^5.2.0"
}
}

View File

@ -8,6 +8,7 @@
import Config
config :cannery,
env: :dev,
ecto_repos: [Cannery.Repo],
generators: [binary_id: true]

View File

@ -14,6 +14,8 @@ config :cannery, CanneryWeb.Endpoint, cache_static_manifest: "priv/static/cache_
# Do not print debug messages in production
config :logger, level: :info
config :cannery, env: :prod
# ## SSL Support
#
# To get SSL working, you will need to add the `https` key

View File

@ -9,8 +9,9 @@ config :bcrypt_elixir, :log_rounds, 1
# to provide built-in test partitioning in CI environment.
# Run `mix help test` for more information.
config :cannery, Cannery.Repo,
pool_size: 10,
pool: Ecto.Adapters.SQL.Sandbox,
pool_size: 10
timeout: 60000
# We don't run a server during test. If one is required,
# you can enable the server option below.
@ -19,6 +20,8 @@ config :cannery, CanneryWeb.Endpoint,
secret_key_base: "S3qq9QtUdsFtlYej+HTjAVN95uP5i5tf2sPYINWSQfCKJghFj2B1+wTAoljZyHOK",
server: false
config :cannery, env: :test
# In test we don't send emails.
config :cannery, Cannery.Mailer, adapter: Swoosh.Adapters.Test

View File

@ -6,4 +6,34 @@ defmodule Cannery do
Contexts are also responsible for managing your data, regardless
if it comes from the database, an external API or others.
"""
def context do
quote do
use Gettext, backend: CanneryWeb.Gettext
import Ecto.Query
alias Cannery.Accounts.User
alias Cannery.Repo
alias Ecto.{Changeset, Multi, Queryable, UUID}
end
end
def schema do
quote do
use Ecto.Schema
use Gettext, backend: CanneryWeb.Gettext
import Ecto.{Changeset, Query}
alias Cannery.Accounts.User
alias Ecto.{Association, Changeset, Queryable, UUID}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
end
end
@doc """
When used, dispatch to the appropriate context/schema/etc.
"""
defmacro __using__(which) when is_atom(which) do
apply(__MODULE__, which, [])
end
end

View File

@ -3,10 +3,9 @@ defmodule Cannery.Accounts do
The Accounts context.
"""
import Ecto.Query, warn: false
alias Cannery.{Mailer, Repo}
alias Cannery.Accounts.{Invite, Invites, User, UserToken}
alias Ecto.{Changeset, Multi}
use Cannery, :context
alias Cannery.Mailer
alias Cannery.Accounts.{Invite, Invites, UserToken}
alias Oban.Job
## Database getters
@ -219,7 +218,7 @@ defmodule Cannery.Accounts do
with {:ok, query} <- UserToken.verify_change_email_token_query(token, context),
%UserToken{sent_to: email} <- Repo.one(query),
{:ok, _} <- Repo.transaction(user_email_multi(user, email, context)) do
{:ok, _result} <- Repo.transaction(user_email_multi(user, email, context)) do
:ok
else
_error_tuple -> :error

View File

@ -5,13 +5,8 @@ defmodule Cannery.Accounts.Invite do
`:uses_left` is defined.
"""
use Ecto.Schema
import Ecto.Changeset
alias Cannery.Accounts.User
alias Ecto.{Association, Changeset, UUID}
use Cannery, :schema
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "invites" do
field :name, :string
field :token, :string

View File

@ -3,10 +3,8 @@ defmodule Cannery.Accounts.Invites do
The Invites context.
"""
import Ecto.Query, warn: false
alias Ecto.Multi
alias Cannery.Accounts.{Invite, User}
alias Cannery.Repo
use Cannery, :context
alias Cannery.Accounts.Invite
@invite_token_length 20

View File

@ -3,11 +3,8 @@ defmodule Cannery.Accounts.User do
A Cannery user
"""
use Ecto.Schema
import Ecto.Changeset
import CanneryWeb.Gettext
alias Ecto.{Association, Changeset, UUID}
alias Cannery.Accounts.{Invite, User}
use Cannery, :schema
alias Cannery.Accounts.Invite
@derive {Jason.Encoder,
only: [
@ -20,8 +17,6 @@ defmodule Cannery.Accounts.User do
:updated_at
]}
@derive {Inspect, except: [:password]}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "users" do
field :email, :string
field :password, :string, virtual: true
@ -141,7 +136,7 @@ defmodule Cannery.Accounts.User do
|> cast(attrs, [:email])
|> validate_email()
|> case do
%{changes: %{email: _}} = changeset -> changeset
%{changes: %{email: _email}} = changeset -> changeset
%{} = changeset -> add_error(changeset, :email, dgettext("errors", "did not change"))
end
end

View File

@ -3,10 +3,7 @@ defmodule Cannery.Accounts.UserToken do
Schema for a user's session token
"""
use Ecto.Schema
import Ecto.Query
alias Cannery.Accounts.User
alias Ecto.{Association, UUID}
use Cannery, :schema
@hash_algorithm :sha256
@rand_size 32
@ -18,8 +15,6 @@ defmodule Cannery.Accounts.UserToken do
@change_email_validity_in_days 7
@session_validity_in_days 60
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "users_tokens" do
field :token, :binary
field :context, :string
@ -155,7 +150,7 @@ defmodule Cannery.Accounts.UserToken do
from t in __MODULE__, where: t.user_id == ^user.id
end
def user_and_contexts_query(user, [_ | _] = contexts) do
def user_and_contexts_query(user, [_first | _rest] = contexts) do
from t in __MODULE__, where: t.user_id == ^user.id and t.context in ^contexts
end
end

View File

@ -3,14 +3,14 @@ defmodule Cannery.ActivityLog do
The ActivityLog context.
"""
import Ecto.Query, warn: false
alias Cannery.Ammo.{Pack, Type}
alias Cannery.{Accounts.User, ActivityLog.ShotRecord, Repo}
alias Ecto.{Multi, Queryable}
use Cannery, :context
alias Cannery.{ActivityLog.ShotRecord, Ammo.Pack, Ammo.Type}
@type list_shot_records_option ::
{:search, String.t() | nil}
| {:class, Type.class() | :all | nil}
| {:start_date, String.t() | nil}
| {:end_date, String.t() | nil}
| {:pack_id, Pack.id() | nil}
@type list_shot_records_options :: [list_shot_records_option()]
@ -51,6 +51,8 @@ defmodule Cannery.ActivityLog do
|> list_shot_records_search(Keyword.get(opts, :search))
|> list_shot_records_class(Keyword.get(opts, :class))
|> list_shot_records_pack_id(Keyword.get(opts, :pack_id))
|> list_shot_records_start_date(Keyword.get(opts, :start_date))
|> list_shot_records_end_date(Keyword.get(opts, :end_date))
|> Repo.all()
end
@ -102,6 +104,20 @@ defmodule Cannery.ActivityLog do
defp list_shot_records_pack_id(query, _all), do: query
@spec list_shot_records_start_date(Queryable.t(), String.t() | nil) :: Queryable.t()
defp list_shot_records_start_date(query, start_date) when start_date |> is_binary() do
query |> where([sr: sr], sr.date >= ^Date.from_iso8601!(start_date))
end
defp list_shot_records_start_date(query, _all), do: query
@spec list_shot_records_end_date(Queryable.t(), String.t() | nil) :: Queryable.t()
defp list_shot_records_end_date(query, end_date) when end_date |> is_binary() do
query |> where([sr: sr], sr.date <= ^Date.from_iso8601!(end_date))
end
defp list_shot_records_end_date(query, _all), do: query
@doc """
Returns a count of shot records.

View File

@ -3,11 +3,8 @@ defmodule Cannery.ActivityLog.ShotRecord do
A shot record records a group of ammo shot during a range trip
"""
use Ecto.Schema
import CanneryWeb.Gettext
import Ecto.Changeset
alias Cannery.{Accounts.User, Ammo, Ammo.Pack}
alias Ecto.{Changeset, UUID}
use Cannery, :schema
alias Cannery.{Ammo, Ammo.Pack}
@derive {Jason.Encoder,
only: [

View File

@ -3,13 +3,11 @@ defmodule Cannery.Ammo do
The Ammo context.
"""
import CanneryWeb.Gettext
import Ecto.Query, warn: false
alias Cannery.{Accounts.User, Containers, Repo}
use Cannery, :context
alias Cannery.Containers
alias Cannery.Containers.{Container, ContainerTag, Tag}
alias Cannery.{ActivityLog, ActivityLog.ShotRecord}
alias Cannery.Ammo.{Pack, Type}
alias Ecto.{Changeset, Queryable}
@pack_create_limit 10_000
@pack_preloads [:type]
@ -549,7 +547,7 @@ defmodule Cannery.Ammo do
@spec list_packs_staged(Queryable.t(), staged :: boolean() | nil) :: Queryable.t()
defp list_packs_staged(query, staged) when staged |> is_boolean(),
do: query |> where([p: p], p.staged == ^staged)
do: query |> where([c: c], c.staged == ^staged)
defp list_packs_staged(query, _nil), do: query
@ -959,11 +957,10 @@ defmodule Cannery.Ammo do
defp do_create_packs(
%{"type_id" => type_id, "container_id" => container_id} = attrs,
_multiplier,
multiplier,
user
)
when is_binary(type_id) and is_binary(container_id) do
changeset =
%Pack{}
|> Pack.create_changeset(
get_type!(type_id, user),
@ -971,13 +968,68 @@ defmodule Cannery.Ammo do
user,
attrs
)
|> Changeset.add_error(:multiplier, dgettext("errors", "Invalid multiplier"))
{:error, changeset}
|> maybe_add_multiplier_error(multiplier)
|> Changeset.apply_action(:insert)
end
defp do_create_packs(invalid_attrs, _multiplier, user) do
{:error, %Pack{} |> Pack.create_changeset(nil, nil, user, invalid_attrs)}
defp do_create_packs(
%{"type_id" => type_id} = attrs,
multiplier,
user
)
when is_binary(type_id) do
%Pack{}
|> Pack.create_changeset(
get_type!(type_id, user),
nil,
user,
attrs
)
|> maybe_add_multiplier_error(multiplier)
|> Changeset.apply_action(:insert)
end
defp do_create_packs(
%{"container_id" => container_id} = attrs,
multiplier,
user
)
when is_binary(container_id) do
%Pack{}
|> Pack.create_changeset(
nil,
Containers.get_container!(container_id, user),
user,
attrs
)
|> maybe_add_multiplier_error(multiplier)
|> Changeset.apply_action(:insert)
end
defp do_create_packs(invalid_attrs, multiplier, user) do
%Pack{}
|> Pack.create_changeset(nil, nil, user, invalid_attrs)
|> maybe_add_multiplier_error(multiplier)
|> Changeset.apply_action(:insert)
end
defp maybe_add_multiplier_error(changeset, multiplier)
when multiplier >= 1 and
multiplier <= @pack_create_limit do
changeset
end
defp maybe_add_multiplier_error(changeset, multiplier) do
changeset
|> Changeset.add_error(
:multiplier,
dgettext(
"errors",
"Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}",
max: @pack_create_limit,
multiplier: multiplier
)
)
end
@spec preload_pack(Pack.t()) :: Pack.t()

View File

@ -6,32 +6,24 @@ defmodule Cannery.Ammo.Pack do
amount paid for that ammunition, or what condition it is in
"""
use Ecto.Schema
import CanneryWeb.Gettext
import Ecto.Changeset
alias Cannery.Ammo.Type
alias Cannery.{Accounts.User, Containers, Containers.Container}
alias Ecto.{Changeset, UUID}
use Cannery, :schema
alias Cannery.{Ammo.Type, Containers, Containers.Container}
@derive {Jason.Encoder,
only: [
:id,
:container_id,
:count,
:id,
:lot_number,
:notes,
:price_paid,
:lot_number,
:staged,
:type_id,
:container_id
:type_id
]}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "packs" do
field :count, :integer
field :lot_number, :string
field :notes, :string
field :price_paid, :float
field :staged, :boolean, default: false
field :lot_number, :string
field :purchased_on, :date
belongs_to :type, Type
@ -42,12 +34,11 @@ defmodule Cannery.Ammo.Pack do
end
@type t :: %__MODULE__{
id: id(),
count: integer,
id: id(),
lot_number: String.t() | nil,
notes: String.t() | nil,
price_paid: float() | nil,
staged: boolean(),
lot_number: String.t() | nil,
purchased_on: Date.t(),
type: Type.t() | nil,
type_id: Type.id(),
@ -70,34 +61,55 @@ defmodule Cannery.Ammo.Pack do
) :: changeset()
def create_changeset(
pack,
%Type{id: type_id},
%Container{id: container_id, user_id: user_id},
type,
container,
%User{id: user_id},
attrs
)
when is_binary(type_id) and is_binary(container_id) and is_binary(user_id) do
pack
|> change(type_id: type_id)
|> change(user_id: user_id)
|> change(container_id: container_id)
|> cast(attrs, [:count, :price_paid, :notes, :staged, :purchased_on, :lot_number])
|> validate_number(:count, greater_than: 0)
|> validate_number(:price_paid, greater_than_or_equal_to: 0)
|> validate_length(:lot_number, max: 255)
|> validate_required([:count, :staged, :purchased_on, :type_id, :container_id, :user_id])
when is_binary(user_id) do
type_id =
case type do
%Type{id: type_id} when is_binary(type_id) ->
type_id
_invalid_type ->
nil
end
container_id =
case container do
%Container{id: container_id, user_id: ^user_id} when is_binary(container_id) ->
container_id
_invalid_container ->
nil
end
@doc """
Invalid changeset, used to prompt user to select type and container
"""
def create_changeset(pack, _invalid_type, _invalid_container, _invalid_user, attrs) do
pack
|> cast(attrs, [:type_id, :container_id])
|> validate_required([:type_id, :container_id])
|> change(type_id: type_id)
|> change(container_id: container_id)
|> change(user_id: user_id)
|> cast(attrs, [
:count,
:lot_number,
:notes,
:price_paid,
:purchased_on
])
|> validate_required(:type_id, message: dgettext("errors", "Please select a valid type"))
|> validate_required(:container_id,
message: dgettext("errors", "Please select a valid container")
)
|> validate_number(:count, greater_than: 0)
|> validate_number(:price_paid, greater_than_or_equal_to: 0)
|> validate_length(:lot_number, max: 255)
|> add_error(:invalid, dgettext("errors", "Please select a type and container"))
|> validate_required([
:container_id,
:count,
:purchased_on,
:type_id,
:user_id
])
end
@doc false
@ -105,19 +117,22 @@ defmodule Cannery.Ammo.Pack do
def update_changeset(pack, attrs, user) do
pack
|> cast(attrs, [
:container_id,
:count,
:price_paid,
:notes,
:staged,
:purchased_on,
:lot_number,
:container_id
:notes,
:price_paid,
:purchased_on
])
|> validate_number(:count, greater_than_or_equal_to: 0)
|> validate_number(:price_paid, greater_than_or_equal_to: 0)
|> validate_container_id(user)
|> validate_length(:lot_number, max: 255)
|> validate_required([:count, :staged, :purchased_on, :container_id])
|> validate_required([
:container_id,
:count,
:purchased_on
])
end
defp validate_container_id(changeset, user) do
@ -137,7 +152,7 @@ defmodule Cannery.Ammo.Pack do
@spec range_changeset(t() | new_pack(), attrs :: map()) :: changeset()
def range_changeset(pack, attrs) do
pack
|> cast(attrs, [:count, :staged])
|> validate_required([:count, :staged])
|> cast(attrs, [:count])
|> validate_required([:count])
end
end

View File

@ -5,11 +5,8 @@ defmodule Cannery.Ammo.Type do
Contains statistical information about the ammunition.
"""
use Ecto.Schema
import Ecto.Changeset
alias Cannery.Accounts.User
use Cannery, :schema
alias Cannery.Ammo.Pack
alias Ecto.{Changeset, UUID}
@derive {Jason.Encoder,
only: [
@ -46,8 +43,6 @@ defmodule Cannery.Ammo.Type do
:shot_charge_weight,
:dram_equivalent
]}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "types" do
field :name, :string
field :desc, :string

View File

@ -3,15 +3,15 @@ defmodule Cannery.Containers do
The Containers context.
"""
import CanneryWeb.Gettext
import Ecto.Query, warn: false
alias Cannery.{Accounts.User, Ammo.Pack, Repo}
use Cannery, :context
alias Cannery.Ammo.Pack
alias Cannery.Containers.{Container, ContainerTag, Tag}
alias Ecto.{Changeset, Queryable}
@container_preloads [:tags]
@type list_containers_option :: {:search, String.t() | nil}
@type list_containers_option ::
{:search, String.t() | nil}
| {:staged, boolean() | nil}
@type list_containers_options :: [list_containers_option()]
@doc """
@ -22,7 +22,10 @@ defmodule Cannery.Containers do
iex> list_containers(%User{id: 123})
[%Container{}, ...]
iex> list_containers(%User{id: 123}, search: "cool")
iex> list_containers(%User{id: 123},
...> search: "cool",
...> staged: true
...> )
[%Container{name: "my cool container"}, ...]
"""
@ -39,9 +42,16 @@ defmodule Cannery.Containers do
preload: ^@container_preloads
)
|> list_containers_search(Keyword.get(opts, :search))
|> list_containers_staged(Keyword.get(opts, :staged))
|> Repo.all()
end
@spec list_containers_staged(Queryable.t(), staged :: boolean() | nil) :: Queryable.t()
defp list_containers_staged(query, staged) when staged |> is_boolean(),
do: query |> where([c: c], c.staged == ^staged)
defp list_containers_staged(query, _nil), do: query
@spec list_containers_search(Queryable.t(), search :: String.t() | nil) :: Queryable.t()
defp list_containers_search(query, search) when search in ["", nil],
do: query |> order_by([c: c], c.name)

View File

@ -3,26 +3,24 @@ defmodule Cannery.Containers.Container do
A container that holds ammunition and belongs to a user.
"""
use Ecto.Schema
import Ecto.Changeset
alias Ecto.{Changeset, UUID}
alias Cannery.{Accounts.User, Containers.ContainerTag, Containers.Tag}
use Cannery, :schema
alias Cannery.{Containers.ContainerTag, Containers.Tag}
@derive {Jason.Encoder,
only: [
:id,
:name,
:desc,
:id,
:location,
:type,
:tags
:name,
:staged,
:tags,
:type
]}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "containers" do
field :name, :string
field :desc, :string
field :location, :string
field :name, :string
field :staged, :boolean, default: false
field :type, :string
field :user_id, :binary_id
@ -33,10 +31,11 @@ defmodule Cannery.Containers.Container do
end
@type t :: %__MODULE__{
id: id(),
name: String.t(),
desc: String.t(),
id: id(),
location: String.t(),
name: String.t(),
staged: boolean(),
type: String.t(),
user_id: User.id(),
tags: [Tag.t()] | nil,
@ -52,19 +51,40 @@ defmodule Cannery.Containers.Container do
def create_changeset(container, %User{id: user_id}, attrs) do
container
|> change(user_id: user_id)
|> cast(attrs, [:name, :desc, :type, :location])
|> cast(attrs, [
:desc,
:location,
:name,
:staged,
:type
])
|> validate_length(:name, max: 255)
|> validate_length(:type, max: 255)
|> validate_required([:name, :type, :user_id])
|> validate_required([
:name,
:staged,
:type,
:user_id
])
end
@doc false
@spec update_changeset(t() | new_container(), attrs :: map()) :: changeset()
def update_changeset(container, attrs) do
container
|> cast(attrs, [:name, :desc, :type, :location])
|> cast(attrs, [
:desc,
:location,
:name,
:staged,
:type
])
|> validate_length(:name, max: 255)
|> validate_length(:type, max: 255)
|> validate_required([:name, :type])
|> validate_required([
:name,
:staged,
:type
])
end
end

View File

@ -4,13 +4,9 @@ defmodule Cannery.Containers.ContainerTag do
Cannery.Containers.Tag.
"""
use Ecto.Schema
import Ecto.Changeset
use Cannery, :schema
alias Cannery.Containers.{Container, Tag}
alias Ecto.{Changeset, UUID}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "container_tags" do
belongs_to :container, Container
belongs_to :tag, Tag

View File

@ -4,10 +4,7 @@ defmodule Cannery.Containers.Tag do
text and bg colors.
"""
use Ecto.Schema
import Ecto.Changeset
alias Cannery.Accounts.User
alias Ecto.{Changeset, UUID}
use Cannery, :schema
@derive {Jason.Encoder,
only: [
@ -16,8 +13,6 @@ defmodule Cannery.Containers.Tag do
:bg_color,
:text_color
]}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "tags" do
field :name, :string
field :bg_color, :string

View File

@ -7,8 +7,8 @@ defmodule Cannery.Email do
`lib/cannery_web/components/layouts/email_text.txt.eex` for text emails.
"""
use Gettext, backend: CanneryWeb.Gettext
import Swoosh.Email
import CanneryWeb.Gettext
import Phoenix.Template
alias Cannery.Accounts.User
alias CanneryWeb.{EmailHTML, Layouts}

View File

@ -42,9 +42,10 @@ defmodule CanneryWeb do
formats: [:html, :json],
layouts: [html: CanneryWeb.Layouts]
use Gettext, backend: CanneryWeb.Gettext
# credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse
import Plug.Conn
import CanneryWeb.Gettext
unquote(verified_routes())
end
@ -84,8 +85,9 @@ defmodule CanneryWeb do
defp html_helpers do
quote do
use PhoenixHTMLHelpers
use Gettext, backend: CanneryWeb.Gettext
import Phoenix.{Component, HTML, HTML.Form}
import CanneryWeb.{ErrorHelpers, Gettext, CoreComponents, HTMLHelpers}
import CanneryWeb.{ErrorHelpers, CoreComponents, HTMLHelpers}
# Shortcut for generating JS commands
alias Phoenix.LiveView.JS

View File

@ -4,6 +4,7 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
"""
use CanneryWeb, :live_component
alias Cannery.{Accounts.User, Ammo, Containers.Container}
alias CanneryWeb.Components.TableComponent
alias Ecto.UUID
alias Phoenix.LiveView.{Rendered, Socket}
@ -13,6 +14,7 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
required(:id) => UUID.t(),
required(:current_user) => User.t(),
optional(:containers) => [Container.t()],
optional(:range) => Rendered.t(),
optional(:tag_actions) => Rendered.t(),
optional(:actions) => Rendered.t(),
optional(any()) => any()
@ -23,6 +25,7 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
socket =
socket
|> assign(assigns)
|> assign_new(:range, fn -> [] end)
|> assign_new(:tag_actions, fn -> [] end)
|> assign_new(:actions, fn -> [] end)
|> display_containers()
@ -35,6 +38,7 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
assigns: %{
containers: containers,
current_user: current_user,
range: range,
tag_actions: tag_actions,
actions: actions
}
@ -62,13 +66,22 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
end)
|> Enum.concat([
%{label: gettext("Packs"), key: :packs, type: :integer},
%{label: gettext("Rounds"), key: :rounds, type: :integer},
%{label: gettext("Rounds"), key: :rounds, type: :integer}
])
|> Enum.concat(
[
%{label: gettext("Tags"), key: :tags, type: :tags},
%{label: gettext("Actions"), key: :actions, sortable: false, type: :actions}
])
]
|> TableComponent.maybe_compose_columns(
%{label: gettext("Range"), key: :range},
range != []
)
)
extra_data = %{
current_user: current_user,
range: range,
tag_actions: tag_actions,
actions: actions,
pack_count:
@ -136,6 +149,15 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
round_count |> Map.get(container_id, 0)
end
defp get_value_for_key(:range, %{staged: staged} = container, %{range: range}) do
assigns = %{range: range, container: container}
{staged,
~H"""
<%= render_slot(@range, @container) %>
"""}
end
defp get_value_for_key(:tags, container, %{tag_actions: tag_actions}) do
assigns = %{tag_actions: tag_actions, container: container}

View File

@ -4,7 +4,8 @@ defmodule CanneryWeb.CoreComponents do
"""
use Phoenix.Component
use CanneryWeb, :verified_routes
import CanneryWeb.{Gettext, HTMLHelpers}
use Gettext, backend: CanneryWeb.Gettext
import CanneryWeb.HTMLHelpers
alias Cannery.{Accounts, Accounts.Invite, Accounts.User}
alias Cannery.{Ammo, Ammo.Pack}
alias Cannery.{Containers.Container, Containers.Tag}
@ -140,6 +141,18 @@ defmodule CanneryWeb.CoreComponents do
"""
def datetime(assigns)
attr :name, :string, required: true
attr :start_date, :string,
default: Date.utc_today() |> Date.shift(year: -1) |> Date.to_iso8601()
attr :end_date, :string, default: Date.utc_today() |> Date.to_iso8601()
@doc """
Phoenix.Component for an element that generates date fields for a range
"""
def date_range(assigns)
@spec cast_datetime(NaiveDateTime.t() | nil) :: String.t()
defp cast_datetime(%NaiveDateTime{} = datetime) do
datetime |> DateTime.from_naive!("Etc/UTC") |> DateTime.to_iso8601(:extended)

View File

@ -0,0 +1,15 @@
<div class="flex items-center mx-4 my-2 space-x-1">
<input
class="w-36 text-center input input-primary"
name={"#{@name}_start"}
type="date"
value={@start_date}
/>
<span>—</span>
<input
class="w-36 text-center input input-primary"
name={"#{@name}_end"}
type="date"
value={@end_date}
/>
</div>

View File

@ -201,13 +201,12 @@ defmodule CanneryWeb.Components.PackTableComponent do
"""}
end
defp get_value_for_key(:range, %{staged: staged} = pack, %{range: range}) do
defp get_value_for_key(:range, pack, %{range: range}) do
assigns = %{range: range, pack: pack}
{staged,
~H"""
<%= render_slot(@range, @pack) %>
"""}
"""
end
defp get_value_for_key(

View File

@ -20,6 +20,7 @@ defmodule CanneryWeb.Components.TableComponent do
"""
use CanneryWeb, :live_component
alias Cannery.{ComparableDate, ComparableDateTime}
alias Phoenix.LiveView.Socket
require Integer
@ -110,7 +111,7 @@ defmodule CanneryWeb.Components.TableComponent do
end
defp sort_by_custom_sort_value_or_value(rows, key, sort_mode, type)
when type in [Date, DateTime] do
when type in [ComparableDate, ComparableDateTime, Date, DateTime] do
rows
|> Enum.sort_by(
fn row ->

View File

@ -1,5 +1,5 @@
defmodule CanneryWeb.ErrorJSON do
import CanneryWeb.Gettext
use Gettext, backend: CanneryWeb.Gettext
def render(template, _assigns) do
error_string =

View File

@ -4,9 +4,9 @@ defmodule CanneryWeb.UserAuth do
"""
use CanneryWeb, :verified_routes
use Gettext, backend: CanneryWeb.Gettext
import Plug.Conn
import Phoenix.Controller
import CanneryWeb.Gettext
alias Cannery.{Accounts, Accounts.User}
# Make the remember me cookie valid for 60 days.

View File

@ -1,7 +1,5 @@
defmodule CanneryWeb.UserConfirmationController do
use CanneryWeb, :controller
import CanneryWeb.Gettext
alias Cannery.Accounts
def new(conn, _params) do

View File

@ -1,6 +1,5 @@
defmodule CanneryWeb.UserRegistrationController do
use CanneryWeb, :controller
import CanneryWeb.Gettext
alias Cannery.{Accounts, Accounts.Invites}
alias Ecto.Changeset

View File

@ -29,7 +29,12 @@
<%= select(
f,
:locale,
[{gettext("English"), "en_US"}],
[
{"English", "en_US"},
{"Deutsch", "de"},
{"Français", "fr"},
{"Español", "es"}
],
class: "input input-primary col-span-2"
) %>
<%= error_tag(f, :locale) %>

View File

@ -40,7 +40,7 @@ defmodule CanneryWeb.UserResetPasswordController do
# leaked token giving the user access to the account.
def update(conn, %{"user" => user_params}) do
case Accounts.reset_user_password(conn.assigns.user, user_params) do
{:ok, _} ->
{:ok, _socket} ->
conn
|> put_flash(:info, dgettext("prompts", "Password reset successfully."))
|> redirect(to: ~p"/users/log_in")

View File

@ -1,6 +1,5 @@
defmodule CanneryWeb.UserSettingsController do
use CanneryWeb, :controller
import CanneryWeb.Gettext
alias Cannery.Accounts
alias CanneryWeb.UserAuth

View File

@ -124,12 +124,12 @@
f,
:locale,
[
{gettext("English"), "en_US"},
{gettext("German"), "de"},
{gettext("French"), "fr"},
{gettext("Spanish"), "es"}
{"English", "en_US"},
{"Deutsch", "de"},
{"Français", "fr"},
{"Español", "es"}
],
class: "mx-2 my-1 min-w-md input input-primary col-span-3"
class: "my-1 min-w-md input input-primary col-span-3"
) %>
<%= error_tag(f, :locale, "col-span-3") %>

View File

@ -5,7 +5,7 @@ defmodule CanneryWeb.Gettext do
By using [Gettext](https://hexdocs.pm/gettext),
your module gains a set of macros for translations, for example:
import CanneryWeb.Gettext
use Gettext, backend: CanneryWeb.Gettext
# Simple translation
gettext("Here is the string to translate")
@ -20,5 +20,5 @@ defmodule CanneryWeb.Gettext do
See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage.
"""
use Gettext, otp_app: :cannery
use Gettext.Backend, otp_app: :cannery
end

View File

@ -44,7 +44,9 @@
phx-submit="save"
>
<%= select(f, :tag_id, tag_options(@tags, @container),
class: "text-center col-span-2 input input-primary"
class: "text-center col-span-2 input input-primary",
id: "#{@id}-tag-select",
phx_hook: "SlimSelect"
) %>
<%= error_tag(f, :tag_id, "col-span-3 text-center") %>

View File

@ -112,6 +112,20 @@ defmodule CanneryWeb.ContainerLive.Index do
{:noreply, socket |> push_patch(to: ~p"/containers/search/#{search_term}")}
end
def handle_event(
"toggle_staged",
%{"container_id" => id},
%{assigns: %{current_user: current_user}} = socket
) do
container = Containers.get_container!(id, current_user)
{:ok, _container} =
container
|> Containers.update_container(current_user, %{"staged" => !container.staged})
{:noreply, socket |> display_containers()}
end
defp display_containers(%{assigns: %{search: search, current_user: current_user}} = socket) do
socket |> assign(:containers, Containers.list_containers(current_user, search: search))
end

View File

@ -1,10 +1,10 @@
<div class="flex flex-col space-y-8 justify-center items-center">
<h1 class="title text-2xl title-primary-500">
<div class="flex flex-col justify-center items-center space-y-8">
<h1 class="text-2xl title title-primary-500">
<%= gettext("Containers") %>
</h1>
<%= if @containers |> Enum.empty?() and @search |> is_nil() do %>
<h2 class="title text-xl text-primary-600">
<h2 class="text-xl title text-primary-600">
<%= gettext("No containers") %>
<%= display_emoji("😔") %>
</h2>
@ -17,14 +17,14 @@
<%= dgettext("actions", "New Container") %>
</.link>
<div class="w-full flex flex-col sm:flex-row justify-center items-center space-y-4 sm:space-y-0 sm:space-x-4 max-w-2xl">
<div class="flex flex-col justify-center items-center space-y-4 w-full max-w-2xl sm:flex-row sm:space-y-0 sm:space-x-4">
<.form
:let={f}
for={%{}}
as={:search}
phx-change="search"
phx-submit="search"
class="grow flex items-center"
class="flex items-center grow"
>
<%= text_input(f, :search_term,
class: "grow input input-primary",
@ -36,14 +36,14 @@
</.form>
<.toggle_button action="toggle_table" value={@view_table}>
<span class="title text-lg text-primary-600">
<span class="text-lg title text-primary-600">
<%= gettext("View as table") %>
</span>
</.toggle_button>
</div>
<%= if @containers |> Enum.empty?() do %>
<h2 class="title text-xl text-primary-600">
<h2 class="text-xl title text-primary-600">
<%= gettext("No containers") %>
<%= display_emoji("😔") %>
</h2>
@ -56,6 +56,20 @@
containers={@containers}
current_user={@current_user}
>
<:range :let={container}>
<div class="flex justify-center items-center px-4 py-2 h-full min-w-20 flex-wrap">
<button
type="button"
class="mx-2 my-1 text-sm btn btn-primary"
phx-click="toggle_staged"
phx-value-container_id={container.id}
>
<%= if container.staged,
do: dgettext("actions", "Unstage"),
else: dgettext("actions", "Stage") %>
</button>
</div>
</:range>
<:tag_actions :let={container}>
<div class="mx-4 my-2">
<.link
@ -109,7 +123,7 @@
</:actions>
</.live_component>
<% else %>
<div class="w-full flex flex-row flex-wrap justify-center items-stretch">
<div class="flex flex-row flex-wrap justify-center items-stretch w-full">
<.container_card
:for={container <- @containers}
container={container}

View File

@ -78,6 +78,18 @@ defmodule CanneryWeb.ContainerLive.Show do
{:noreply, socket}
end
def handle_event(
"toggle_staged",
_params,
%{assigns: %{container: container, current_user: current_user}} = socket
) do
{:ok, _container} =
container
|> Containers.update_container(current_user, %{"staged" => !container.staged})
{:noreply, socket |> render_container()}
end
def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do
{:noreply, socket |> assign(:view_table, !view_table) |> render_container()}
end

View File

@ -1,34 +1,34 @@
<div class="space-y-4 flex flex-col justify-center items-center">
<h1 class="title text-2xl title-primary-500">
<div class="flex flex-col justify-center items-center space-y-4">
<h1 class="text-2xl title title-primary-500">
<%= @container.name %>
</h1>
<span :if={@container.desc} class="rounded-lg title text-lg">
<span :if={@container.desc} class="text-lg rounded-lg title">
<%= gettext("Description:") %>
<%= @container.desc %>
</span>
<span class="rounded-lg title text-lg">
<span class="text-lg rounded-lg title">
<%= gettext("Type:") %>
<%= @container.type %>
</span>
<span :if={@container.location} class="rounded-lg title text-lg">
<span :if={@container.location} class="text-lg rounded-lg title">
<%= gettext("Location:") %>
<%= @container.location %>
</span>
<span class="rounded-lg title text-lg">
<span class="text-lg rounded-lg title">
<%= gettext("Packs:") %>
<%= @packs_count %>
</span>
<span class="rounded-lg title text-lg">
<span class="text-lg rounded-lg title">
<%= gettext("Rounds:") %>
<%= @round_count %>
</span>
<div class="flex space-x-4 justify-center items-center text-primary-600">
<div class="flex justify-center items-center space-x-4 text-primary-600">
<.link
patch={~p"/container/edit/#{@container}"}
class="text-primary-600 link"
@ -52,11 +52,19 @@
</.link>
</div>
<div class="flex flex-wrap justify-center items-center text-primary-600">
<button type="button" class="mx-4 my-2 btn btn-primary" phx-click="toggle_staged">
<%= if @container.staged,
do: dgettext("actions", "Unstage from range"),
else: dgettext("actions", "Stage for range") %>
</button>
</div>
<hr class="mb-4 hr" />
<%= if @container.tags |> Enum.empty?() do %>
<div class="flex flex-row justify-center items-center space-x-4">
<h2 class="title text-lg text-primary-600">
<h2 class="text-lg title text-primary-600">
<%= gettext("No tags for this container") %>
<%= display_emoji("😔") %>
</h2>
@ -105,15 +113,15 @@
</.form>
<.toggle_button action="toggle_table" value={@view_table}>
<span class="title text-lg text-primary-600">
<span class="text-lg title text-primary-600">
<%= gettext("View as table") %>
</span>
</.toggle_button>
</div>
<div class="w-full p-4">
<div class="p-4 w-full">
<%= if @packs |> Enum.empty?() do %>
<h2 class="mx-4 title text-lg text-primary-600 text-center">
<h2 class="mx-4 text-lg text-center title text-primary-600">
<%= gettext("No ammo in this container") %>
</h2>
<% else %>
@ -131,7 +139,7 @@
</.link>
</:type>
<:actions :let={%{count: pack_count} = pack}>
<div class="py-2 px-4 h-full space-x-4 flex justify-center items-center">
<div class="flex justify-center items-center px-4 py-2 space-x-4 h-full">
<.link
navigate={~p"/ammo/show/#{pack}"}
class="text-primary-600 link"

View File

@ -116,6 +116,20 @@ defmodule CanneryWeb.InviteLive.Index do
{:noreply, socket |> put_flash(:info, dgettext("prompts", "Copied to clipboard"))}
end
def handle_event("resend_email_verification", %{"id" => id}, socket) do
%{email: user_email} = user = Accounts.get_user!(id)
Accounts.deliver_user_confirmation_instructions(
user,
fn token -> url(CanneryWeb.Endpoint, ~p"/users/confirm/#{token}") end
)
prompt =
dgettext("prompts", "Email resent to %{user_email} succesfully", user_email: user_email)
{:noreply, socket |> put_flash(:info, prompt) |> display_invites()}
end
def handle_event(
"delete_user",
%{"id" => id},

View File

@ -1,10 +1,10 @@
<div class="mx-auto flex flex-col justify-center items-center space-y-4 max-w-3xl">
<h1 class="title text-2xl title-primary-500">
<div class="flex flex-col justify-center items-center mx-auto space-y-4 max-w-3xl">
<h1 class="text-2xl title title-primary-500">
<%= gettext("Invites") %>
</h1>
<%= if @invites |> Enum.empty?() do %>
<h1 class="title text-xl text-primary-600">
<h1 class="text-xl title text-primary-600">
<%= gettext("No invites") %>
<%= display_emoji("😔") %>
</h1>
@ -95,7 +95,7 @@
<%= unless @admins |> Enum.empty?() do %>
<hr class="hr" />
<h1 class="title text-2xl text-primary-600">
<h1 class="text-2xl title text-primary-600">
<%= gettext("Admins") %>
</h1>
@ -123,17 +123,24 @@
<%= unless @users |> Enum.empty?() do %>
<hr class="hr" />
<h1 class="title text-2xl text-primary-600">
<h1 class="text-2xl title text-primary-600">
<%= gettext("Users") %>
</h1>
<div class="flex flex-col justify-center items-stretch space-y-4">
<.user_card :for={user <- @users} user={user}>
<div class="flex justify-center items-center space-x-2">
<.link
href="#"
:if={!user.confirmed_at}
class="text-primary-600 link"
phx-click="delete_user"
href="#"
phx-click="resend_email_verification"
phx-value-id={user.id}
>
<i class="fa-fw fa-lg fas fa-paper-plane"></i>
</.link>
<.link
class="text-primary-600 link"
data-confirm={
dgettext(
"prompts",
@ -141,9 +148,13 @@
email: user.email
)
}
href="#"
phx-click="delete_user"
phx-value-id={user.id}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
</div>
</.user_card>
</div>
<% end %>

View File

@ -9,7 +9,11 @@ defmodule CanneryWeb.PackLive.FormComponent do
alias Ecto.Changeset
alias Phoenix.LiveView.Socket
@pack_create_limit 10_000
@impl true
@spec mount(Socket.t()) :: {:ok, Socket.t()}
def mount(socket) do
{:ok, socket |> assign(:class, :all)}
end
@impl true
@spec update(
@ -24,7 +28,6 @@ defmodule CanneryWeb.PackLive.FormComponent do
def update(%{assigns: %{current_user: current_user}} = socket) do
socket =
socket
|> assign(:pack_create_limit, @pack_create_limit)
|> assign(:types, Ammo.list_types(current_user))
|> assign_new(:containers, fn -> Containers.list_containers(current_user) end)
@ -33,7 +36,20 @@ defmodule CanneryWeb.PackLive.FormComponent do
@impl true
def handle_event("validate", %{"pack" => pack_params}, socket) do
{:noreply, socket |> assign_changeset(pack_params, :validate)}
matched_class =
case pack_params["class"] do
"rifle" -> :rifle
"shotgun" -> :shotgun
"pistol" -> :pistol
_other -> :all
end
socket =
socket
|> assign_changeset(pack_params, :validate)
|> assign(:class, matched_class)
{:noreply, socket}
end
def handle_event(
@ -51,11 +67,18 @@ defmodule CanneryWeb.PackLive.FormComponent do
containers |> Enum.map(fn %{id: id, name: name} -> {name, id} end)
end
@spec type_options([Type.t()]) :: [{String.t(), Type.id()}]
defp type_options(types) do
@spec type_options([Type.t()], Type.class() | :all) ::
[{String.t(), Type.id()}]
defp type_options(types, :all) do
types |> Enum.map(fn %{id: id, name: name} -> {name, id} end)
end
defp type_options(types, selected_class) do
types
|> Enum.filter(fn %{class: class} -> class == selected_class end)
|> Enum.map(fn %{id: id, name: name} -> {name, id} end)
end
# Save Helpers
defp assign_changeset(
@ -126,53 +149,15 @@ defmodule CanneryWeb.PackLive.FormComponent do
end
defp save_pack(
%{assigns: %{changeset: changeset}} = socket,
%{assigns: %{changeset: changeset, current_user: current_user, return_to: return_to}} =
socket,
action,
%{"multiplier" => multiplier_str} = pack_params
)
when action in [:new, :clone] do
socket =
case multiplier_str |> Integer.parse() do
{multiplier, _remainder}
when multiplier >= 1 and multiplier <= @pack_create_limit ->
socket |> create_multiple(pack_params, multiplier)
{multiplier, _remainder} ->
error_msg =
dgettext(
"errors",
"Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}",
max: @pack_create_limit,
multiplier: multiplier
)
save_multiplier_error(socket, changeset, error_msg)
:error ->
error_msg = dgettext("errors", "Could not parse number of copies")
save_multiplier_error(socket, changeset, error_msg)
end
{:noreply, socket}
end
@spec save_multiplier_error(Socket.t(), Changeset.t(), String.t()) :: Socket.t()
defp save_multiplier_error(socket, changeset, error_msg) do
{:error, changeset} =
changeset
|> Changeset.add_error(:multiplier, error_msg)
|> Changeset.apply_action(:insert)
socket |> assign(:changeset, changeset)
end
defp create_multiple(
%{assigns: %{current_user: current_user, return_to: return_to}} = socket,
pack_params,
multiplier
) do
case Ammo.create_packs(pack_params, multiplier, current_user) do
{:ok, {count, _packs}} ->
with {multiplier, _remainder} <- multiplier_str |> Integer.parse(),
{:ok, {count, _packs}} <- Ammo.create_packs(pack_params, multiplier, current_user) do
prompt =
dngettext(
"prompts",
@ -182,9 +167,21 @@ defmodule CanneryWeb.PackLive.FormComponent do
)
socket |> put_flash(:info, prompt) |> push_navigate(to: return_to)
else
{:error, %Changeset{} = changeset} ->
socket |> assign(changeset: changeset)
:error ->
error_msg = dgettext("errors", "Could not parse number of copies")
{:error, changeset} =
changeset
|> Changeset.add_error(:multiplier, error_msg)
|> Changeset.apply_action(:insert)
socket |> assign(:changeset, changeset)
end
{:noreply, socket}
end
end

View File

@ -19,9 +19,26 @@
<%= changeset_errors(@changeset) %>
</div>
<%= label(f, :class, gettext("Class"), class: "title text-lg text-primary-600") %>
<%= select(
f,
:class,
[
{gettext("Any"), :all},
{gettext("Rifle"), :rifle},
{gettext("Shotgun"), :shotgun},
{gettext("Pistol"), :pistol}
],
class: "text-center col-span-2 input input-primary",
value: @class
) %>
<%= error_tag(f, :class, "col-span-3 text-center") %>
<%= label(f, :type_id, gettext("Type"), class: "title text-lg text-primary-600") %>
<%= select(f, :type_id, type_options(@types),
class: "text-center col-span-2 input input-primary"
<%= select(f, :type_id, type_options(@types, @class),
class: "text-center col-span-2 input input-primary",
id: "pack-form-type-select",
phx_hook: "SlimSelect"
) %>
<%= error_tag(f, :type_id, "col-span-3 text-center") %>
@ -66,7 +83,9 @@
<%= label(f, :container, gettext("Container"), class: "title text-lg text-primary-600") %>
<%= select(f, :container_id, container_options(@containers),
class: "text-center col-span-2 input input-primary"
class: "text-center col-span-2 input input-primary",
id: "pack-form-container-select",
phx_hook: "SlimSelect"
) %>
<%= error_tag(f, :container_id, "col-span-3 text-center") %>
@ -76,7 +95,6 @@
<%= label(f, :multiplier, gettext("Copies"), class: "title text-lg text-primary-600") %>
<%= number_input(f, :multiplier,
max: @pack_create_limit,
class: "text-center input input-primary",
value: 1,
phx_update: "ignore"

View File

@ -96,18 +96,6 @@ defmodule CanneryWeb.PackLive.Index do
{:noreply, socket |> put_flash(:info, prompt) |> display_packs()}
end
def handle_event(
"toggle_staged",
%{"pack_id" => id},
%{assigns: %{current_user: current_user}} = socket
) do
pack = Ammo.get_pack!(id, current_user)
{:ok, _pack} = pack |> Ammo.update_pack(%{"staged" => !pack.staged}, current_user)
{:noreply, socket |> display_packs()}
end
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> display_packs()}
end

View File

@ -1,5 +1,5 @@
<div class="flex flex-col space-y-8 justify-center items-center">
<h1 class="title text-2xl title-primary-500">
<div class="flex flex-col justify-center items-center space-y-8">
<h1 class="text-2xl title title-primary-500">
<%= gettext("Ammo") %>
</h1>
@ -25,7 +25,7 @@
</.link>
</div>
<% @packs_count == 0 -> %>
<h2 class="title text-xl text-primary-600">
<h2 class="text-xl title text-primary-600">
<%= gettext("No ammo") %>
<%= display_emoji("😔") %>
</h2>
@ -38,7 +38,7 @@
<%= dgettext("actions", "Add Ammo") %>
</.link>
<div class="w-full flex flex-col sm:flex-row justify-center items-center space-y-4 sm:space-y-0 sm:space-x-4 max-w-2xl">
<div class="flex flex-col justify-center items-center space-y-4 w-full max-w-2xl sm:flex-row sm:space-y-0 sm:space-x-4">
<.form
:let={f}
for={%{}}
@ -71,7 +71,7 @@
as={:search}
phx-change="search"
phx-submit="search"
class="grow flex items-center"
class="flex items-center grow"
>
<%= text_input(f, :search_term,
class: "grow input input-primary",
@ -83,14 +83,14 @@
</.form>
<.toggle_button action="toggle_show_used" value={@show_used}>
<span class="title text-lg text-primary-600">
<span class="text-lg title text-primary-600">
<%= gettext("Show used") %>
</span>
</.toggle_button>
</div>
<%= if @packs |> Enum.empty?() do %>
<h2 class="title text-xl text-primary-600">
<h2 class="text-xl title text-primary-600">
<%= gettext("No Ammo") %>
<%= display_emoji("😔") %>
</h2>
@ -108,18 +108,7 @@
</.link>
</:type>
<:range :let={pack}>
<div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
<button
type="button"
class="mx-2 my-1 text-sm btn btn-primary"
phx-click="toggle_staged"
phx-value-pack_id={pack.id}
>
<%= if pack.staged,
do: dgettext("actions", "Unstage"),
else: dgettext("actions", "Stage") %>
</button>
<div class="flex flex-wrap justify-center items-center px-4 py-2 h-full min-w-20">
<.link
patch={~p"/ammo/add_shot_record/#{pack}"}
class="mx-2 my-1 text-sm btn btn-primary"
@ -129,7 +118,7 @@
</div>
</:range>
<:container :let={{pack, %{name: container_name} = container}}>
<div class="min-w-20 py-2 px-4 h-full flex flew-wrap justify-center items-center">
<div class="flex flex-wrap justify-center items-center px-4 py-2 h-full min-w-20">
<.link navigate={~p"/container/#{container}"} class="mx-2 my-1 link">
<%= container_name %>
</.link>
@ -140,7 +129,7 @@
</div>
</:container>
<:actions :let={%{count: pack_count} = pack}>
<div class="py-2 px-4 h-full space-x-4 flex justify-center items-center">
<div class="flex justify-center items-center px-4 py-2 space-x-4 h-full">
<.link
navigate={~p"/ammo/show/#{pack}"}
class="text-primary-600 link"

View File

@ -57,22 +57,12 @@ defmodule CanneryWeb.PackLive.Show do
{:noreply, socket |> put_flash(:info, prompt) |> push_navigate(to: redirect_to)}
end
def handle_event(
"toggle_staged",
_params,
%{assigns: %{pack: pack, current_user: current_user}} = socket
) do
{:ok, pack} = pack |> Ammo.update_pack(%{"staged" => !pack.staged}, current_user)
{:noreply, socket |> display_pack(pack)}
end
def handle_event(
"delete_shot_record",
%{"id" => id},
%{assigns: %{pack: %{id: pack_id}, current_user: current_user}} = socket
) do
{:ok, _} =
{:ok, _shot_record} =
ActivityLog.get_shot_record!(id, current_user)
|> ActivityLog.delete_shot_record(current_user)
@ -136,7 +126,7 @@ defmodule CanneryWeb.PackLive.Show do
:actions ->
~H"""
<div class="px-4 py-2 space-x-4 flex justify-center items-center">
<div class="flex justify-center items-center px-4 py-2 space-x-4">
<.link
patch={~p"/ammo/show/#{@pack}/edit/#{@shot_record}"}
class="text-primary-600 link"

View File

@ -1,43 +1,43 @@
<div class="mx-auto space-y-4 max-w-3xl flex flex-col justify-center items-center">
<h1 class="title text-2xl title-primary-500">
<div class="flex flex-col justify-center items-center mx-auto space-y-4 max-w-3xl">
<h1 class="text-2xl title title-primary-500">
<%= @pack.type.name %>
</h1>
<div class="space-y-2 flex flex-col justify-center items-center">
<span class="rounded-lg title text-lg">
<div class="flex flex-col justify-center items-center space-y-2">
<span class="text-lg rounded-lg title">
<%= gettext("Count:") %>
<%= @pack.count %>
</span>
<span class="rounded-lg title text-lg">
<span class="text-lg rounded-lg title">
<%= gettext("Original count:") %>
<%= @original_count %>
</span>
<span class="rounded-lg title text-lg">
<span class="text-lg rounded-lg title">
<%= gettext("Percentage left:") %>
<%= gettext("%{percentage}%", percentage: @percentage_remaining) %>
</span>
<%= if @pack.notes do %>
<span class="rounded-lg title text-lg">
<span class="text-lg rounded-lg title">
<%= gettext("Notes:") %>
<%= @pack.notes %>
</span>
<% end %>
<span class="rounded-lg title text-lg">
<span class="text-lg rounded-lg title">
<%= gettext("Purchased on:") %>
<.date id={"#{@pack.id}-purchased-on"} date={@pack.purchased_on} />
</span>
<%= if @pack.price_paid do %>
<span class="rounded-lg title text-lg">
<span class="text-lg rounded-lg title">
<%= gettext("Original cost:") %>
<%= gettext("$%{amount}", amount: display_currency(@pack.price_paid)) %>
</span>
<span class="rounded-lg title text-lg">
<span class="text-lg rounded-lg title">
<%= gettext("Current value:") %>
<%= gettext("$%{amount}",
amount: display_currency(@pack.price_paid * @percentage_remaining / 100)
@ -76,12 +76,6 @@
</div>
<div class="flex flex-wrap justify-center items-center text-primary-600">
<button type="button" class="mx-4 my-2 btn btn-primary" phx-click="toggle_staged">
<%= if @pack.staged,
do: dgettext("actions", "Unstage from range"),
else: dgettext("actions", "Stage for range") %>
</button>
<.link patch={~p"/ammo/show/move/#{@pack}"} class="btn btn-primary">
<%= dgettext("actions", "Move ammo") %>
</.link>
@ -96,7 +90,7 @@
<div>
<%= if @container do %>
<h1 class="mb-4 px-4 py-2 text-center rounded-lg title text-xl">
<h1 class="px-4 py-2 mb-4 text-xl text-center rounded-lg title">
<%= gettext("Stored in") %>
</h1>
@ -109,7 +103,7 @@
<%= unless @shot_records |> Enum.empty?() do %>
<hr class="mb-4 w-full" />
<h1 class="mb-4 px-4 py-2 text-center rounded-lg title text-xl">
<h1 class="px-4 py-2 mb-4 text-xl text-center rounded-lg title">
<%= gettext("Rounds used") %>
</h1>

View File

@ -4,16 +4,37 @@ defmodule CanneryWeb.RangeLive.Index do
"""
use CanneryWeb, :live_view
alias Cannery.{ActivityLog, ActivityLog.ShotRecord, Ammo}
alias Cannery.{ActivityLog, ActivityLog.ShotRecord}
alias Cannery.{Ammo, Containers}
alias Phoenix.LiveView.Socket
@impl true
def mount(%{"search" => search}, _session, socket) do
{:ok, socket |> assign(class: :all, search: search) |> display_shot_records()}
socket =
socket
|> assign(
class: :all,
start_date: Date.shift(Date.utc_today(), year: -1),
end_date: Date.utc_today(),
search: search
)
|> display_shot_records()
{:ok, socket}
end
def mount(_params, _session, socket) do
{:ok, socket |> assign(class: :all, search: nil) |> display_shot_records()}
socket =
socket
|> assign(
class: :all,
start_date: Date.shift(Date.utc_today(), year: -1),
end_date: Date.utc_today(),
search: nil
)
|> display_shot_records()
{:ok, socket}
end
@impl true
@ -71,7 +92,7 @@ defmodule CanneryWeb.RangeLive.Index do
@impl true
def handle_event("delete", %{"id" => id}, %{assigns: %{current_user: current_user}} = socket) do
{:ok, _} =
{:ok, _shot_record} =
ActivityLog.get_shot_record!(id, current_user)
|> ActivityLog.delete_shot_record(current_user)
@ -81,14 +102,16 @@ defmodule CanneryWeb.RangeLive.Index do
def handle_event(
"toggle_staged",
%{"pack_id" => pack_id},
%{"container_id" => container_id},
%{assigns: %{current_user: current_user}} = socket
) do
pack = Ammo.get_pack!(pack_id, current_user)
container = Containers.get_container!(container_id, current_user)
{:ok, _pack} = pack |> Ammo.update_pack(%{"staged" => !pack.staged}, current_user)
{:ok, _container} =
container
|> Containers.update_container(current_user, %{"staged" => !container.staged})
prompt = dgettext("prompts", "Ammo unstaged succesfully")
prompt = dgettext("prompts", "Container unstaged succesfully")
{:noreply, socket |> put_flash(:info, prompt) |> display_shot_records()}
end
@ -116,11 +139,49 @@ defmodule CanneryWeb.RangeLive.Index do
{:noreply, socket |> assign(:class, :all) |> display_shot_records()}
end
def handle_event(
"change_dates",
%{
"dates_start" => start_date,
"dates_end" => end_date
},
socket
) do
socket =
socket
|> assign(
start_date: start_date,
end_date: end_date
)
|> display_shot_records()
{:noreply, socket}
end
@spec display_shot_records(Socket.t()) :: Socket.t()
defp display_shot_records(
%{assigns: %{class: class, search: search, current_user: current_user}} = socket
%{
assigns: %{
class: class,
start_date: start_date,
end_date: end_date,
search: search,
current_user: current_user
}
} = socket
) do
shot_records = ActivityLog.list_shot_records(current_user, search: search, class: class)
shot_records =
ActivityLog.list_shot_records(current_user,
class: class,
end_date: end_date,
search: search,
start_date: start_date
)
containers =
Containers.list_containers(current_user, staged: true)
|> Map.new(fn container = %{id: container_id} -> {container_id, container} end)
packs = Ammo.list_packs(current_user, staged: true)
chart_data = shot_records |> get_chart_data_for_shot_record()
original_counts = packs |> Ammo.get_original_counts(current_user)
@ -130,6 +191,7 @@ defmodule CanneryWeb.RangeLive.Index do
socket
|> assign(
containers: containers,
packs: packs,
original_counts: original_counts,
cprs: cprs,
@ -153,6 +215,5 @@ defmodule CanneryWeb.RangeLive.Index do
label: gettext("Rounds shot: %{count}", count: sum)
}
end)
|> Enum.sort_by(fn %{date: date} -> date end, Date)
end
end

View File

@ -1,43 +1,55 @@
<div class="flex flex-col space-y-8 justify-center items-center">
<h1 class="title text-2xl title-primary-500">
<div class="flex flex-col justify-center items-center space-y-8">
<h1 class="text-2xl title title-primary-500">
<%= gettext("Range day") %>
</h1>
<%= if @packs |> Enum.empty?() do %>
<h1 class="title text-xl text-primary-600">
<%= gettext("No ammo staged") %>
<%= if @containers |> Enum.empty?() do %>
<h1 class="text-xl title text-primary-600">
<%= gettext("No containers staged") %>
<%= display_emoji("😔") %>
</h1>
<.link navigate={~p"/ammo"} class="btn btn-primary">
<.link navigate={~p"/containers"} class="btn btn-primary">
<%= dgettext("actions", "Why not get some ready to shoot?") %>
</.link>
<% else %>
<.link navigate={~p"/ammo"} class="btn btn-primary">
<%= dgettext("actions", "Stage ammo") %>
<.link navigate={~p"/containers"} class="btn btn-primary">
<%= dgettext("actions", "Stage containers") %>
</.link>
<div class="w-full flex flex-row flex-wrap justify-center items-stretch">
<div class="flex flex-row flex-wrap justify-center items-stretch w-full">
<.container_card
:for={{container_id, container} <- @containers}
container={container}
current_user={@current_user}
>
<div class="flex flex-wrap justify-center items-center px-4 py-2 h-full min-w-20">
<button
type="button"
class="mx-2 my-1 text-sm btn btn-primary"
phx-click="toggle_staged"
phx-value-container_id={container_id}
>
<%= if container.staged,
do: dgettext("actions", "Unstage"),
else: dgettext("actions", "Stage") %>
</button>
</div>
</.container_card>
</div>
<hr class="hr" />
<div class="flex flex-row flex-wrap justify-center items-stretch w-full">
<.pack_card
:for={%{id: pack_id} = pack <- @packs}
:for={%{id: pack_id, container_id: container_id} = pack <- @packs}
pack={pack}
original_count={Map.fetch!(@original_counts, pack_id)}
cpr={Map.get(@cprs, pack_id)}
last_used_date={Map.get(@last_used_dates, pack_id)}
current_user={@current_user}
container={Map.fetch!(@containers, container_id)}
>
<button
type="button"
class="btn btn-primary"
phx-click="toggle_staged"
phx-value-pack_id={pack.id}
data-confirm={"#{dgettext("prompts", "Are you sure you want to unstage this ammo?")}"}
>
<%= if pack.staged,
do: dgettext("actions", "Unstage from range"),
else: dgettext("actions", "Stage for range") %>
</button>
<.link patch={~p"/range/add_shot_record/#{pack}"} class="btn btn-primary">
<%= dgettext("actions", "Record shots") %>
</.link>
@ -48,12 +60,12 @@
<hr class="hr" />
<%= if @shot_record_count == 0 do %>
<h1 class="title text-xl text-primary-600">
<h1 class="text-xl title text-primary-600">
<%= gettext("No shots recorded") %>
<%= display_emoji("😔") %>
</h1>
<% else %>
<h1 class="title text-2xl text-primary-600">
<h1 class="text-2xl title text-primary-600">
<%= gettext("Shot log") %>
</h1>
@ -71,7 +83,7 @@
<%= dgettext("errors", "Your browser does not support the canvas element.") %>
</canvas>
<div class="w-full flex flex-col sm:flex-row justify-center items-center space-y-4 sm:space-y-0 sm:space-x-4 max-w-2xl">
<div class="flex flex-col justify-center items-center space-y-4 w-full max-w-2xl sm:flex-row sm:space-y-0 sm:space-x-4">
<.form
:let={f}
for={%{}}
@ -104,7 +116,7 @@
as={:search}
phx-change="search"
phx-submit="search"
class="grow flex items-center"
class="flex items-center grow"
>
<%= text_input(f, :search_term,
class: "grow input input-primary",
@ -114,10 +126,25 @@
value: @search
) %>
</.form>
<.form
:let={f}
for={%{}}
as={:shot_records}
phx-change="change_dates"
phx-submit="change_dates"
class="flex items-center"
>
<%= label(f, :dates_start, gettext("Dates"),
class: "title text-primary-600 text-lg text-center"
) %>
<.date_range name="dates" />
</.form>
</div>
<%= if @shot_records |> Enum.empty?() do %>
<h1 class="title text-xl text-primary-600">
<h1 class="text-xl title text-primary-600">
<%= gettext("No shots recorded") %>
<%= display_emoji("😔") %>
</h1>
@ -129,7 +156,7 @@
current_user={@current_user}
>
<:actions :let={shot_record}>
<div class="px-4 py-2 space-x-4 flex justify-center items-center">
<div class="flex justify-center items-center px-4 py-2 space-x-4">
<.link
patch={~p"/range/edit/#{shot_record}"}
class="text-primary-600 link"

View File

@ -22,7 +22,11 @@
<%= select(
f,
:class,
[{gettext("Rifle"), :rifle}, {gettext("Shotgun"), :shotgun}, {gettext("Pistol"), :pistol}],
[
{gettext("Rifle"), :rifle},
{gettext("Shotgun"), :shotgun},
{gettext("Pistol"), :pistol}
],
class: "text-center col-span-2 input input-primary",
maxlength: 255
) %>

View File

@ -120,7 +120,7 @@ defmodule CanneryWeb.Router do
#
# Note that preview only shows emails that were sent by the same
# node running the Phoenix server.
if Mix.env() == :dev do
if Application.compile_env(:cannery, :env) == :dev do
scope "/dev" do
pipe_through :browser

View File

@ -4,8 +4,8 @@ defmodule Cannery.MixProject do
def project do
[
app: :cannery,
version: "0.9.11",
elixir: "1.17.0",
version: "0.9.13",
elixir: "1.18.1",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
aliases: aliases(),

View File

@ -1,54 +1,54 @@
%{
"bcrypt_elixir": {:hex, :bcrypt_elixir, "3.1.0", "0b110a9a6c619b19a7f73fa3004aa11d6e719a67e672d1633dc36b6b2290a0f7", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "2ad2acb5a8bc049e8d5aa267802631912bb80d5f4110a178ae7999e69dca1bf7"},
"bcrypt_elixir": {:hex, :bcrypt_elixir, "3.2.0", "feab711974beba4cb348147170346fe097eea2e840db4e012a145e180ed4ab75", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "563e92a6c77d667b19c5f4ba17ab6d440a085696bdf4c68b9b0f5b30bc5422b8"},
"bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"},
"castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"},
"comeonin": {:hex, :comeonin, "5.4.0", "246a56ca3f41d404380fc6465650ddaa532c7f98be4bda1b4656b3a37cc13abe", [:mix], [], "hexpm", "796393a9e50d01999d56b7b8420ab0481a7538d0caf80919da493b4a6e51faf1"},
"castore": {:hex, :castore, "1.0.11", "4bbd584741601eb658007339ea730b082cc61f3554cf2e8f39bf693a11b49073", [:mix], [], "hexpm", "e03990b4db988df56262852f20de0f659871c35154691427a5047f4967a16a62"},
"comeonin": {:hex, :comeonin, "5.5.0", "364d00df52545c44a139bad919d7eacb55abf39e86565878e17cebb787977368", [:mix], [], "hexpm", "6287fc3ba0aad34883cbe3f7949fc1d1e738e5ccdce77165bc99490aa69f47fb"},
"cowboy": {:hex, :cowboy, "2.12.0", "f276d521a1ff88b2b9b4c54d0e753da6c66dd7be6c9fca3d9418b561828a3731", [:make, :rebar3], [{:cowlib, "2.13.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "8a7abe6d183372ceb21caa2709bec928ab2b72e18a3911aa1771639bef82651e"},
"cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"},
"cowlib": {:hex, :cowlib, "2.13.0", "db8f7505d8332d98ef50a3ef34b34c1afddec7506e4ee4dd4a3a266285d282ca", [:make, :rebar3], [], "hexpm", "e1e1284dc3fc030a64b1ad0d8382ae7e99da46c3246b815318a4b848873800a4"},
"credo": {:hex, :credo, "1.7.7", "771445037228f763f9b2afd612b6aa2fd8e28432a95dbbc60d8e03ce71ba4446", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "8bc87496c9aaacdc3f90f01b7b0582467b69b4bd2441fe8aae3109d843cc2f2e"},
"credo": {:hex, :credo, "1.7.11", "d3e805f7ddf6c9c854fd36f089649d7cf6ba74c42bc3795d587814e3c9847102", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "56826b4306843253a66e47ae45e98e7d284ee1f95d53d1612bb483f88a8cf219"},
"db_connection": {:hex, :db_connection, "2.7.0", "b99faa9291bb09892c7da373bb82cba59aefa9b36300f6145c5f201c7adf48ec", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "dcf08f31b2701f857dfc787fbad78223d61a32204f217f15e881dd93e4bdd3ff"},
"decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"},
"dialyxir": {:hex, :dialyxir, "1.4.3", "edd0124f358f0b9e95bfe53a9fcf806d615d8f838e2202a9f430d59566b6b53b", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986"},
"earmark_parser": {:hex, :earmark_parser, "1.4.41", "ab34711c9dc6212dda44fcd20ecb87ac3f3fce6f0ca2f28d4a00e4154f8cd599", [:mix], [], "hexpm", "a81a04c7e34b6617c2792e291b5a2e57ab316365c2644ddc553bb9ed863ebefa"},
"ecto": {:hex, :ecto, "3.11.2", "e1d26be989db350a633667c5cda9c3d115ae779b66da567c68c80cfb26a8c9ee", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "3c38bca2c6f8d8023f2145326cc8a80100c3ffe4dcbd9842ff867f7fc6156c65"},
"ecto_psql_extras": {:hex, :ecto_psql_extras, "0.8.0", "440719cd74f09b3f01c84455707a2c3972b725c513808e68eb6c5b0ab82bf523", [:mix], [{:ecto_sql, "~> 3.7", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16.0 or ~> 0.17.0 or ~> 0.18.0", [hex: :postgrex, repo: "hexpm", optional: false]}, {:table_rex, "~> 3.1.1 or ~> 4.0.0", [hex: :table_rex, repo: "hexpm", optional: false]}], "hexpm", "f1512812dc196bcb932a96c82e55f69b543dc125e9d39f5e3631a9c4ec65ef12"},
"ecto_sql": {:hex, :ecto_sql, "3.11.3", "4eb7348ff8101fbc4e6bbc5a4404a24fecbe73a3372d16569526b0cf34ebc195", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.11.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "e5f36e3d736b99c7fee3e631333b8394ade4bafe9d96d35669fca2d81c2be928"},
"elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"},
"decimal": {:hex, :decimal, "2.3.0", "3ad6255aa77b4a3c4f818171b12d237500e63525c2fd056699967a3e7ea20f62", [:mix], [], "hexpm", "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"},
"dialyxir": {:hex, :dialyxir, "1.4.5", "ca1571ac18e0f88d4ab245f0b60fa31ff1b12cbae2b11bd25d207f865e8ae78a", [:mix], [{:erlex, ">= 0.2.7", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "b0fb08bb8107c750db5c0b324fa2df5ceaa0f9307690ee3c1f6ba5b9eb5d35c3"},
"earmark_parser": {:hex, :earmark_parser, "1.4.42", "f23d856f41919f17cd06a493923a722d87a2d684f143a1e663c04a2b93100682", [:mix], [], "hexpm", "6915b6ca369b5f7346636a2f41c6a6d78b5af419d61a611079189233358b8b8b"},
"ecto": {:hex, :ecto, "3.12.5", "4a312960ce612e17337e7cefcf9be45b95a3be6b36b6f94dfb3d8c361d631866", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "6eb18e80bef8bb57e17f5a7f068a1719fbda384d40fc37acb8eb8aeca493b6ea"},
"ecto_psql_extras": {:hex, :ecto_psql_extras, "0.8.3", "0c1df205bd051eaf599b3671e75356b121aa71eac09b63ecf921cb1a080c072e", [:mix], [{:ecto_sql, "~> 3.7", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:postgrex, "> 0.16.0 and < 0.20.0", [hex: :postgrex, repo: "hexpm", optional: false]}, {:table_rex, "~> 3.1.1 or ~> 4.0.0", [hex: :table_rex, repo: "hexpm", optional: false]}], "hexpm", "d0e35ea160359e759a2993a00c3a5389a9ca7ece6df5d0753fa927f988c7351a"},
"ecto_sql": {:hex, :ecto_sql, "3.12.1", "c0d0d60e85d9ff4631f12bafa454bc392ce8b9ec83531a412c12a0d415a3a4d0", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.12", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.7", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.19 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "aff5b958a899762c5f09028c847569f7dfb9cc9d63bdb8133bff8a5546de6bf5"},
"elixir_make": {:hex, :elixir_make, "0.9.0", "6484b3cd8c0cee58f09f05ecaf1a140a8c97670671a6a0e7ab4dc326c3109726", [:mix], [], "hexpm", "db23d4fd8b757462ad02f8aa73431a426fe6671c80b200d9710caf3d1dd0ffdb"},
"eqrcode": {:hex, :eqrcode, "0.1.10", "6294fece9d68ad64eef1c3c92cf111cfd6469f4fbf230a2d4cc905a682178f3f", [:mix], [], "hexpm", "da30e373c36a0fd37ab6f58664b16029919896d6c45a68a95cc4d713e81076f1"},
"erlex": {:hex, :erlex, "0.2.7", "810e8725f96ab74d17aac676e748627a07bc87eb950d2b83acd29dc047a30595", [:mix], [], "hexpm", "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"},
"ex_doc": {:hex, :ex_doc, "0.34.2", "13eedf3844ccdce25cfd837b99bea9ad92c4e511233199440488d217c92571e8", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "5ce5f16b41208a50106afed3de6a2ed34f4acfd65715b82a0b84b49d995f95c1"},
"expo": {:hex, :expo, "0.5.2", "beba786aab8e3c5431813d7a44b828e7b922bfa431d6bfbada0904535342efe2", [:mix], [], "hexpm", "8c9bfa06ca017c9cb4020fabe980bc7fdb1aaec059fd004c2ab3bff03b1c599c"},
"file_system": {:hex, :file_system, "1.0.0", "b689cc7dcee665f774de94b5a832e578bd7963c8e637ef940cd44327db7de2cd", [:mix], [], "hexpm", "6752092d66aec5a10e662aefeed8ddb9531d79db0bc145bb8c40325ca1d8536d"},
"floki": {:hex, :floki, "0.36.2", "a7da0193538c93f937714a6704369711998a51a6164a222d710ebd54020aa7a3", [:mix], [], "hexpm", "a8766c0bc92f074e5cb36c4f9961982eda84c5d2b8e979ca67f5c268ec8ed580"},
"ex_doc": {:hex, :ex_doc, "0.36.1", "4197d034f93e0b89ec79fac56e226107824adcce8d2dd0a26f5ed3a95efc36b1", [:mix], [{:earmark_parser, "~> 1.4.42", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "d7d26a7cf965dacadcd48f9fa7b5953d7d0cfa3b44fa7a65514427da44eafd89"},
"expo": {:hex, :expo, "1.1.0", "f7b9ed7fb5745ebe1eeedf3d6f29226c5dd52897ac67c0f8af62a07e661e5c75", [:mix], [], "hexpm", "fbadf93f4700fb44c331362177bdca9eeb8097e8b0ef525c9cc501cb9917c960"},
"file_system": {:hex, :file_system, "1.1.0", "08d232062284546c6c34426997dd7ef6ec9f8bbd090eb91780283c9016840e8f", [:mix], [], "hexpm", "bfcf81244f416871f2a2e15c1b515287faa5db9c6bcf290222206d120b3d43f6"},
"floki": {:hex, :floki, "0.37.0", "b83e0280bbc6372f2a403b2848013650b16640cd2470aea6701f0632223d719e", [:mix], [], "hexpm", "516a0c15a69f78c47dc8e0b9b3724b29608aa6619379f91b1ffa47109b5d0dd3"},
"gen_smtp": {:hex, :gen_smtp, "1.2.0", "9cfc75c72a8821588b9b9fe947ae5ab2aed95a052b81237e0928633a13276fd3", [:rebar3], [{:ranch, ">= 1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "5ee0375680bca8f20c4d85f58c2894441443a743355430ff33a783fe03296779"},
"gettext": {:hex, :gettext, "0.24.0", "6f4d90ac5f3111673cbefc4ebee96fe5f37a114861ab8c7b7d5b30a1108ce6d8", [:mix], [{:expo, "~> 0.5.1", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "bdf75cdfcbe9e4622dd18e034b227d77dd17f0f133853a1c73b97b3d6c770e8b"},
"gettext": {:hex, :gettext, "0.26.2", "5978aa7b21fada6deabf1f6341ddba50bc69c999e812211903b169799208f2a8", [:mix], [{:expo, "~> 0.5.1 or ~> 1.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "aa978504bcf76511efdc22d580ba08e2279caab1066b76bb9aa81c4a1e0a32a5"},
"jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"},
"makeup": {:hex, :makeup, "1.1.2", "9ba8837913bdf757787e71c1581c21f9d2455f4dd04cfca785c70bbfff1a76a3", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cce1566b81fbcbd21eca8ffe808f33b221f9eee2cbc7a1706fc3da9ff18e6cac"},
"makeup_elixir": {:hex, :makeup_elixir, "0.16.2", "627e84b8e8bf22e60a2579dad15067c755531fea049ae26ef1020cad58fe9578", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "41193978704763f6bbe6cc2758b84909e62984c7752b3784bd3c218bb341706b"},
"makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"},
"makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"},
"makeup_erlang": {:hex, :makeup_erlang, "1.0.1", "c7f58c120b2b5aa5fd80d540a89fdf866ed42f1f3994e4fe189abebeab610839", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "8a89a1eeccc2d798d6ea15496a6e4870b75e014d1af514b1b71fa33134f57814"},
"mime": {:hex, :mime, "2.0.6", "8f18486773d9b15f95f4f4f1e39b710045fa1de891fada4516559967276e4dc2", [:mix], [], "hexpm", "c9945363a6b26d747389aac3643f8e0e09d30499a138ad64fe8fd1d13d9b153e"},
"nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"},
"oban": {:hex, :oban, "2.18.0", "092d20bfd3d70c7ecb70960f8548d300b54bb9937c7f2e56b388f3a9ed02ec68", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "aace1eff6f8227ae38d4274af967d96f051c2f0a5152f2ef9809dd1f97866745"},
"phoenix": {:hex, :phoenix, "1.7.14", "a7d0b3f1bc95987044ddada111e77bd7f75646a08518942c72a8440278ae7825", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "c7859bc56cc5dfef19ecfc240775dae358cbaa530231118a9e014df392ace61a"},
"phoenix_ecto": {:hex, :phoenix_ecto, "4.6.2", "3b83b24ab5a2eb071a20372f740d7118767c272db386831b2e77638c4dcc606d", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "3f94d025f59de86be00f5f8c5dd7b5965a3298458d21ab1c328488be3b5fcd59"},
"phoenix_html": {:hex, :phoenix_html, "4.1.1", "4c064fd3873d12ebb1388425a8f2a19348cef56e7289e1998e2d2fa758aa982e", [:mix], [], "hexpm", "f2f2df5a72bc9a2f510b21497fd7d2b86d932ec0598f0210fed4114adc546c6f"},
"oban": {:hex, :oban, "2.18.3", "1608c04f8856c108555c379f2f56bc0759149d35fa9d3b825cb8a6769f8ae926", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "36ca6ca84ef6518f9c2c759ea88efd438a3c81d667ba23b02b062a0aa785475e"},
"phoenix": {:hex, :phoenix, "1.7.18", "5310c21443514be44ed93c422e15870aef254cf1b3619e4f91538e7529d2b2e4", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "1797fcc82108442a66f2c77a643a62980f342bfeb63d6c9a515ab8294870004e"},
"phoenix_ecto": {:hex, :phoenix_ecto, "4.6.3", "f686701b0499a07f2e3b122d84d52ff8a31f5def386e03706c916f6feddf69ef", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "909502956916a657a197f94cc1206d9a65247538de8a5e186f7537c895d95764"},
"phoenix_html": {:hex, :phoenix_html, "4.2.0", "83a4d351b66f472ebcce242e4ae48af1b781866f00ef0eb34c15030d4e2069ac", [:mix], [], "hexpm", "9713b3f238d07043583a94296cc4bbdceacd3b3a6c74667f4df13971e7866ec8"},
"phoenix_html_helpers": {:hex, :phoenix_html_helpers, "1.0.1", "7eed85c52eff80a179391036931791ee5d2f713d76a81d0d2c6ebafe1e11e5ec", [:mix], [{:phoenix_html, "~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "cffd2385d1fa4f78b04432df69ab8da63dc5cf63e07b713a4dcf36a3740e3090"},
"phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.8.4", "4508e481f791ce62ec6a096e13b061387158cbeefacca68c6c1928e1305e23ed", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:ecto_sqlite3_extras, "~> 1.1.7 or ~> 1.2.0", [hex: :ecto_sqlite3_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.19 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "2984aae96994fbc5c61795a73b8fb58153b41ff934019cfb522343d2d3817d59"},
"phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.8.6", "7b1f0327f54c9eb69845fd09a77accf922f488c549a7e7b8618775eb603a62c7", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:ecto_sqlite3_extras, "~> 1.1.7 or ~> 1.2.0", [hex: :ecto_sqlite3_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.19 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "1681ab813ec26ca6915beb3414aa138f298e17721dc6a2bde9e6eb8a62360ff6"},
"phoenix_live_reload": {:hex, :phoenix_live_reload, "1.5.3", "f2161c207fda0e4fb55165f650f7f8db23f02b29e3bff00ff7ef161d6ac1f09d", [:mix], [{:file_system, "~> 0.3 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "b4ec9cd73cb01ff1bd1cac92e045d13e7030330b74164297d1aee3907b54803c"},
"phoenix_live_view": {:hex, :phoenix_live_view, "0.20.17", "f396bbdaf4ba227b82251eb75ac0afa6b3da5e509bc0d030206374237dfc9450", [:mix], [{:floki, "~> 0.36", [hex: :floki, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a61d741ffb78c85fdbca0de084da6a48f8ceb5261a79165b5a0b59e5f65ce98b"},
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"},
"phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"},
"plug": {:hex, :plug, "1.16.1", "40c74619c12f82736d2214557dedec2e9762029b2438d6d175c5074c933edc9d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a13ff6b9006b03d7e33874945b2755253841b238c34071ed85b0e86057f8cddc"},
"plug_cowboy": {:hex, :plug_cowboy, "2.7.1", "87677ffe3b765bc96a89be7960f81703223fe2e21efa42c125fcd0127dd9d6b2", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "02dbd5f9ab571b864ae39418db7811618506256f6d13b4a45037e5fe78dc5de3"},
"plug_cowboy": {:hex, :plug_cowboy, "2.7.2", "fdadb973799ae691bf9ecad99125b16625b1c6039999da5fe544d99218e662e4", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "245d8a11ee2306094840c000e8816f0cbed69a23fc0ac2bcf8d7835ae019bb2f"},
"plug_crypto": {:hex, :plug_crypto, "2.1.0", "f44309c2b06d249c27c8d3f65cfe08158ade08418cf540fd4f72d4d6863abb7b", [:mix], [], "hexpm", "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"},
"postgrex": {:hex, :postgrex, "0.18.0", "f34664101eaca11ff24481ed4c378492fed2ff416cd9b06c399e90f321867d7e", [:mix], [{:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "a042989ba1bc1cca7383ebb9e461398e3f89f868c92ce6671feb7ef132a252d1"},
"postgrex": {:hex, :postgrex, "0.19.3", "a0bda6e3bc75ec07fca5b0a89bffd242ca209a4822a9533e7d3e84ee80707e19", [:mix], [{:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "d31c28053655b78f47f948c85bb1cf86a9c1f8ead346ba1aa0d0df017fa05b61"},
"ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"},
"swoosh": {:hex, :swoosh, "1.16.10", "04be6e2eb1a31aa0aa21a731175c81cc3998189456a92daf13d44a5c754afcf5", [:mix], [{:bandit, ">= 1.0.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mua, "~> 0.2.3", [hex: :mua, repo: "hexpm", optional: true]}, {:multipart, "~> 0.4", [hex: :multipart, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:req, "~> 0.5 or ~> 1.0", [hex: :req, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "756be04db173c0cbe318f1dfe2bcc88aa63aed78cf5a4b02b61b36ee11fc716a"},
"swoosh": {:hex, :swoosh, "1.17.6", "27ff070f96246e35b7105ab1c52b2b689f523a3cb83ed9faadb2f33bd653ccba", [:mix], [{:bandit, ">= 1.0.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mua, "~> 0.2.3", [hex: :mua, repo: "hexpm", optional: true]}, {:multipart, "~> 0.4", [hex: :multipart, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:req, "~> 0.5 or ~> 1.0", [hex: :req, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "9798f3e72165f40c950f6762c06dab68afcdcf616138fc4a07965c09c250e1e2"},
"table_rex": {:hex, :table_rex, "4.0.0", "3c613a68ebdc6d4d1e731bc973c233500974ec3993c99fcdabb210407b90959b", [:mix], [], "hexpm", "c35c4d5612ca49ebb0344ea10387da4d2afe278387d4019e4d8111e815df8f55"},
"telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"},
"telemetry": {:hex, :telemetry, "1.3.0", "fedebbae410d715cf8e7062c96a1ef32ec22e764197f70cda73d82778d61e7a2", [:rebar3], [], "hexpm", "7015fc8919dbe63764f4b4b87a95b7c0996bd539e0d499be6ec9d7f3875b79e6"},
"telemetry_metrics": {:hex, :telemetry_metrics, "0.6.2", "2caabe9344ec17eafe5403304771c3539f3b6e2f7fb6a6f602558c825d0d0bfb", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "9b43db0dc33863930b9ef9d27137e78974756f5f198cae18409970ed6fa5b561"},
"telemetry_poller": {:hex, :telemetry_poller, "1.1.0", "58fa7c216257291caaf8d05678c8d01bd45f4bdbc1286838a28c4bb62ef32999", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "9eb9d9cbfd81cbd7cdd24682f8711b6e2b691289a0de6826e58452f28c103c8f"},
"websock": {:hex, :websock, "0.5.3", "2f69a6ebe810328555b6fe5c831a851f485e303a7c8ce6c5f675abeb20ebdadc", [:mix], [], "hexpm", "6105453d7fac22c712ad66fab1d45abdf049868f253cf719b625151460b8b453"},
"websock_adapter": {:hex, :websock_adapter, "0.5.6", "0437fe56e093fd4ac422de33bf8fc89f7bc1416a3f2d732d8b2c8fd54792fe60", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "e04378d26b0af627817ae84c92083b7e97aca3121196679b73c73b99d0d133ea"},
"websock_adapter": {:hex, :websock_adapter, "0.5.8", "3b97dc94e407e2d1fc666b2fb9acf6be81a1798a2602294aac000260a7c4a47d", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "315b9a1865552212b5f35140ad194e67ce31af45bcee443d4ecb96b5fd3f3782"},
}

View File

@ -54,7 +54,7 @@ msgstr ""
msgid "Delete User"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:52
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
#, elixir-autogen, elixir-format
@ -68,7 +68,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:94
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:28
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:44
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:49
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:41
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28
#: lib/cannery_web/controllers/user_session_html/new.html.heex:3
@ -95,7 +95,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:89
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:25
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:3
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:42
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:38
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
@ -118,10 +118,10 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
#: lib/cannery_web/live/container_live/form_component.html.heex:59
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:110
#: lib/cannery_web/live/range_live/form_component.html.heex:45
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
#: lib/cannery_web/live/type_live/form_component.html.heex:382
#: lib/cannery_web/live/type_live/form_component.html.heex:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
@ -131,29 +131,24 @@ msgstr ""
msgid "Send instructions to reset password"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:65
#: lib/cannery_web/live/container_live/show.html.heex:73
#, elixir-autogen, elixir-format
msgid "Why not add one?"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:51
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#, 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:13
#, elixir-autogen, elixir-format
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:42
#: lib/cannery_web/live/pack_live/index.html.heex:116
#: lib/cannery_web/live/pack_live/show.html.heex:84
#: lib/cannery_web/live/range_live/index.html.heex:54
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr ""
@ -178,7 +173,7 @@ msgstr ""
msgid "add a container first"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:85
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr ""
@ -199,8 +194,8 @@ msgid "View in Catalog"
msgstr ""
#: lib/cannery_web/components/move_pack_component.ex:77
#: lib/cannery_web/live/pack_live/index.html.heex:138
#: lib/cannery_web/live/pack_live/show.html.heex:86
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
@ -210,14 +205,12 @@ msgstr ""
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:82
#: lib/cannery_web/live/range_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:81
#: lib/cannery_web/live/range_live/index.html.heex:37
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
@ -227,8 +220,8 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:145
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:159
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -238,8 +231,8 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:104
#: lib/cannery_web/live/container_live/index.html.heex:162
#: lib/cannery_web/live/container_live/index.html.heex:118
#: lib/cannery_web/live/container_live/index.html.heex:176
#: lib/cannery_web/live/container_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
@ -255,8 +248,8 @@ msgstr ""
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:135
#: lib/cannery_web/live/container_live/index.html.heex:91
#: lib/cannery_web/live/container_live/index.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
@ -272,54 +265,56 @@ msgstr ""
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:120
#: lib/cannery_web/live/container_live/index.html.heex:69
#: lib/cannery_web/live/range_live/index.html.heex:35
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:124
#: lib/cannery_web/live/container_live/index.html.heex:79
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:119
#: lib/cannery_web/live/container_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:172
#: lib/cannery_web/live/pack_live/index.html.heex:161
#, elixir-autogen, elixir-format
msgid "Clone pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:187
#: lib/cannery_web/live/pack_live/index.html.heex:176
#: lib/cannery_web/live/pack_live/show.html.heex:71
#, elixir-autogen, elixir-format
msgid "Delete pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:160
#: lib/cannery_web/live/pack_live/index.html.heex:149
#: lib/cannery_web/live/pack_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Edit pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:139
#: lib/cannery_web/live/pack_live/index.html.heex:148
#: lib/cannery_web/live/container_live/show.html.heex:147
#: lib/cannery_web/live/pack_live/index.html.heex:137
#: lib/cannery_web/live/type_live/show.html.heex:201
#, elixir-autogen, elixir-format
msgid "View pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:154
#: lib/cannery_web/live/pack_live/show.ex:149
#: lib/cannery_web/live/range_live/index.html.heex:181
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_record_count} shots"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:144
#: lib/cannery_web/live/range_live/index.html.heex:137
#: lib/cannery_web/live/pack_live/show.ex:134
#: lib/cannery_web/live/range_live/index.html.heex:164
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_record_count} shots"
msgstr ""
@ -355,3 +350,8 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "add a type first"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage containers"
msgstr ""

View File

@ -67,7 +67,7 @@ msgstr "Einladung erstellen"
msgid "Delete User"
msgstr "Benutzer löschen"
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:52
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
#, elixir-autogen, elixir-format
@ -81,7 +81,7 @@ msgstr "Laden Sie jemanden ein!"
#: lib/cannery_web/components/core_components/topbar.html.heex:94
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:28
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:44
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:49
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:41
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28
#: lib/cannery_web/controllers/user_session_html/new.html.heex:3
@ -108,7 +108,7 @@ msgstr "Neuer Tag"
#: lib/cannery_web/components/core_components/topbar.html.heex:89
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:25
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:3
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:42
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:38
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
@ -131,10 +131,10 @@ msgstr "Passwort zurücksetzen"
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
#: lib/cannery_web/live/container_live/form_component.html.heex:59
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:110
#: lib/cannery_web/live/range_live/form_component.html.heex:45
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
#: lib/cannery_web/live/type_live/form_component.html.heex:382
#: lib/cannery_web/live/type_live/form_component.html.heex:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr "Speichern"
@ -144,29 +144,24 @@ msgstr "Speichern"
msgid "Send instructions to reset password"
msgstr "Anleitung zum Passwort zurücksetzen zusenden"
#: lib/cannery_web/live/container_live/show.html.heex:65
#: lib/cannery_web/live/container_live/show.html.heex:73
#, elixir-autogen, elixir-format
msgid "Why not add one?"
msgstr "Warum fügen Sie keine hinzu?"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:51
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#, elixir-autogen, elixir-format
msgid "Add"
msgstr "Hinzufügen"
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage ammo"
msgstr "Munition markieren"
#: lib/cannery_web/live/range_live/index.html.heex:13
#, elixir-autogen, elixir-format
msgid "Why not get some ready to shoot?"
msgstr "Warum nicht einige für den Schießstand auswählen?"
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:42
#: lib/cannery_web/live/pack_live/index.html.heex:116
#: lib/cannery_web/live/pack_live/show.html.heex:84
#: lib/cannery_web/live/range_live/index.html.heex:54
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr "Schüsse dokumentieren"
@ -191,7 +186,7 @@ msgstr "In die Zwischenablage kopieren"
msgid "add a container first"
msgstr "Zuerst einen Behälter hinzufügen"
#: lib/cannery_web/live/pack_live/form_component.html.heex:85
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr "Erstellen"
@ -212,8 +207,8 @@ msgid "View in Catalog"
msgstr ""
#: lib/cannery_web/components/move_pack_component.ex:77
#: lib/cannery_web/live/pack_live/index.html.heex:138
#: lib/cannery_web/live/pack_live/show.html.heex:86
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
@ -223,14 +218,12 @@ msgstr ""
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:82
#: lib/cannery_web/live/range_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:81
#: lib/cannery_web/live/range_live/index.html.heex:37
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
@ -240,8 +233,8 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:145
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:159
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -251,8 +244,8 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:104
#: lib/cannery_web/live/container_live/index.html.heex:162
#: lib/cannery_web/live/container_live/index.html.heex:118
#: lib/cannery_web/live/container_live/index.html.heex:176
#: lib/cannery_web/live/container_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
@ -268,8 +261,8 @@ msgstr ""
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:135
#: lib/cannery_web/live/container_live/index.html.heex:91
#: lib/cannery_web/live/container_live/index.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
@ -285,54 +278,56 @@ msgstr ""
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:120
#: lib/cannery_web/live/container_live/index.html.heex:69
#: lib/cannery_web/live/range_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr "Munition markieren"
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:124
#: lib/cannery_web/live/container_live/index.html.heex:79
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:119
#: lib/cannery_web/live/container_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:172
#: lib/cannery_web/live/pack_live/index.html.heex:161
#, elixir-autogen, elixir-format, fuzzy
msgid "Clone pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:187
#: lib/cannery_web/live/pack_live/index.html.heex:176
#: lib/cannery_web/live/pack_live/show.html.heex:71
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:160
#: lib/cannery_web/live/pack_live/index.html.heex:149
#: lib/cannery_web/live/pack_live/show.html.heex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:139
#: lib/cannery_web/live/pack_live/index.html.heex:148
#: lib/cannery_web/live/container_live/show.html.heex:147
#: lib/cannery_web/live/pack_live/index.html.heex:137
#: lib/cannery_web/live/type_live/show.html.heex:201
#, elixir-autogen, elixir-format, fuzzy
msgid "View pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:154
#: lib/cannery_web/live/pack_live/show.ex:149
#: lib/cannery_web/live/range_live/index.html.heex:181
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete shot record of %{shot_record_count} shots"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:144
#: lib/cannery_web/live/range_live/index.html.heex:137
#: lib/cannery_web/live/pack_live/show.ex:134
#: lib/cannery_web/live/range_live/index.html.heex:164
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit shot record of %{shot_record_count} shots"
msgstr ""
@ -368,3 +363,8 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy
msgid "add a type first"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage containers"
msgstr ""

View File

@ -44,49 +44,49 @@ msgid "Background color"
msgstr "Hintergrundfarbe"
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr "Knallpatrone"
#: lib/cannery_web/live/type_live/form_component.html.heex:191
#: lib/cannery_web/live/type_live/form_component.html.heex:195
#, elixir-autogen, elixir-format
msgid "Brass"
msgstr "Messing"
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:159
#: lib/cannery_web/live/type_live/form_component.html.heex:163
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr "Projektilkern"
#: lib/cannery_web/components/type_table_component.ex:59
#: lib/cannery_web/live/type_live/form_component.html.heex:132
#: lib/cannery_web/live/type_live/form_component.html.heex:136
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr "Patronenart"
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:74
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr "Kaliber"
#: lib/cannery_web/components/type_table_component.ex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#: lib/cannery_web/live/type_live/form_component.html.heex:57
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr "Patrone"
#: lib/cannery_web/components/type_table_component.ex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:184
#: lib/cannery_web/live/type_live/form_component.html.heex:188
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr "Gehäusematerial"
#: lib/cannery_web/components/move_pack_component.ex:64
#: lib/cannery_web/components/pack_table_component.ex:76
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#, elixir-autogen, elixir-format
msgid "Container"
msgstr "Behälter"
@ -100,13 +100,13 @@ msgid "Containers"
msgstr "Behälter"
#: lib/cannery_web/components/type_table_component.ex:87
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#: lib/cannery_web/live/type_live/form_component.html.heex:362
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr "Korrosiv"
#: lib/cannery_web/components/pack_table_component.ex:104
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
msgid "Count"
msgstr "Anzahl"
@ -117,9 +117,9 @@ msgstr "Anzahl"
msgid "Count:"
msgstr "Anzahl:"
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/components/container_table_component.ex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: lib/cannery_web/live/type_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:43
#, elixir-autogen, elixir-format
msgid "Description"
msgstr "Beschreibung"
@ -145,19 +145,19 @@ msgstr "Einladung bearbeiten"
msgid "Edit Tag"
msgstr "Tag bearbeiten"
#: lib/cannery_web/live/type_live/form_component.html.heex:147
#: lib/cannery_web/live/type_live/form_component.html.heex:151
#, elixir-autogen, elixir-format
msgid "FMJ"
msgstr "VM"
#: lib/cannery_web/components/type_table_component.ex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:122
#: lib/cannery_web/live/type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr "Körner"
#: lib/cannery_web/components/type_table_component.ex:85
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr "Brandmunition"
@ -189,7 +189,7 @@ msgstr "Einladungen"
msgid "Keep me logged in for 60 days"
msgstr "Für 60 Tage eingeloggt bleiben"
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/container_table_component.ex:51
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
@ -208,8 +208,8 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Magazin, Ladestreifen, Munitionskiste usw."
#: lib/cannery_web/components/type_table_component.ex:88
#: lib/cannery_web/live/type_live/form_component.html.heex:363
#: lib/cannery_web/live/type_live/form_component.html.heex:366
#: lib/cannery_web/live/type_live/form_component.html.heex:367
#: lib/cannery_web/live/type_live/form_component.html.heex:370
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr "Hersteller"
@ -224,12 +224,12 @@ msgstr "Metallene Munitionskiste mit Anime-Girl-Sticker"
msgid "My cool ammo can"
msgstr "Meine coole Munitionskiste"
#: lib/cannery_web/components/container_table_component.ex:45
#: lib/cannery_web/components/container_table_component.ex:49
#: lib/cannery_web/components/type_table_component.ex:152
#: lib/cannery_web/live/container_live/form_component.html.heex:21
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
#: lib/cannery_web/live/tag_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/form_component.html.heex:31
#: lib/cannery_web/live/type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Name"
msgstr "Name"
@ -280,8 +280,8 @@ msgstr "Keine Tags"
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
#: lib/cannery_web/components/shot_record_table_component.ex:46
#: lib/cannery_web/live/pack_live/form_component.html.heex:58
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:80
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
msgid "Notes"
@ -299,13 +299,13 @@ msgid "On the bookshelf"
msgstr "Auf dem Bücherregal"
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:283
#: lib/cannery_web/live/type_live/form_component.html.heex:287
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr "Druck"
#: lib/cannery_web/components/pack_table_component.ex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:52
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr "Kaufpreis"
@ -316,7 +316,7 @@ msgid "Price paid:"
msgstr "Kaufpreis:"
#: lib/cannery_web/components/type_table_component.ex:82
#: lib/cannery_web/live/type_live/form_component.html.heex:324
#: lib/cannery_web/live/type_live/form_component.html.heex:328
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr "Zündertyp"
@ -338,7 +338,7 @@ msgstr ""
"Hosten Sie Ihre eigene Instanz oder verwenden Sie eine Instanz, der Sie "
"vertrauen."
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/controllers/user_settings_controller.ex:9
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:3
#, elixir-autogen, elixir-format
msgid "Settings"
@ -349,17 +349,17 @@ msgstr "Einstellungen"
msgid "Simple:"
msgstr "Einfach:"
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr "Stahl"
#: lib/cannery_web/live/pack_live/show.html.heex:100
#: lib/cannery_web/live/pack_live/show.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stored in"
msgstr "Gelagert in"
#: lib/cannery_web/components/container_table_component.ex:66
#: lib/cannery_web/components/container_table_component.ex:73
#: lib/cannery_web/components/core_components/topbar.html.heex:28
#: lib/cannery_web/live/tag_live/index.ex:43
#: lib/cannery_web/live/tag_live/index.ex:53
@ -384,16 +384,16 @@ msgid "The self-hosted firearm tracker website"
msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen"
#: lib/cannery_web/components/type_table_component.ex:84
#: lib/cannery_web/live/type_live/form_component.html.heex:346
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr "Leuchtspur"
#: lib/cannery_web/components/container_table_component.ex:48
#: lib/cannery_web/components/container_table_component.ex:52
#: lib/cannery_web/components/move_pack_component.ex:65
#: lib/cannery_web/components/pack_table_component.ex:108
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr "Art"
@ -419,15 +419,16 @@ msgstr "Verbleibende Nutzung"
msgid "Your data stays with you, period"
msgstr "Ihre Daten bleiben bei Ihnen, Punkt"
#: lib/cannery_web/live/container_live/show.html.heex:60
#: lib/cannery_web/live/container_live/show.html.heex:68
#, elixir-autogen, elixir-format
msgid "No tags for this container"
msgstr "Keine Tags für diesen Behälter"
#: lib/cannery_web/components/container_table_component.ex:77
#: lib/cannery_web/components/core_components/topbar.html.heex:48
#: lib/cannery_web/components/pack_table_component.ex:80
#: lib/cannery_web/live/range_live/index.ex:55
#: lib/cannery_web/live/range_live/index.ex:65
#: lib/cannery_web/live/range_live/index.ex:76
#: lib/cannery_web/live/range_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Range"
msgstr "Schießplatz"
@ -439,7 +440,7 @@ msgstr "Range Day"
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
#: lib/cannery_web/components/shot_record_table_component.ex:47
#: lib/cannery_web/live/pack_live/show.ex:91
#: lib/cannery_web/live/pack_live/show.ex:81
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
@ -450,26 +451,21 @@ msgstr "Datum"
msgid "Shots fired"
msgstr "Schüsse abgegeben"
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No ammo staged"
msgstr "Keine Munition selektiert"
#: lib/cannery_web/components/add_shot_record_component.html.heex:3
#: lib/cannery_web/live/pack_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr "Schüsse dokumentieren"
#: lib/cannery_web/live/range_live/index.html.heex:52
#: lib/cannery_web/live/range_live/index.html.heex:121
#: lib/cannery_web/live/range_live/index.html.heex:64
#: lib/cannery_web/live/range_live/index.html.heex:148
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr "Keine Schüsse dokumentiert"
#: lib/cannery_web/components/shot_record_table_component.ex:45
#: lib/cannery_web/live/pack_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:66
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.html.heex:78
#, elixir-autogen, elixir-format
msgid "Rounds shot"
msgstr "Patronen abgefeuert"
@ -484,7 +480,7 @@ msgstr "Munition verschieben"
msgid "No other containers"
msgstr "Kein weiterer Behälter"
#: lib/cannery_web/live/range_live/index.html.heex:57
#: lib/cannery_web/live/range_live/index.html.heex:69
#, elixir-autogen, elixir-format
msgid "Shot log"
msgstr "Schießkladde"
@ -492,7 +488,7 @@ msgstr "Schießkladde"
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
#: lib/cannery_web/components/pack_table_component.ex:181
#: lib/cannery_web/components/pack_table_component.ex:264
#: lib/cannery_web/components/pack_table_component.ex:263
#: lib/cannery_web/components/type_table_component.ex:273
#: lib/cannery_web/live/pack_live/show.html.heex:37
#: lib/cannery_web/live/pack_live/show.html.heex:42
@ -501,36 +497,36 @@ msgstr "Schießkladde"
msgid "$%{amount}"
msgstr "$%{amount}"
#: lib/cannery_web/live/type_live/form_component.html.heex:177
#: lib/cannery_web/live/type_live/form_component.html.heex:181
#, elixir-autogen, elixir-format
msgid "Bimetal"
msgstr "Bimetall"
#: lib/cannery_web/components/type_table_component.ex:65
#: lib/cannery_web/live/type_live/form_component.html.heex:172
#: lib/cannery_web/live/type_live/form_component.html.heex:176
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr "Patronenhülse"
#: lib/cannery_web/components/type_table_component.ex:81
#: lib/cannery_web/live/type_live/form_component.html.heex:307
#: lib/cannery_web/live/type_live/form_component.html.heex:311
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr "Mündungsgeschwindigkeit"
#: lib/cannery_web/components/type_table_component.ex:75
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: lib/cannery_web/live/type_live/form_component.html.heex:274
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr "Pulverkörner pro Ladung"
#: lib/cannery_web/components/type_table_component.ex:73
#: lib/cannery_web/live/type_live/form_component.html.heex:261
#: lib/cannery_web/live/type_live/form_component.html.heex:265
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr "Pulverart"
#: lib/cannery_web/live/type_live/form_component.html.heex:374
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr "UPC"
@ -554,7 +550,7 @@ msgid "New password"
msgstr "Neues Passwort"
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr "Patronenhülsenform"
@ -565,13 +561,13 @@ msgid "Reconnecting..."
msgstr "Neu verbinden..."
#: lib/cannery_web/live/container_live/index.ex:28
#: lib/cannery_web/live/container_live/show.ex:118
#: lib/cannery_web/live/container_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr "%{name} bearbeiten"
#: lib/cannery_web/live/container_live/index.ex:63
#: lib/cannery_web/live/container_live/show.ex:119
#: lib/cannery_web/live/container_live/show.ex:131
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr "Editiere %{name} Tags"
@ -584,7 +580,7 @@ msgid "Rounds:"
msgstr "Patronen:"
#: lib/cannery_web/components/pack_table_component.ex:178
#: lib/cannery_web/components/pack_table_component.ex:260
#: lib/cannery_web/components/pack_table_component.ex:259
#: lib/cannery_web/components/type_table_component.ex:272
#: lib/cannery_web/live/type_live/show.html.heex:154
#, elixir-autogen, elixir-format
@ -616,12 +612,12 @@ msgstr "Ursprüngliche Anzahl:"
msgid "Percentage left:"
msgstr "Prozent verbleibend:"
#: lib/cannery_web/live/pack_live/show.html.heex:113
#: lib/cannery_web/live/pack_live/show.html.heex:107
#, elixir-autogen, elixir-format
msgid "Rounds used"
msgstr "Patronen verbraucht"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#: lib/cannery_web/controllers/user_confirmation_controller.ex:6
#, elixir-autogen, elixir-format
msgid "Confirm your account"
msgstr "Bestätigen Sie ihr Nutzerkonto"
@ -636,7 +632,7 @@ msgstr "Passwort vergessen?"
msgid "Log in"
msgstr "Einloggen"
#: lib/cannery_web/controllers/user_registration_controller.ex:32
#: lib/cannery_web/controllers/user_registration_controller.ex:31
#, elixir-autogen, elixir-format
msgid "Register"
msgstr "Registrieren"
@ -647,13 +643,13 @@ msgid "Reset your password"
msgstr "Passwort zurücksetzen"
#: lib/cannery_web/live/pack_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:31
#: lib/cannery_web/live/range_live/index.ex:47
#: lib/cannery_web/live/range_live/index.ex:52
#: lib/cannery_web/live/range_live/index.ex:68
#, elixir-autogen, elixir-format
msgid "Record Shots"
msgstr "Schüsse dokumentieren"
#: lib/cannery_web/live/pack_live/form_component.html.heex:77
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr "Kopien"
@ -663,22 +659,6 @@ msgstr "Kopien"
msgid "Added on:"
msgstr "Hinzugefügt am:"
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:32
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:127
#, elixir-autogen, elixir-format
msgid "English"
msgstr "Englisch"
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "French"
msgstr "Französisch"
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:128
#, elixir-autogen, elixir-format
msgid "German"
msgstr "Deutsch"
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Language"
@ -722,7 +702,7 @@ msgstr "Munitionstyp bearbeiten"
msgid "Move Ammo"
msgstr "Munition verschieben"
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/container_live/show.html.heex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container"
msgstr "Keine Munitionsgruppe in diesem Behälter"
@ -732,7 +712,7 @@ msgstr "Keine Munitionsgruppe in diesem Behälter"
msgid "Show Ammo"
msgstr "Zeige Munitionsarten"
#: lib/cannery_web/live/pack_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/show.html.heex:99
#, elixir-autogen, elixir-format, fuzzy
msgid "This ammo is not in a container"
msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
@ -772,31 +752,31 @@ msgstr "Behälter"
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:219
#: lib/cannery_web/components/pack_table_component.ex:218
#: lib/cannery_web/live/pack_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:153
#: lib/cannery_web/live/range_live/index.ex:215
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}"
msgstr "Patronen abgefeuert"
#: lib/cannery_web/components/container_table_component.ex:64
#: lib/cannery_web/components/container_table_component.ex:68
#: lib/cannery_web/components/type_table_component.ex:122
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:65
#: lib/cannery_web/components/container_table_component.ex:69
#: lib/cannery_web/components/type_table_component.ex:143
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
msgstr "Patronen:"
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:109
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/type_live/show.html.heex:170
#, elixir-autogen, elixir-format
msgid "View as table"
@ -842,7 +822,7 @@ msgstr ""
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:80
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot chart"
msgstr "Patronen abgefeuert"
@ -949,7 +929,7 @@ msgid "Average CPR"
msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
#: lib/cannery_web/components/pack_table_component.ex:268
#: lib/cannery_web/components/pack_table_component.ex:267
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
@ -995,7 +975,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:50
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1031,16 +1011,11 @@ msgstr ""
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:112
#: lib/cannery_web/live/range_live/index.html.heex:124
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:130
#, elixir-autogen, elixir-format
msgid "Spanish"
msgstr ""
#: lib/cannery_web/components/layouts.ex:15
#: lib/cannery_web/components/layouts/root.html.heex:9
#: lib/cannery_web/components/layouts/root.html.heex:10
@ -1140,27 +1115,27 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:288
#: lib/cannery_web/live/type_live/form_component.html.heex:292
#, elixir-autogen, elixir-format
msgid "+P"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:78
#: lib/cannery_web/live/type_live/form_component.html.heex:82
#, elixir-autogen, elixir-format
msgid ".223"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:62
#, elixir-autogen, elixir-format
msgid "5.56x46mm NATO"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:329
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#, elixir-autogen, elixir-format
msgid "Boxer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:338
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
@ -1171,12 +1146,12 @@ msgstr ""
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/container_table_component.ex:74
#: lib/cannery_web/components/move_pack_component.ex:67
#: lib/cannery_web/components/pack_table_component.ex:62
#: lib/cannery_web/components/shot_record_table_component.ex:48
#: lib/cannery_web/components/type_table_component.ex:99
#: lib/cannery_web/live/pack_live/show.ex:92
#: lib/cannery_web/live/pack_live/show.ex:82
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
@ -1202,21 +1177,21 @@ msgstr ""
msgid "Close modal"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/index.html.heex:58
#: lib/cannery_web/live/range_live/index.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:103
#: lib/cannery_web/live/type_live/index.html.heex:37
#, elixir-autogen, elixir-format
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:343
#: lib/cannery_web/live/type_live/form_component.html.heex:347
#, elixir-autogen, elixir-format
msgid "Attributes"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:56
#: lib/cannery_web/live/type_live/form_component.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Brass height"
msgstr "Messing"
@ -1227,7 +1202,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:103
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1237,13 +1212,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#, elixir-autogen, elixir-format
msgid "Dimensions"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:80
#: lib/cannery_web/live/type_live/form_component.html.heex:293
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1254,7 +1229,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1265,7 +1240,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:231
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1285,35 +1260,37 @@ msgstr "Keine Munition"
msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: lib/cannery_web/live/container_live/show.html.heex:108
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
#: lib/cannery_web/live/pack_live/index.html.heex:61
#: lib/cannery_web/live/range_live/index.html.heex:94
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:106
#: lib/cannery_web/live/type_live/form_component.html.heex:28
#: lib/cannery_web/live/type_live/index.html.heex:40
#: lib/cannery_web/live/type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Pistol"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:258
#: lib/cannery_web/live/type_live/form_component.html.heex:262
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder"
msgstr "Pulverart"
#: lib/cannery_web/live/type_live/form_component.html.heex:321
#: lib/cannery_web/live/type_live/form_component.html.heex:325
#, elixir-autogen, elixir-format, fuzzy
msgid "Primer"
msgstr "Zündertyp"
#: lib/cannery_web/live/type_live/form_component.html.heex:119
#: lib/cannery_web/live/type_live/form_component.html.heex:123
#, elixir-autogen, elixir-format
msgid "Projectile"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:106
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/index.html.heex:59
#: lib/cannery_web/live/range_live/index.html.heex:92
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:104
#: lib/cannery_web/live/type_live/form_component.html.heex:26
#: lib/cannery_web/live/type_live/index.html.heex:38
#: lib/cannery_web/live/type_live/show.html.heex:54
#, elixir-autogen, elixir-format
@ -1321,7 +1298,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:239
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1332,7 +1309,7 @@ msgid "Shot charge weight:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1343,7 +1320,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:223
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format, fuzzy
msgid "Shot size"
msgstr "Schüsse abgegeben"
@ -1354,7 +1331,7 @@ msgid "Shot size:"
msgstr "Schüsse abgegeben"
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:204
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1364,10 +1341,11 @@ msgstr ""
msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/container_live/show.html.heex:107
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
#: lib/cannery_web/live/pack_live/index.html.heex:60
#: lib/cannery_web/live/range_live/index.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:105
#: lib/cannery_web/live/type_live/form_component.html.heex:27
#: lib/cannery_web/live/type_live/index.html.heex:39
#: lib/cannery_web/live/type_live/show.html.heex:52
#, elixir-autogen, elixir-format
@ -1375,12 +1353,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:162
#, elixir-autogen, elixir-format
msgid "Slug core"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1391,13 +1369,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:87
#, elixir-autogen, elixir-format
msgid "Unfired shell length"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:67
#: lib/cannery_web/live/type_live/form_component.html.heex:196
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1408,9 +1386,10 @@ msgid "Wadding:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/index.html.heex:50
#: lib/cannery_web/live/range_live/index.html.heex:83
#: lib/cannery_web/live/range_live/index.html.heex:95
#: lib/cannery_web/live/type_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/index.html.heex:29
#: lib/cannery_web/live/type_live/show.html.heex:46
@ -1430,7 +1409,7 @@ msgid "Used up!"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:39
#: lib/cannery_web/live/range_live/index.ex:60
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit Shot Record"
msgstr "Schießkladde editieren"
@ -1454,7 +1433,7 @@ msgid "No Types"
msgstr "Art"
#: lib/cannery_web/components/pack_table_component.ex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:42
#: lib/cannery_web/live/pack_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
msgid "Lot number"
msgstr ""
@ -1463,3 +1442,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Lot number:"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Any"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:138
#, elixir-autogen, elixir-format, fuzzy
msgid "Dates"
msgstr "Datum"
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No containers staged"
msgstr "Kein Behälter"

View File

@ -23,7 +23,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:224
#: lib/cannery/containers.ex:234
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr "Behälter muss vor dem Löschen leer sein"
@ -39,7 +39,7 @@ msgstr "Konnte %{name} nicht löschen: %{error}"
msgid "Could not find that container"
msgstr "Konnte Behälter nicht finden"
#: lib/cannery_web/controllers/user_settings_controller.ex:84
#: lib/cannery_web/controllers/user_settings_controller.ex:83
#, elixir-autogen, elixir-format
msgid "Email change link is invalid or it has expired."
msgstr "Mailadressenänderungs-Link ist ungültig oder abgelaufen."
@ -80,21 +80,21 @@ msgstr "Oops, etwas ist schiefgegangen. Bitte beachten Sie den Fehler unten."
msgid "Reset password link is invalid or it has expired."
msgstr "Link zum Passwort zurücksetzen ist ungültig oder abgelaufen."
#: lib/cannery_web/controllers/user_registration_controller.ex:22
#: lib/cannery_web/controllers/user_registration_controller.ex:51
#: lib/cannery_web/controllers/user_registration_controller.ex:21
#: lib/cannery_web/controllers/user_registration_controller.ex:50
#, elixir-autogen, elixir-format
msgid "Sorry, public registration is disabled"
msgstr "Entschuldigung, aber öffentliche Registrierung ist deaktiviert"
#: lib/cannery_web/controllers/user_registration_controller.ex:12
#: lib/cannery_web/controllers/user_registration_controller.ex:41
#: lib/cannery_web/controllers/user_registration_controller.ex:70
#: lib/cannery_web/controllers/user_registration_controller.ex:11
#: lib/cannery_web/controllers/user_registration_controller.ex:40
#: lib/cannery_web/controllers/user_registration_controller.ex:69
#, elixir-autogen, elixir-format
msgid "Sorry, this invite was not found or expired"
msgstr ""
"Entschuldigung, aber diese Einladung wurde nicht gefunden oder ist abgelaufen"
#: lib/cannery_web/controllers/user_settings_controller.ex:99
#: lib/cannery_web/controllers/user_settings_controller.ex:98
#, elixir-autogen, elixir-format
msgid "Unable to delete user"
msgstr "Dieser Nutzer konnte nicht gelöscht werden"
@ -105,7 +105,7 @@ msgstr "Dieser Nutzer konnte nicht gelöscht werden"
msgid "Unauthorized"
msgstr "Unbefugt"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:53
#: lib/cannery_web/controllers/user_confirmation_controller.ex:51
#, elixir-autogen, elixir-format
msgid "User confirmation link is invalid or it has expired."
msgstr "Nutzerkonto Bestätigungslink ist ungültig oder abgelaufen."
@ -115,22 +115,22 @@ msgstr "Nutzerkonto Bestätigungslink ist ungültig oder abgelaufen."
msgid "You are not authorized to view this page."
msgstr "Sie sind nicht berechtigt, diese Seite aufzurufen."
#: lib/cannery/accounts/user.ex:145
#: lib/cannery/accounts/user.ex:140
#, elixir-autogen, elixir-format
msgid "did not change"
msgstr "hat sich nicht geändert"
#: lib/cannery/accounts/user.ex:166
#: lib/cannery/accounts/user.ex:161
#, elixir-autogen, elixir-format
msgid "does not match password"
msgstr "Passwort stimmt nicht überein"
#: lib/cannery/accounts/user.ex:203
#: lib/cannery/accounts/user.ex:198
#, elixir-autogen, elixir-format
msgid "is not valid"
msgstr "ist nicht gültig"
#: lib/cannery/accounts/user.ex:100
#: lib/cannery/accounts/user.ex:95
#, elixir-autogen, elixir-format
msgid "must have the @ sign and no spaces"
msgstr "Muss ein @ Zeichen und keine Leerzeichen haben"
@ -158,58 +158,48 @@ msgstr ""
msgid "Tag could not be removed"
msgstr "Tag konnte nicht gelöscht werden"
#: lib/cannery_web/live/pack_live/form_component.ex:152
#: lib/cannery_web/live/pack_live/form_component.ex:175
#, elixir-autogen, elixir-format
msgid "Could not parse number of copies"
msgstr "Konnte die Anzahl der Kopien nicht verstehen"
#: lib/cannery_web/live/pack_live/form_component.ex:142
#: lib/cannery/ammo.ex:1026
#, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr ""
"Ungültige Nummer an Kopien. Muss zwischen 1 and %{max} liegen. War "
"%{multiplier}"
#: lib/cannery/ammo.ex:974
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:71
#: lib/cannery_web/live/range_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:74
#: lib/cannery/activity_log/shot_record.ex:71
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:88
#: lib/cannery/activity_log/shot_record.ex:85
#, elixir-autogen, elixir-format
msgid "Ammo left can be at most %{count} rounds"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:84
#: lib/cannery/activity_log/shot_record.ex:81
#, elixir-autogen, elixir-format
msgid "Ammo left must be at least 0"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:119
#: lib/cannery/activity_log/shot_record.ex:116
#, elixir-autogen, elixir-format, fuzzy
msgid "Count can be at most %{count} shots"
msgstr "Anzahl muss weniger als %{count} betragen"
#: lib/cannery/activity_log/shot_record.ex:80
#: lib/cannery/activity_log/shot_record.ex:77
#, elixir-autogen, elixir-format
msgid "can't be blank"
msgstr ""
#: lib/cannery/ammo/pack.ex:100
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a type and container"
msgstr ""
#: lib/cannery_web/controllers/error_html.ex:11
#: lib/cannery_web/controllers/error_json.ex:9
#, elixir-autogen, elixir-format, fuzzy
@ -225,3 +215,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "You must log in to access this page."
msgstr ""
#: lib/cannery/ammo/pack.ex:101
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid container"
msgstr ""
#: lib/cannery/ammo/pack.ex:99
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr ""

View File

@ -52,28 +52,28 @@ msgstr "%{name} wurde gelöscht"
msgid "%{name} updated successfully"
msgstr "%{name} erfolgreich aktualisiert"
#: lib/cannery_web/controllers/user_settings_controller.ex:29
#: lib/cannery_web/controllers/user_settings_controller.ex:28
#, elixir-autogen, elixir-format
msgid "A link to confirm your email change has been sent to the new address."
msgstr "Eine Mail zum Bestätigen ihre Mailadresse wurde Ihnen zugesandt."
#: lib/cannery_web/live/invite_live/index.html.heex:110
#: lib/cannery_web/live/invite_live/index.html.heex:138
#: lib/cannery_web/live/invite_live/index.html.heex:145
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
"Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht "
"zurückgenommen werden!"
#: lib/cannery_web/live/container_live/index.html.heex:99
#: lib/cannery_web/live/container_live/index.html.heex:157
#: lib/cannery_web/live/container_live/index.html.heex:113
#: lib/cannery_web/live/container_live/index.html.heex:171
#: lib/cannery_web/live/container_live/show.html.heex:45
#: lib/cannery_web/live/tag_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"
#: lib/cannery_web/live/pack_live/index.html.heex:185
#: lib/cannery_web/live/pack_live/index.html.heex:174
#: lib/cannery_web/live/pack_live/show.html.heex:69
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -89,12 +89,12 @@ msgstr "Sind Sie sicher, dass sie Ihren Account löschen möchten?"
msgid "Are you sure you want to log out?"
msgstr "Wirklich ausloggen?"
#: lib/cannery_web/controllers/user_settings_controller.ex:77
#: lib/cannery_web/controllers/user_settings_controller.ex:76
#, elixir-autogen, elixir-format
msgid "Email changed successfully."
msgstr "Mailadresse erfolgreich geändert."
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
#: lib/cannery_web/controllers/user_confirmation_controller.ex:21
#, 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 ""
@ -118,12 +118,12 @@ msgstr "Erfolgreich ausgeloggt."
msgid "Password reset successfully."
msgstr "Passwort erfolgreich zurückgesetzt."
#: lib/cannery_web/controllers/user_settings_controller.ex:49
#: lib/cannery_web/controllers/user_settings_controller.ex:48
#, elixir-autogen, elixir-format
msgid "Password updated successfully."
msgstr "Passwort erfolgreich geändert."
#: lib/cannery_web/controllers/user_registration_controller.ex:65
#: lib/cannery_web/controllers/user_registration_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Please check your email to verify your account"
msgstr "Bitte überprüfen Sie ihre Mailbox und bestätigen Sie das Nutzerkonto"
@ -131,15 +131,15 @@ msgstr "Bitte überprüfen Sie ihre Mailbox und bestätigen Sie das Nutzerkonto"
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
#: lib/cannery_web/live/container_live/form_component.html.heex:61
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
#: lib/cannery_web/live/pack_live/form_component.html.heex:111
#: lib/cannery_web/live/range_live/form_component.html.heex:47
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
#: lib/cannery_web/live/type_live/form_component.html.heex:383
#: lib/cannery_web/live/type_live/form_component.html.heex:387
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr "Speichere..."
#: lib/cannery_web/controllers/user_settings_controller.ex:95
#: lib/cannery_web/controllers/user_settings_controller.ex:94
#, elixir-autogen, elixir-format
msgid "Your account has been deleted"
msgstr "Ihr Nutzerkonto wurde gelöscht"
@ -161,7 +161,7 @@ msgstr "%{name} erfolgreich hinzugefügt"
msgid "%{tag_name} has been removed from %{container_name}"
msgstr "%{tag_name} wurde von %{container_name} entfernt"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "Adding..."
msgstr "Füge hinzu..."
@ -171,19 +171,14 @@ msgstr "Füge hinzu..."
msgid "Shots recorded successfully"
msgstr "Schüsse erfolgreich dokumentiert"
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Are you sure you want to unstage this ammo?"
msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?"
#: lib/cannery_web/live/pack_live/show.ex:157
#: lib/cannery_web/live/range_live/index.html.heex:151
#: lib/cannery_web/live/pack_live/show.ex:147
#: lib/cannery_web/live/range_live/index.html.heex:178
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?"
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.ex:78
#: lib/cannery_web/live/pack_live/show.ex:69
#: lib/cannery_web/live/range_live/index.ex:99
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
msgstr "Schießkladde erfolgreich gelöscht"
@ -193,7 +188,7 @@ msgstr "Schießkladde erfolgreich gelöscht"
msgid "Shot records updated successfully"
msgstr "Schießkladde erfolgreich aktualisiert"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:37
#: lib/cannery_web/controllers/user_confirmation_controller.ex:35
#, elixir-autogen, elixir-format
msgid "%{email} confirmed successfully."
msgstr "%{email} erfolgreich bestätigt."
@ -219,7 +214,7 @@ msgstr "%{name} erfolgreich entfernt"
msgid "You'll need to"
msgstr "Sie müssen"
#: lib/cannery_web/live/pack_live/form_component.html.heex:86
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr "Erstellen..."
@ -229,7 +224,7 @@ msgstr "Erstellen..."
msgid "Are you sure you want to change your language?"
msgstr "Möchten Sie die Sprache wechseln?"
#: lib/cannery_web/controllers/user_settings_controller.ex:65
#: lib/cannery_web/controllers/user_settings_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Language updated successfully."
msgstr "Spracheinstellung gespeichert."
@ -240,17 +235,12 @@ msgstr "Spracheinstellung gespeichert."
msgid "Ammo deleted succesfully"
msgstr "Munitionsgruppe erfolgreich gelöscht"
#: lib/cannery_web/live/range_live/index.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo unstaged succesfully"
msgstr "Munition erfolgreich demarkiert"
#: lib/cannery_web/live/pack_live/form_component.ex:118
#: lib/cannery_web/live/pack_live/form_component.ex:141
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo updated successfully"
msgstr "Munitionsgruppe erfolgreich aktualisiert"
#: lib/cannery_web/live/pack_live/form_component.ex:177
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
@ -288,7 +278,7 @@ msgstr "%{name} erfolgreich aktiviert"
msgid "%{invite_name} updated succesfully"
msgstr "%{name} erfolgreich aktualisiert"
#: lib/cannery_web/live/invite_live/index.ex:125
#: lib/cannery_web/live/invite_live/index.ex:139
#, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully"
msgstr "%{name} erfolgreich gelöscht"
@ -302,3 +292,13 @@ msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?"
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr "Sind Sie sicher, dass sie %{name} auf unbegrenzt setzen möchten?"
#: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Container unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:128
#, elixir-autogen, elixir-format
msgid "Email resent to %{user_email} succesfully"
msgstr ""

View File

@ -40,49 +40,49 @@ msgid "Background color"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:191
#: lib/cannery_web/live/type_live/form_component.html.heex:195
#, elixir-autogen, elixir-format
msgid "Brass"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:159
#: lib/cannery_web/live/type_live/form_component.html.heex:163
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:59
#: lib/cannery_web/live/type_live/form_component.html.heex:132
#: lib/cannery_web/live/type_live/form_component.html.heex:136
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:74
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#: lib/cannery_web/live/type_live/form_component.html.heex:57
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:184
#: lib/cannery_web/live/type_live/form_component.html.heex:188
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr ""
#: lib/cannery_web/components/move_pack_component.ex:64
#: lib/cannery_web/components/pack_table_component.ex:76
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#, elixir-autogen, elixir-format
msgid "Container"
msgstr ""
@ -96,13 +96,13 @@ msgid "Containers"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:87
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#: lib/cannery_web/live/type_live/form_component.html.heex:362
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:104
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
msgid "Count"
msgstr ""
@ -113,9 +113,9 @@ msgstr ""
msgid "Count:"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/components/container_table_component.ex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: lib/cannery_web/live/type_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:43
#, elixir-autogen, elixir-format
msgid "Description"
msgstr ""
@ -141,19 +141,19 @@ msgstr ""
msgid "Edit Tag"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:147
#: lib/cannery_web/live/type_live/form_component.html.heex:151
#, elixir-autogen, elixir-format
msgid "FMJ"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:122
#: lib/cannery_web/live/type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:85
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@ -185,7 +185,7 @@ msgstr ""
msgid "Keep me logged in for 60 days"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/container_table_component.ex:51
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
@ -204,8 +204,8 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:88
#: lib/cannery_web/live/type_live/form_component.html.heex:363
#: lib/cannery_web/live/type_live/form_component.html.heex:366
#: lib/cannery_web/live/type_live/form_component.html.heex:367
#: lib/cannery_web/live/type_live/form_component.html.heex:370
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr ""
@ -220,12 +220,12 @@ msgstr ""
msgid "My cool ammo can"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:45
#: lib/cannery_web/components/container_table_component.ex:49
#: lib/cannery_web/components/type_table_component.ex:152
#: lib/cannery_web/live/container_live/form_component.html.heex:21
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
#: lib/cannery_web/live/tag_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/form_component.html.heex:31
#: lib/cannery_web/live/type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Name"
msgstr ""
@ -276,8 +276,8 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
#: lib/cannery_web/components/shot_record_table_component.ex:46
#: lib/cannery_web/live/pack_live/form_component.html.heex:58
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:80
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
msgid "Notes"
@ -295,13 +295,13 @@ msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:283
#: lib/cannery_web/live/type_live/form_component.html.heex:287
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:52
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr ""
@ -312,7 +312,7 @@ msgid "Price paid:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:82
#: lib/cannery_web/live/type_live/form_component.html.heex:324
#: lib/cannery_web/live/type_live/form_component.html.heex:328
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr ""
@ -332,7 +332,7 @@ msgstr ""
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/controllers/user_settings_controller.ex:9
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:3
#, elixir-autogen, elixir-format
msgid "Settings"
@ -343,17 +343,17 @@ msgstr ""
msgid "Simple:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:100
#: lib/cannery_web/live/pack_live/show.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stored in"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:66
#: lib/cannery_web/components/container_table_component.ex:73
#: lib/cannery_web/components/core_components/topbar.html.heex:28
#: lib/cannery_web/live/tag_live/index.ex:43
#: lib/cannery_web/live/tag_live/index.ex:53
@ -378,16 +378,16 @@ msgid "The self-hosted firearm tracker website"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:84
#: lib/cannery_web/live/type_live/form_component.html.heex:346
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:48
#: lib/cannery_web/components/container_table_component.ex:52
#: lib/cannery_web/components/move_pack_component.ex:65
#: lib/cannery_web/components/pack_table_component.ex:108
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr ""
@ -413,15 +413,16 @@ msgstr ""
msgid "Your data stays with you, period"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:60
#: lib/cannery_web/live/container_live/show.html.heex:68
#, elixir-autogen, elixir-format
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:77
#: lib/cannery_web/components/core_components/topbar.html.heex:48
#: lib/cannery_web/components/pack_table_component.ex:80
#: lib/cannery_web/live/range_live/index.ex:55
#: lib/cannery_web/live/range_live/index.ex:65
#: lib/cannery_web/live/range_live/index.ex:76
#: lib/cannery_web/live/range_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Range"
msgstr ""
@ -433,7 +434,7 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
#: lib/cannery_web/components/shot_record_table_component.ex:47
#: lib/cannery_web/live/pack_live/show.ex:91
#: lib/cannery_web/live/pack_live/show.ex:81
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
@ -444,26 +445,21 @@ msgstr ""
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/components/add_shot_record_component.html.heex:3
#: lib/cannery_web/live/pack_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:52
#: lib/cannery_web/live/range_live/index.html.heex:121
#: lib/cannery_web/live/range_live/index.html.heex:64
#: lib/cannery_web/live/range_live/index.html.heex:148
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr ""
#: lib/cannery_web/components/shot_record_table_component.ex:45
#: lib/cannery_web/live/pack_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:66
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.html.heex:78
#, elixir-autogen, elixir-format
msgid "Rounds shot"
msgstr ""
@ -478,7 +474,7 @@ msgstr ""
msgid "No other containers"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:57
#: lib/cannery_web/live/range_live/index.html.heex:69
#, elixir-autogen, elixir-format
msgid "Shot log"
msgstr ""
@ -486,7 +482,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
#: lib/cannery_web/components/pack_table_component.ex:181
#: lib/cannery_web/components/pack_table_component.ex:264
#: lib/cannery_web/components/pack_table_component.ex:263
#: lib/cannery_web/components/type_table_component.ex:273
#: lib/cannery_web/live/pack_live/show.html.heex:37
#: lib/cannery_web/live/pack_live/show.html.heex:42
@ -495,36 +491,36 @@ msgstr ""
msgid "$%{amount}"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:177
#: lib/cannery_web/live/type_live/form_component.html.heex:181
#, elixir-autogen, elixir-format
msgid "Bimetal"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:65
#: lib/cannery_web/live/type_live/form_component.html.heex:172
#: lib/cannery_web/live/type_live/form_component.html.heex:176
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:81
#: lib/cannery_web/live/type_live/form_component.html.heex:307
#: lib/cannery_web/live/type_live/form_component.html.heex:311
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:75
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: lib/cannery_web/live/type_live/form_component.html.heex:274
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:73
#: lib/cannery_web/live/type_live/form_component.html.heex:261
#: lib/cannery_web/live/type_live/form_component.html.heex:265
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:374
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@ -548,7 +544,7 @@ msgid "New password"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@ -559,13 +555,13 @@ msgid "Reconnecting..."
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:28
#: lib/cannery_web/live/container_live/show.ex:118
#: lib/cannery_web/live/container_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:63
#: lib/cannery_web/live/container_live/show.ex:119
#: lib/cannery_web/live/container_live/show.ex:131
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr ""
@ -578,7 +574,7 @@ msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:178
#: lib/cannery_web/components/pack_table_component.ex:260
#: lib/cannery_web/components/pack_table_component.ex:259
#: lib/cannery_web/components/type_table_component.ex:272
#: lib/cannery_web/live/type_live/show.html.heex:154
#, elixir-autogen, elixir-format
@ -610,12 +606,12 @@ msgstr ""
msgid "Percentage left:"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:113
#: lib/cannery_web/live/pack_live/show.html.heex:107
#, elixir-autogen, elixir-format
msgid "Rounds used"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#: lib/cannery_web/controllers/user_confirmation_controller.ex:6
#, elixir-autogen, elixir-format
msgid "Confirm your account"
msgstr ""
@ -630,7 +626,7 @@ msgstr ""
msgid "Log in"
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:32
#: lib/cannery_web/controllers/user_registration_controller.ex:31
#, elixir-autogen, elixir-format
msgid "Register"
msgstr ""
@ -641,13 +637,13 @@ msgid "Reset your password"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:31
#: lib/cannery_web/live/range_live/index.ex:47
#: lib/cannery_web/live/range_live/index.ex:52
#: lib/cannery_web/live/range_live/index.ex:68
#, elixir-autogen, elixir-format
msgid "Record Shots"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:77
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr ""
@ -657,22 +653,6 @@ msgstr ""
msgid "Added on:"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:32
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:127
#, elixir-autogen, elixir-format
msgid "English"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "French"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:128
#, elixir-autogen, elixir-format
msgid "German"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Language"
@ -716,7 +696,7 @@ msgstr ""
msgid "Move Ammo"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/container_live/show.html.heex:125
#, elixir-autogen, elixir-format
msgid "No ammo in this container"
msgstr ""
@ -726,7 +706,7 @@ msgstr ""
msgid "Show Ammo"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/show.html.heex:99
#, elixir-autogen, elixir-format
msgid "This ammo is not in a container"
msgstr ""
@ -766,31 +746,31 @@ msgstr ""
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:219
#: lib/cannery_web/components/pack_table_component.ex:218
#: lib/cannery_web/live/pack_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:153
#: lib/cannery_web/live/range_live/index.ex:215
#, elixir-autogen, elixir-format
msgid "Rounds shot: %{count}"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:64
#: lib/cannery_web/components/container_table_component.ex:68
#: lib/cannery_web/components/type_table_component.ex:122
#, elixir-autogen, elixir-format
msgid "Packs"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:65
#: lib/cannery_web/components/container_table_component.ex:69
#: lib/cannery_web/components/type_table_component.ex:143
#, elixir-autogen, elixir-format
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:109
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/type_live/show.html.heex:170
#, elixir-autogen, elixir-format
msgid "View as table"
@ -836,7 +816,7 @@ msgstr ""
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Rounds shot chart"
msgstr ""
@ -943,7 +923,7 @@ msgid "Average CPR"
msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
#: lib/cannery_web/components/pack_table_component.ex:268
#: lib/cannery_web/components/pack_table_component.ex:267
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
@ -989,7 +969,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:50
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1025,16 +1005,11 @@ msgstr ""
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:112
#: lib/cannery_web/live/range_live/index.html.heex:124
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:130
#, elixir-autogen, elixir-format
msgid "Spanish"
msgstr ""
#: lib/cannery_web/components/layouts.ex:15
#: lib/cannery_web/components/layouts/root.html.heex:9
#: lib/cannery_web/components/layouts/root.html.heex:10
@ -1123,27 +1098,27 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:288
#: lib/cannery_web/live/type_live/form_component.html.heex:292
#, elixir-autogen, elixir-format
msgid "+P"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:78
#: lib/cannery_web/live/type_live/form_component.html.heex:82
#, elixir-autogen, elixir-format
msgid ".223"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:62
#, elixir-autogen, elixir-format
msgid "5.56x46mm NATO"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:329
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#, elixir-autogen, elixir-format
msgid "Boxer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:338
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
@ -1154,12 +1129,12 @@ msgstr ""
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/container_table_component.ex:74
#: lib/cannery_web/components/move_pack_component.ex:67
#: lib/cannery_web/components/pack_table_component.ex:62
#: lib/cannery_web/components/shot_record_table_component.ex:48
#: lib/cannery_web/components/type_table_component.ex:99
#: lib/cannery_web/live/pack_live/show.ex:92
#: lib/cannery_web/live/pack_live/show.ex:82
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
@ -1185,21 +1160,21 @@ msgstr ""
msgid "Close modal"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/index.html.heex:58
#: lib/cannery_web/live/range_live/index.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:103
#: lib/cannery_web/live/type_live/index.html.heex:37
#, elixir-autogen, elixir-format
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:343
#: lib/cannery_web/live/type_live/form_component.html.heex:347
#, elixir-autogen, elixir-format
msgid "Attributes"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:56
#: lib/cannery_web/live/type_live/form_component.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format
msgid "Brass height"
msgstr ""
@ -1210,7 +1185,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:103
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1220,13 +1195,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#, elixir-autogen, elixir-format
msgid "Dimensions"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:80
#: lib/cannery_web/live/type_live/form_component.html.heex:293
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1237,7 +1212,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1248,7 +1223,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:231
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1268,35 +1243,37 @@ msgstr ""
msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: lib/cannery_web/live/container_live/show.html.heex:108
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
#: lib/cannery_web/live/pack_live/index.html.heex:61
#: lib/cannery_web/live/range_live/index.html.heex:94
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:106
#: lib/cannery_web/live/type_live/form_component.html.heex:28
#: lib/cannery_web/live/type_live/index.html.heex:40
#: lib/cannery_web/live/type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Pistol"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:258
#: lib/cannery_web/live/type_live/form_component.html.heex:262
#, elixir-autogen, elixir-format
msgid "Powder"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:321
#: lib/cannery_web/live/type_live/form_component.html.heex:325
#, elixir-autogen, elixir-format
msgid "Primer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:119
#: lib/cannery_web/live/type_live/form_component.html.heex:123
#, elixir-autogen, elixir-format
msgid "Projectile"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:106
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/index.html.heex:59
#: lib/cannery_web/live/range_live/index.html.heex:92
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:104
#: lib/cannery_web/live/type_live/form_component.html.heex:26
#: lib/cannery_web/live/type_live/index.html.heex:38
#: lib/cannery_web/live/type_live/show.html.heex:54
#, elixir-autogen, elixir-format
@ -1304,7 +1281,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:239
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1315,7 +1292,7 @@ msgid "Shot charge weight:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1326,7 +1303,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:223
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format
msgid "Shot size"
msgstr ""
@ -1337,7 +1314,7 @@ msgid "Shot size:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:204
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1347,10 +1324,11 @@ msgstr ""
msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/container_live/show.html.heex:107
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
#: lib/cannery_web/live/pack_live/index.html.heex:60
#: lib/cannery_web/live/range_live/index.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:105
#: lib/cannery_web/live/type_live/form_component.html.heex:27
#: lib/cannery_web/live/type_live/index.html.heex:39
#: lib/cannery_web/live/type_live/show.html.heex:52
#, elixir-autogen, elixir-format
@ -1358,12 +1336,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:162
#, elixir-autogen, elixir-format
msgid "Slug core"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1374,13 +1352,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:87
#, elixir-autogen, elixir-format
msgid "Unfired shell length"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:67
#: lib/cannery_web/live/type_live/form_component.html.heex:196
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1391,9 +1369,10 @@ msgid "Wadding:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/index.html.heex:50
#: lib/cannery_web/live/range_live/index.html.heex:83
#: lib/cannery_web/live/range_live/index.html.heex:95
#: lib/cannery_web/live/type_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/index.html.heex:29
#: lib/cannery_web/live/type_live/show.html.heex:46
@ -1413,7 +1392,7 @@ msgid "Used up!"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:39
#: lib/cannery_web/live/range_live/index.ex:60
#, elixir-autogen, elixir-format
msgid "Edit Shot Record"
msgstr ""
@ -1437,7 +1416,7 @@ msgid "No Types"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:42
#: lib/cannery_web/live/pack_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
msgid "Lot number"
msgstr ""
@ -1446,3 +1425,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Lot number:"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Any"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Dates"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No containers staged"
msgstr ""

View File

@ -54,7 +54,7 @@ msgstr ""
msgid "Delete User"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:52
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
#, elixir-autogen, elixir-format
@ -68,7 +68,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:94
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:28
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:44
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:49
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:41
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28
#: lib/cannery_web/controllers/user_session_html/new.html.heex:3
@ -95,7 +95,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:89
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:25
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:3
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:42
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:38
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
@ -118,10 +118,10 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
#: lib/cannery_web/live/container_live/form_component.html.heex:59
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:110
#: lib/cannery_web/live/range_live/form_component.html.heex:45
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
#: lib/cannery_web/live/type_live/form_component.html.heex:382
#: lib/cannery_web/live/type_live/form_component.html.heex:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
@ -131,29 +131,24 @@ msgstr ""
msgid "Send instructions to reset password"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:65
#: lib/cannery_web/live/container_live/show.html.heex:73
#, elixir-autogen, elixir-format
msgid "Why not add one?"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:51
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#, 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:13
#, elixir-autogen, elixir-format
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:42
#: lib/cannery_web/live/pack_live/index.html.heex:116
#: lib/cannery_web/live/pack_live/show.html.heex:84
#: lib/cannery_web/live/range_live/index.html.heex:54
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr ""
@ -178,7 +173,7 @@ msgstr ""
msgid "add a container first"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:85
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format, fuzzy
msgid "Create"
msgstr ""
@ -199,8 +194,8 @@ msgid "View in Catalog"
msgstr ""
#: lib/cannery_web/components/move_pack_component.ex:77
#: lib/cannery_web/live/pack_live/index.html.heex:138
#: lib/cannery_web/live/pack_live/show.html.heex:86
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
@ -210,14 +205,12 @@ msgstr ""
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:82
#: lib/cannery_web/live/range_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:81
#: lib/cannery_web/live/range_live/index.html.heex:37
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
@ -227,8 +220,8 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:145
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:159
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -238,8 +231,8 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:104
#: lib/cannery_web/live/container_live/index.html.heex:162
#: lib/cannery_web/live/container_live/index.html.heex:118
#: lib/cannery_web/live/container_live/index.html.heex:176
#: lib/cannery_web/live/container_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
@ -255,8 +248,8 @@ msgstr ""
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:135
#: lib/cannery_web/live/container_live/index.html.heex:91
#: lib/cannery_web/live/container_live/index.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
@ -272,54 +265,56 @@ msgstr ""
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:120
#: lib/cannery_web/live/container_live/index.html.heex:69
#: lib/cannery_web/live/range_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:124
#: lib/cannery_web/live/container_live/index.html.heex:79
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:119
#: lib/cannery_web/live/container_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:172
#: lib/cannery_web/live/pack_live/index.html.heex:161
#, elixir-autogen, elixir-format, fuzzy
msgid "Clone pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:187
#: lib/cannery_web/live/pack_live/index.html.heex:176
#: lib/cannery_web/live/pack_live/show.html.heex:71
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:160
#: lib/cannery_web/live/pack_live/index.html.heex:149
#: lib/cannery_web/live/pack_live/show.html.heex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:139
#: lib/cannery_web/live/pack_live/index.html.heex:148
#: lib/cannery_web/live/container_live/show.html.heex:147
#: lib/cannery_web/live/pack_live/index.html.heex:137
#: lib/cannery_web/live/type_live/show.html.heex:201
#, elixir-autogen, elixir-format, fuzzy
msgid "View pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:154
#: lib/cannery_web/live/pack_live/show.ex:149
#: lib/cannery_web/live/range_live/index.html.heex:181
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete shot record of %{shot_record_count} shots"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:144
#: lib/cannery_web/live/range_live/index.html.heex:137
#: lib/cannery_web/live/pack_live/show.ex:134
#: lib/cannery_web/live/range_live/index.html.heex:164
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit shot record of %{shot_record_count} shots"
msgstr ""
@ -355,3 +350,8 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy
msgid "add a type first"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage containers"
msgstr ""

View File

@ -40,49 +40,49 @@ msgid "Background color"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:191
#: lib/cannery_web/live/type_live/form_component.html.heex:195
#, elixir-autogen, elixir-format
msgid "Brass"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:159
#: lib/cannery_web/live/type_live/form_component.html.heex:163
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:59
#: lib/cannery_web/live/type_live/form_component.html.heex:132
#: lib/cannery_web/live/type_live/form_component.html.heex:136
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:74
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#: lib/cannery_web/live/type_live/form_component.html.heex:57
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:184
#: lib/cannery_web/live/type_live/form_component.html.heex:188
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr ""
#: lib/cannery_web/components/move_pack_component.ex:64
#: lib/cannery_web/components/pack_table_component.ex:76
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#, elixir-autogen, elixir-format
msgid "Container"
msgstr ""
@ -96,13 +96,13 @@ msgid "Containers"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:87
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#: lib/cannery_web/live/type_live/form_component.html.heex:362
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:104
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
msgid "Count"
msgstr ""
@ -113,9 +113,9 @@ msgstr ""
msgid "Count:"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/components/container_table_component.ex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: lib/cannery_web/live/type_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:43
#, elixir-autogen, elixir-format
msgid "Description"
msgstr ""
@ -141,19 +141,19 @@ msgstr ""
msgid "Edit Tag"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:147
#: lib/cannery_web/live/type_live/form_component.html.heex:151
#, elixir-autogen, elixir-format
msgid "FMJ"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:122
#: lib/cannery_web/live/type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:85
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@ -185,7 +185,7 @@ msgstr ""
msgid "Keep me logged in for 60 days"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/container_table_component.ex:51
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
@ -204,8 +204,8 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:88
#: lib/cannery_web/live/type_live/form_component.html.heex:363
#: lib/cannery_web/live/type_live/form_component.html.heex:366
#: lib/cannery_web/live/type_live/form_component.html.heex:367
#: lib/cannery_web/live/type_live/form_component.html.heex:370
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr ""
@ -220,12 +220,12 @@ msgstr ""
msgid "My cool ammo can"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:45
#: lib/cannery_web/components/container_table_component.ex:49
#: lib/cannery_web/components/type_table_component.ex:152
#: lib/cannery_web/live/container_live/form_component.html.heex:21
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
#: lib/cannery_web/live/tag_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/form_component.html.heex:31
#: lib/cannery_web/live/type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Name"
msgstr ""
@ -276,8 +276,8 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
#: lib/cannery_web/components/shot_record_table_component.ex:46
#: lib/cannery_web/live/pack_live/form_component.html.heex:58
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:80
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
msgid "Notes"
@ -295,13 +295,13 @@ msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:283
#: lib/cannery_web/live/type_live/form_component.html.heex:287
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:52
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr ""
@ -312,7 +312,7 @@ msgid "Price paid:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:82
#: lib/cannery_web/live/type_live/form_component.html.heex:324
#: lib/cannery_web/live/type_live/form_component.html.heex:328
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr ""
@ -332,7 +332,7 @@ msgstr ""
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/controllers/user_settings_controller.ex:9
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:3
#, elixir-autogen, elixir-format
msgid "Settings"
@ -343,17 +343,17 @@ msgstr ""
msgid "Simple:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:100
#: lib/cannery_web/live/pack_live/show.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stored in"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:66
#: lib/cannery_web/components/container_table_component.ex:73
#: lib/cannery_web/components/core_components/topbar.html.heex:28
#: lib/cannery_web/live/tag_live/index.ex:43
#: lib/cannery_web/live/tag_live/index.ex:53
@ -378,16 +378,16 @@ msgid "The self-hosted firearm tracker website"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:84
#: lib/cannery_web/live/type_live/form_component.html.heex:346
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:48
#: lib/cannery_web/components/container_table_component.ex:52
#: lib/cannery_web/components/move_pack_component.ex:65
#: lib/cannery_web/components/pack_table_component.ex:108
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr ""
@ -413,15 +413,16 @@ msgstr ""
msgid "Your data stays with you, period"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:60
#: lib/cannery_web/live/container_live/show.html.heex:68
#, elixir-autogen, elixir-format
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:77
#: lib/cannery_web/components/core_components/topbar.html.heex:48
#: lib/cannery_web/components/pack_table_component.ex:80
#: lib/cannery_web/live/range_live/index.ex:55
#: lib/cannery_web/live/range_live/index.ex:65
#: lib/cannery_web/live/range_live/index.ex:76
#: lib/cannery_web/live/range_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Range"
msgstr ""
@ -433,7 +434,7 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
#: lib/cannery_web/components/shot_record_table_component.ex:47
#: lib/cannery_web/live/pack_live/show.ex:91
#: lib/cannery_web/live/pack_live/show.ex:81
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
@ -444,26 +445,21 @@ msgstr ""
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/components/add_shot_record_component.html.heex:3
#: lib/cannery_web/live/pack_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:52
#: lib/cannery_web/live/range_live/index.html.heex:121
#: lib/cannery_web/live/range_live/index.html.heex:64
#: lib/cannery_web/live/range_live/index.html.heex:148
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr ""
#: lib/cannery_web/components/shot_record_table_component.ex:45
#: lib/cannery_web/live/pack_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:66
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.html.heex:78
#, elixir-autogen, elixir-format
msgid "Rounds shot"
msgstr ""
@ -478,7 +474,7 @@ msgstr ""
msgid "No other containers"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:57
#: lib/cannery_web/live/range_live/index.html.heex:69
#, elixir-autogen, elixir-format
msgid "Shot log"
msgstr ""
@ -486,7 +482,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
#: lib/cannery_web/components/pack_table_component.ex:181
#: lib/cannery_web/components/pack_table_component.ex:264
#: lib/cannery_web/components/pack_table_component.ex:263
#: lib/cannery_web/components/type_table_component.ex:273
#: lib/cannery_web/live/pack_live/show.html.heex:37
#: lib/cannery_web/live/pack_live/show.html.heex:42
@ -495,36 +491,36 @@ msgstr ""
msgid "$%{amount}"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:177
#: lib/cannery_web/live/type_live/form_component.html.heex:181
#, elixir-autogen, elixir-format
msgid "Bimetal"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:65
#: lib/cannery_web/live/type_live/form_component.html.heex:172
#: lib/cannery_web/live/type_live/form_component.html.heex:176
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:81
#: lib/cannery_web/live/type_live/form_component.html.heex:307
#: lib/cannery_web/live/type_live/form_component.html.heex:311
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:75
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: lib/cannery_web/live/type_live/form_component.html.heex:274
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:73
#: lib/cannery_web/live/type_live/form_component.html.heex:261
#: lib/cannery_web/live/type_live/form_component.html.heex:265
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:374
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@ -548,7 +544,7 @@ msgid "New password"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@ -559,13 +555,13 @@ msgid "Reconnecting..."
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:28
#: lib/cannery_web/live/container_live/show.ex:118
#: lib/cannery_web/live/container_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:63
#: lib/cannery_web/live/container_live/show.ex:119
#: lib/cannery_web/live/container_live/show.ex:131
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr ""
@ -578,7 +574,7 @@ msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:178
#: lib/cannery_web/components/pack_table_component.ex:260
#: lib/cannery_web/components/pack_table_component.ex:259
#: lib/cannery_web/components/type_table_component.ex:272
#: lib/cannery_web/live/type_live/show.html.heex:154
#, elixir-autogen, elixir-format
@ -610,12 +606,12 @@ msgstr ""
msgid "Percentage left:"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:113
#: lib/cannery_web/live/pack_live/show.html.heex:107
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds used"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#: lib/cannery_web/controllers/user_confirmation_controller.ex:6
#, elixir-autogen, elixir-format
msgid "Confirm your account"
msgstr ""
@ -630,7 +626,7 @@ msgstr ""
msgid "Log in"
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:32
#: lib/cannery_web/controllers/user_registration_controller.ex:31
#, elixir-autogen, elixir-format
msgid "Register"
msgstr ""
@ -641,13 +637,13 @@ msgid "Reset your password"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:31
#: lib/cannery_web/live/range_live/index.ex:47
#: lib/cannery_web/live/range_live/index.ex:52
#: lib/cannery_web/live/range_live/index.ex:68
#, elixir-autogen, elixir-format, fuzzy
msgid "Record Shots"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:77
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr ""
@ -657,22 +653,6 @@ msgstr ""
msgid "Added on:"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:32
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:127
#, elixir-autogen, elixir-format
msgid "English"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "French"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:128
#, elixir-autogen, elixir-format
msgid "German"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Language"
@ -716,7 +696,7 @@ msgstr ""
msgid "Move Ammo"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/container_live/show.html.heex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container"
msgstr ""
@ -726,7 +706,7 @@ msgstr ""
msgid "Show Ammo"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/show.html.heex:99
#, elixir-autogen, elixir-format, fuzzy
msgid "This ammo is not in a container"
msgstr ""
@ -766,31 +746,31 @@ msgstr ""
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:219
#: lib/cannery_web/components/pack_table_component.ex:218
#: lib/cannery_web/live/pack_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:153
#: lib/cannery_web/live/range_live/index.ex:215
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:64
#: lib/cannery_web/components/container_table_component.ex:68
#: lib/cannery_web/components/type_table_component.ex:122
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:65
#: lib/cannery_web/components/container_table_component.ex:69
#: lib/cannery_web/components/type_table_component.ex:143
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:109
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/type_live/show.html.heex:170
#, elixir-autogen, elixir-format
msgid "View as table"
@ -836,7 +816,7 @@ msgstr ""
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:80
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot chart"
msgstr ""
@ -943,7 +923,7 @@ msgid "Average CPR"
msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
#: lib/cannery_web/components/pack_table_component.ex:268
#: lib/cannery_web/components/pack_table_component.ex:267
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
@ -989,7 +969,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:50
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1025,16 +1005,11 @@ msgstr ""
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:112
#: lib/cannery_web/live/range_live/index.html.heex:124
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:130
#, elixir-autogen, elixir-format
msgid "Spanish"
msgstr ""
#: lib/cannery_web/components/layouts.ex:15
#: lib/cannery_web/components/layouts/root.html.heex:9
#: lib/cannery_web/components/layouts/root.html.heex:10
@ -1123,27 +1098,27 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:288
#: lib/cannery_web/live/type_live/form_component.html.heex:292
#, elixir-autogen, elixir-format
msgid "+P"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:78
#: lib/cannery_web/live/type_live/form_component.html.heex:82
#, elixir-autogen, elixir-format
msgid ".223"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:62
#, elixir-autogen, elixir-format
msgid "5.56x46mm NATO"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:329
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#, elixir-autogen, elixir-format
msgid "Boxer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:338
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
@ -1154,12 +1129,12 @@ msgstr ""
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/container_table_component.ex:74
#: lib/cannery_web/components/move_pack_component.ex:67
#: lib/cannery_web/components/pack_table_component.ex:62
#: lib/cannery_web/components/shot_record_table_component.ex:48
#: lib/cannery_web/components/type_table_component.ex:99
#: lib/cannery_web/live/pack_live/show.ex:92
#: lib/cannery_web/live/pack_live/show.ex:82
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
@ -1185,21 +1160,21 @@ msgstr ""
msgid "Close modal"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/index.html.heex:58
#: lib/cannery_web/live/range_live/index.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:103
#: lib/cannery_web/live/type_live/index.html.heex:37
#, elixir-autogen, elixir-format
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:343
#: lib/cannery_web/live/type_live/form_component.html.heex:347
#, elixir-autogen, elixir-format
msgid "Attributes"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:56
#: lib/cannery_web/live/type_live/form_component.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Brass height"
msgstr ""
@ -1210,7 +1185,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:103
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1220,13 +1195,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#, elixir-autogen, elixir-format
msgid "Dimensions"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:80
#: lib/cannery_web/live/type_live/form_component.html.heex:293
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1237,7 +1212,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1248,7 +1223,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:231
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1268,35 +1243,37 @@ msgstr ""
msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: lib/cannery_web/live/container_live/show.html.heex:108
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
#: lib/cannery_web/live/pack_live/index.html.heex:61
#: lib/cannery_web/live/range_live/index.html.heex:94
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:106
#: lib/cannery_web/live/type_live/form_component.html.heex:28
#: lib/cannery_web/live/type_live/index.html.heex:40
#: lib/cannery_web/live/type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Pistol"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:258
#: lib/cannery_web/live/type_live/form_component.html.heex:262
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:321
#: lib/cannery_web/live/type_live/form_component.html.heex:325
#, elixir-autogen, elixir-format, fuzzy
msgid "Primer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:119
#: lib/cannery_web/live/type_live/form_component.html.heex:123
#, elixir-autogen, elixir-format
msgid "Projectile"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:106
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/index.html.heex:59
#: lib/cannery_web/live/range_live/index.html.heex:92
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:104
#: lib/cannery_web/live/type_live/form_component.html.heex:26
#: lib/cannery_web/live/type_live/index.html.heex:38
#: lib/cannery_web/live/type_live/show.html.heex:54
#, elixir-autogen, elixir-format
@ -1304,7 +1281,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:239
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1315,7 +1292,7 @@ msgid "Shot charge weight:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1326,7 +1303,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:223
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format, fuzzy
msgid "Shot size"
msgstr ""
@ -1337,7 +1314,7 @@ msgid "Shot size:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:204
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1347,10 +1324,11 @@ msgstr ""
msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/container_live/show.html.heex:107
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
#: lib/cannery_web/live/pack_live/index.html.heex:60
#: lib/cannery_web/live/range_live/index.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:105
#: lib/cannery_web/live/type_live/form_component.html.heex:27
#: lib/cannery_web/live/type_live/index.html.heex:39
#: lib/cannery_web/live/type_live/show.html.heex:52
#, elixir-autogen, elixir-format
@ -1358,12 +1336,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:162
#, elixir-autogen, elixir-format
msgid "Slug core"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1374,13 +1352,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:87
#, elixir-autogen, elixir-format
msgid "Unfired shell length"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:67
#: lib/cannery_web/live/type_live/form_component.html.heex:196
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1391,9 +1369,10 @@ msgid "Wadding:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/index.html.heex:50
#: lib/cannery_web/live/range_live/index.html.heex:83
#: lib/cannery_web/live/range_live/index.html.heex:95
#: lib/cannery_web/live/type_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/index.html.heex:29
#: lib/cannery_web/live/type_live/show.html.heex:46
@ -1413,7 +1392,7 @@ msgid "Used up!"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:39
#: lib/cannery_web/live/range_live/index.ex:60
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit Shot Record"
msgstr ""
@ -1437,7 +1416,7 @@ msgid "No Types"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:42
#: lib/cannery_web/live/pack_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
msgid "Lot number"
msgstr ""
@ -1446,3 +1425,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Lot number:"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Any"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:138
#, elixir-autogen, elixir-format, fuzzy
msgid "Dates"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No containers staged"
msgstr ""

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Language: en\n"
#: lib/cannery/containers.ex:224
#: lib/cannery/containers.ex:234
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr ""
@ -26,7 +26,7 @@ msgstr ""
msgid "Could not find that container"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:84
#: lib/cannery_web/controllers/user_settings_controller.ex:83
#, elixir-autogen, elixir-format
msgid "Email change link is invalid or it has expired."
msgstr ""
@ -67,20 +67,20 @@ msgstr ""
msgid "Reset password link is invalid or it has expired."
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:22
#: lib/cannery_web/controllers/user_registration_controller.ex:51
#: lib/cannery_web/controllers/user_registration_controller.ex:21
#: lib/cannery_web/controllers/user_registration_controller.ex:50
#, elixir-autogen, elixir-format
msgid "Sorry, public registration is disabled"
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:12
#: lib/cannery_web/controllers/user_registration_controller.ex:41
#: lib/cannery_web/controllers/user_registration_controller.ex:70
#: lib/cannery_web/controllers/user_registration_controller.ex:11
#: lib/cannery_web/controllers/user_registration_controller.ex:40
#: lib/cannery_web/controllers/user_registration_controller.ex:69
#, elixir-autogen, elixir-format
msgid "Sorry, this invite was not found or expired"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:99
#: lib/cannery_web/controllers/user_settings_controller.ex:98
#, elixir-autogen, elixir-format
msgid "Unable to delete user"
msgstr ""
@ -91,7 +91,7 @@ msgstr ""
msgid "Unauthorized"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:53
#: lib/cannery_web/controllers/user_confirmation_controller.ex:51
#, elixir-autogen, elixir-format
msgid "User confirmation link is invalid or it has expired."
msgstr ""
@ -101,23 +101,23 @@ msgstr ""
msgid "You are not authorized to view this page."
msgstr ""
#: lib/cannery/accounts/user.ex:145
#: lib/cannery/accounts/user.ex:140
#, elixir-autogen, elixir-format
msgid "did not change"
msgstr ""
#: lib/cannery/accounts/user.ex:166
#: lib/cannery/accounts/user.ex:161
#, elixir-autogen, elixir-format
msgid "does not match password"
msgstr ""
## From Ecto.Changeset.put_change/3
#: lib/cannery/accounts/user.ex:203
#: lib/cannery/accounts/user.ex:198
#, elixir-autogen, elixir-format, fuzzy
msgid "is not valid"
msgstr ""
#: lib/cannery/accounts/user.ex:100
#: lib/cannery/accounts/user.ex:95
#, elixir-autogen, elixir-format
msgid "must have the @ sign and no spaces"
msgstr ""
@ -143,56 +143,46 @@ msgstr ""
msgid "Tag could not be removed"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:152
#: lib/cannery_web/live/pack_live/form_component.ex:175
#, elixir-autogen, elixir-format
msgid "Could not parse number of copies"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:142
#: lib/cannery/ammo.ex:1026
#, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr ""
#: lib/cannery/ammo.ex:974
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:71
#: lib/cannery_web/live/range_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:74
#: lib/cannery/activity_log/shot_record.ex:71
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:88
#: lib/cannery/activity_log/shot_record.ex:85
#, elixir-autogen, elixir-format
msgid "Ammo left can be at most %{count} rounds"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:84
#: lib/cannery/activity_log/shot_record.ex:81
#, elixir-autogen, elixir-format
msgid "Ammo left must be at least 0"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:119
#: lib/cannery/activity_log/shot_record.ex:116
#, elixir-autogen, elixir-format, fuzzy
msgid "Count can be at most %{count} shots"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:80
#: lib/cannery/activity_log/shot_record.ex:77
#, elixir-autogen, elixir-format
msgid "can't be blank"
msgstr ""
#: lib/cannery/ammo/pack.ex:100
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a type and container"
msgstr ""
#: lib/cannery_web/controllers/error_html.ex:11
#: lib/cannery_web/controllers/error_json.ex:9
#, elixir-autogen, elixir-format, fuzzy
@ -208,3 +198,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "You must log in to access this page."
msgstr ""
#: lib/cannery/ammo/pack.ex:101
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid container"
msgstr ""
#: lib/cannery/ammo/pack.ex:99
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr ""

View File

@ -39,26 +39,26 @@ msgstr ""
msgid "%{name} updated successfully"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:29
#: lib/cannery_web/controllers/user_settings_controller.ex:28
#, elixir-autogen, elixir-format
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:110
#: lib/cannery_web/live/invite_live/index.html.heex:138
#: lib/cannery_web/live/invite_live/index.html.heex:145
#, 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:99
#: lib/cannery_web/live/container_live/index.html.heex:157
#: lib/cannery_web/live/container_live/index.html.heex:113
#: lib/cannery_web/live/container_live/index.html.heex:171
#: lib/cannery_web/live/container_live/show.html.heex:45
#: lib/cannery_web/live/tag_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:185
#: lib/cannery_web/live/pack_live/index.html.heex:174
#: lib/cannery_web/live/pack_live/show.html.heex:69
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -74,12 +74,12 @@ msgstr ""
msgid "Are you sure you want to log out?"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:77
#: lib/cannery_web/controllers/user_settings_controller.ex:76
#, elixir-autogen, elixir-format
msgid "Email changed successfully."
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
#: lib/cannery_web/controllers/user_confirmation_controller.ex:21
#, 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 ""
@ -99,12 +99,12 @@ msgstr ""
msgid "Password reset successfully."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:49
#: lib/cannery_web/controllers/user_settings_controller.ex:48
#, elixir-autogen, elixir-format
msgid "Password updated successfully."
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:65
#: lib/cannery_web/controllers/user_registration_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Please check your email to verify your account"
msgstr ""
@ -112,15 +112,15 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
#: lib/cannery_web/live/container_live/form_component.html.heex:61
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
#: lib/cannery_web/live/pack_live/form_component.html.heex:111
#: lib/cannery_web/live/range_live/form_component.html.heex:47
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
#: lib/cannery_web/live/type_live/form_component.html.heex:383
#: lib/cannery_web/live/type_live/form_component.html.heex:387
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:95
#: lib/cannery_web/controllers/user_settings_controller.ex:94
#, elixir-autogen, elixir-format
msgid "Your account has been deleted"
msgstr ""
@ -140,7 +140,7 @@ msgstr ""
msgid "%{tag_name} has been removed from %{container_name}"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "Adding..."
msgstr ""
@ -150,19 +150,14 @@ msgstr ""
msgid "Shots recorded successfully"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:157
#: lib/cannery_web/live/range_live/index.html.heex:151
#: lib/cannery_web/live/pack_live/show.ex:147
#: lib/cannery_web/live/range_live/index.html.heex:178
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.ex:78
#: lib/cannery_web/live/pack_live/show.ex:69
#: lib/cannery_web/live/range_live/index.ex:99
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
msgstr ""
@ -172,7 +167,7 @@ msgstr ""
msgid "Shot records updated successfully"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:37
#: lib/cannery_web/controllers/user_confirmation_controller.ex:35
#, elixir-autogen, elixir-format
msgid "%{email} confirmed successfully."
msgstr ""
@ -198,7 +193,7 @@ msgstr ""
msgid "You'll need to"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:86
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "Creating..."
msgstr ""
@ -208,7 +203,7 @@ msgstr ""
msgid "Are you sure you want to change your language?"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:65
#: lib/cannery_web/controllers/user_settings_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Language updated successfully."
msgstr ""
@ -219,17 +214,12 @@ msgstr ""
msgid "Ammo deleted succesfully"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:118
#: lib/cannery_web/live/pack_live/form_component.ex:141
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo updated successfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:177
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
@ -267,7 +257,7 @@ msgstr ""
msgid "%{invite_name} updated succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:125
#: lib/cannery_web/live/invite_live/index.ex:139
#, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully"
msgstr ""
@ -281,3 +271,13 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Container unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:128
#, elixir-autogen, elixir-format
msgid "Email resent to %{user_email} succesfully"
msgstr ""

View File

@ -10,7 +10,7 @@
msgid ""
msgstr ""
#: lib/cannery/containers.ex:224
#: lib/cannery/containers.ex:234
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr ""
@ -26,7 +26,7 @@ msgstr ""
msgid "Could not find that container"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:84
#: lib/cannery_web/controllers/user_settings_controller.ex:83
#, elixir-autogen, elixir-format
msgid "Email change link is invalid or it has expired."
msgstr ""
@ -67,20 +67,20 @@ msgstr ""
msgid "Reset password link is invalid or it has expired."
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:22
#: lib/cannery_web/controllers/user_registration_controller.ex:51
#: lib/cannery_web/controllers/user_registration_controller.ex:21
#: lib/cannery_web/controllers/user_registration_controller.ex:50
#, elixir-autogen, elixir-format
msgid "Sorry, public registration is disabled"
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:12
#: lib/cannery_web/controllers/user_registration_controller.ex:41
#: lib/cannery_web/controllers/user_registration_controller.ex:70
#: lib/cannery_web/controllers/user_registration_controller.ex:11
#: lib/cannery_web/controllers/user_registration_controller.ex:40
#: lib/cannery_web/controllers/user_registration_controller.ex:69
#, elixir-autogen, elixir-format
msgid "Sorry, this invite was not found or expired"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:99
#: lib/cannery_web/controllers/user_settings_controller.ex:98
#, elixir-autogen, elixir-format
msgid "Unable to delete user"
msgstr ""
@ -91,7 +91,7 @@ msgstr ""
msgid "Unauthorized"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:53
#: lib/cannery_web/controllers/user_confirmation_controller.ex:51
#, elixir-autogen, elixir-format
msgid "User confirmation link is invalid or it has expired."
msgstr ""
@ -101,22 +101,22 @@ msgstr ""
msgid "You are not authorized to view this page."
msgstr ""
#: lib/cannery/accounts/user.ex:145
#: lib/cannery/accounts/user.ex:140
#, elixir-autogen, elixir-format
msgid "did not change"
msgstr ""
#: lib/cannery/accounts/user.ex:166
#: lib/cannery/accounts/user.ex:161
#, elixir-autogen, elixir-format
msgid "does not match password"
msgstr ""
#: lib/cannery/accounts/user.ex:203
#: lib/cannery/accounts/user.ex:198
#, elixir-autogen, elixir-format
msgid "is not valid"
msgstr ""
#: lib/cannery/accounts/user.ex:100
#: lib/cannery/accounts/user.ex:95
#, elixir-autogen, elixir-format
msgid "must have the @ sign and no spaces"
msgstr ""
@ -142,56 +142,46 @@ msgstr ""
msgid "Tag could not be removed"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:152
#: lib/cannery_web/live/pack_live/form_component.ex:175
#, elixir-autogen, elixir-format
msgid "Could not parse number of copies"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:142
#: lib/cannery/ammo.ex:1026
#, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr ""
#: lib/cannery/ammo.ex:974
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:71
#: lib/cannery_web/live/range_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:74
#: lib/cannery/activity_log/shot_record.ex:71
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo pack"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:88
#: lib/cannery/activity_log/shot_record.ex:85
#, elixir-autogen, elixir-format
msgid "Ammo left can be at most %{count} rounds"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:84
#: lib/cannery/activity_log/shot_record.ex:81
#, elixir-autogen, elixir-format
msgid "Ammo left must be at least 0"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:119
#: lib/cannery/activity_log/shot_record.ex:116
#, elixir-autogen, elixir-format
msgid "Count can be at most %{count} shots"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:80
#: lib/cannery/activity_log/shot_record.ex:77
#, elixir-autogen, elixir-format
msgid "can't be blank"
msgstr ""
#: lib/cannery/ammo/pack.ex:100
#, elixir-autogen, elixir-format
msgid "Please select a type and container"
msgstr ""
#: lib/cannery_web/controllers/error_html.ex:11
#: lib/cannery_web/controllers/error_json.ex:9
#, elixir-autogen, elixir-format
@ -207,3 +197,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "You must log in to access this page."
msgstr ""
#: lib/cannery/ammo/pack.ex:101
#, elixir-autogen, elixir-format
msgid "Please select a valid container"
msgstr ""
#: lib/cannery/ammo/pack.ex:99
#, elixir-autogen, elixir-format
msgid "Please select a valid type"
msgstr ""

View File

@ -67,7 +67,7 @@ msgstr "Crear Invitación"
msgid "Delete User"
msgstr "Eliminar cuenta de Usuario"
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:52
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
#, elixir-autogen, elixir-format
@ -81,7 +81,7 @@ msgstr "¡Invita a alguien nuevo!"
#: lib/cannery_web/components/core_components/topbar.html.heex:94
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:28
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:44
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:49
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:41
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28
#: lib/cannery_web/controllers/user_session_html/new.html.heex:3
@ -108,7 +108,7 @@ msgstr "Nueva Etiqueta"
#: lib/cannery_web/components/core_components/topbar.html.heex:89
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:25
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:3
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:42
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:38
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
@ -131,10 +131,10 @@ msgstr "Resetear contraseña"
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
#: lib/cannery_web/live/container_live/form_component.html.heex:59
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:110
#: lib/cannery_web/live/range_live/form_component.html.heex:45
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
#: lib/cannery_web/live/type_live/form_component.html.heex:382
#: lib/cannery_web/live/type_live/form_component.html.heex:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr "Guardar"
@ -144,29 +144,24 @@ msgstr "Guardar"
msgid "Send instructions to reset password"
msgstr "Enviar instrucciones para reestablecer contraseña"
#: lib/cannery_web/live/container_live/show.html.heex:65
#: lib/cannery_web/live/container_live/show.html.heex:73
#, elixir-autogen, elixir-format
msgid "Why not add one?"
msgstr "¿Por qué no añadir una?"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:51
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#, elixir-autogen, elixir-format
msgid "Add"
msgstr "Añadir"
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage ammo"
msgstr "Preparar munición"
#: lib/cannery_web/live/range_live/index.html.heex:13
#, elixir-autogen, elixir-format
msgid "Why not get some ready to shoot?"
msgstr "¿Por qué no preparar parte para disparar?"
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:42
#: lib/cannery_web/live/pack_live/index.html.heex:116
#: lib/cannery_web/live/pack_live/show.html.heex:84
#: lib/cannery_web/live/range_live/index.html.heex:54
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr "Tiros récord"
@ -191,7 +186,7 @@ msgstr "Copiar al portapapeles"
msgid "add a container first"
msgstr "añade primero un contenedor"
#: lib/cannery_web/live/pack_live/form_component.html.heex:85
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr "Crear"
@ -212,8 +207,8 @@ msgid "View in Catalog"
msgstr "Ver en Catalogo"
#: lib/cannery_web/components/move_pack_component.ex:77
#: lib/cannery_web/live/pack_live/index.html.heex:138
#: lib/cannery_web/live/pack_live/show.html.heex:86
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr "Mover munición"
@ -223,14 +218,12 @@ msgstr "Mover munición"
msgid "Set Unlimited"
msgstr "Activar ilimitados"
#: lib/cannery_web/live/pack_live/show.html.heex:82
#: lib/cannery_web/live/range_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr "Preparar para el campo de tiro"
#: lib/cannery_web/live/pack_live/show.html.heex:81
#: lib/cannery_web/live/range_live/index.html.heex:37
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr "Desmontar del campo de tiro"
@ -240,8 +233,8 @@ msgstr "Desmontar del campo de tiro"
msgid "Export Data as JSON"
msgstr "Exportar datos como JSON"
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:145
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:159
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -251,8 +244,8 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:104
#: lib/cannery_web/live/container_live/index.html.heex:162
#: lib/cannery_web/live/container_live/index.html.heex:118
#: lib/cannery_web/live/container_live/index.html.heex:176
#: lib/cannery_web/live/container_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
@ -268,8 +261,8 @@ msgstr ""
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:135
#: lib/cannery_web/live/container_live/index.html.heex:91
#: lib/cannery_web/live/container_live/index.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
@ -285,54 +278,56 @@ msgstr ""
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:120
#: lib/cannery_web/live/container_live/index.html.heex:69
#: lib/cannery_web/live/range_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr "Preparar munición"
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:124
#: lib/cannery_web/live/container_live/index.html.heex:79
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:119
#: lib/cannery_web/live/container_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:172
#: lib/cannery_web/live/pack_live/index.html.heex:161
#, elixir-autogen, elixir-format, fuzzy
msgid "Clone pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:187
#: lib/cannery_web/live/pack_live/index.html.heex:176
#: lib/cannery_web/live/pack_live/show.html.heex:71
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:160
#: lib/cannery_web/live/pack_live/index.html.heex:149
#: lib/cannery_web/live/pack_live/show.html.heex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:139
#: lib/cannery_web/live/pack_live/index.html.heex:148
#: lib/cannery_web/live/container_live/show.html.heex:147
#: lib/cannery_web/live/pack_live/index.html.heex:137
#: lib/cannery_web/live/type_live/show.html.heex:201
#, elixir-autogen, elixir-format, fuzzy
msgid "View pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:154
#: lib/cannery_web/live/pack_live/show.ex:149
#: lib/cannery_web/live/range_live/index.html.heex:181
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete shot record of %{shot_record_count} shots"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:144
#: lib/cannery_web/live/range_live/index.html.heex:137
#: lib/cannery_web/live/pack_live/show.ex:134
#: lib/cannery_web/live/range_live/index.html.heex:164
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit shot record of %{shot_record_count} shots"
msgstr ""
@ -368,3 +363,8 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy
msgid "add a type first"
msgstr "añade primero un tipo de munición"
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage containers"
msgstr ""

View File

@ -44,49 +44,49 @@ msgid "Background color"
msgstr "Color de fondo"
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr "Fogueo"
#: lib/cannery_web/live/type_live/form_component.html.heex:191
#: lib/cannery_web/live/type_live/form_component.html.heex:195
#, elixir-autogen, elixir-format
msgid "Brass"
msgstr "Latón"
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:159
#: lib/cannery_web/live/type_live/form_component.html.heex:163
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr "Núcleo de bala"
#: lib/cannery_web/components/type_table_component.ex:59
#: lib/cannery_web/live/type_live/form_component.html.heex:132
#: lib/cannery_web/live/type_live/form_component.html.heex:136
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr "Tipo de bala"
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:74
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr "Calibre"
#: lib/cannery_web/components/type_table_component.ex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#: lib/cannery_web/live/type_live/form_component.html.heex:57
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr "Cartucho"
#: lib/cannery_web/components/type_table_component.ex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:184
#: lib/cannery_web/live/type_live/form_component.html.heex:188
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr "Material del casquillo"
#: lib/cannery_web/components/move_pack_component.ex:64
#: lib/cannery_web/components/pack_table_component.ex:76
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#, elixir-autogen, elixir-format
msgid "Container"
msgstr "Contenedor"
@ -100,13 +100,13 @@ msgid "Containers"
msgstr "Contenedores"
#: lib/cannery_web/components/type_table_component.ex:87
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#: lib/cannery_web/live/type_live/form_component.html.heex:362
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr "Corrosiva"
#: lib/cannery_web/components/pack_table_component.ex:104
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
msgid "Count"
msgstr "Cantidad"
@ -117,9 +117,9 @@ msgstr "Cantidad"
msgid "Count:"
msgstr "Cantidad:"
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/components/container_table_component.ex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: lib/cannery_web/live/type_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:43
#, elixir-autogen, elixir-format
msgid "Description"
msgstr "Descripción"
@ -145,19 +145,19 @@ msgstr "Editar Invitación"
msgid "Edit Tag"
msgstr "Editar Etiqueta"
#: lib/cannery_web/live/type_live/form_component.html.heex:147
#: lib/cannery_web/live/type_live/form_component.html.heex:151
#, elixir-autogen, elixir-format
msgid "FMJ"
msgstr "Bala encamisada"
#: lib/cannery_web/components/type_table_component.ex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:122
#: lib/cannery_web/live/type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr "Grano"
#: lib/cannery_web/components/type_table_component.ex:85
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr "Incendiaria"
@ -189,7 +189,7 @@ msgstr "Invitaciones"
msgid "Keep me logged in for 60 days"
msgstr "Mantener registrado durante 60 días"
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/container_table_component.ex:51
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
@ -208,8 +208,8 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Cargador, Clip, Caja de Munición, etc"
#: lib/cannery_web/components/type_table_component.ex:88
#: lib/cannery_web/live/type_live/form_component.html.heex:363
#: lib/cannery_web/live/type_live/form_component.html.heex:366
#: lib/cannery_web/live/type_live/form_component.html.heex:367
#: lib/cannery_web/live/type_live/form_component.html.heex:370
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr "Fabricante"
@ -224,12 +224,12 @@ msgstr "Lata de munición metálica con la pegatina de chica de anime"
msgid "My cool ammo can"
msgstr "Mi lata de munición guapa"
#: lib/cannery_web/components/container_table_component.ex:45
#: lib/cannery_web/components/container_table_component.ex:49
#: lib/cannery_web/components/type_table_component.ex:152
#: lib/cannery_web/live/container_live/form_component.html.heex:21
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
#: lib/cannery_web/live/tag_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/form_component.html.heex:31
#: lib/cannery_web/live/type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Name"
msgstr "Nombre"
@ -280,8 +280,8 @@ msgstr "Sin etiquetas"
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
#: lib/cannery_web/components/shot_record_table_component.ex:46
#: lib/cannery_web/live/pack_live/form_component.html.heex:58
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:80
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
msgid "Notes"
@ -299,13 +299,13 @@ msgid "On the bookshelf"
msgstr "En la estantería"
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:283
#: lib/cannery_web/live/type_live/form_component.html.heex:287
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr "Presión"
#: lib/cannery_web/components/pack_table_component.ex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:52
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr "Precio pagado"
@ -316,7 +316,7 @@ msgid "Price paid:"
msgstr "Precio pagado:"
#: lib/cannery_web/components/type_table_component.ex:82
#: lib/cannery_web/live/type_live/form_component.html.heex:324
#: lib/cannery_web/live/type_live/form_component.html.heex:328
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr "Tipo de espoleta"
@ -338,7 +338,7 @@ msgstr ""
"Autogestiona tu propia instancia, o usa una instancia de alguién de quien te "
"fíes."
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/controllers/user_settings_controller.ex:9
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:3
#, elixir-autogen, elixir-format
msgid "Settings"
@ -349,17 +349,17 @@ msgstr "Ajustes"
msgid "Simple:"
msgstr "Simple:"
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr "Acero"
#: lib/cannery_web/live/pack_live/show.html.heex:100
#: lib/cannery_web/live/pack_live/show.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stored in"
msgstr "Guardado en"
#: lib/cannery_web/components/container_table_component.ex:66
#: lib/cannery_web/components/container_table_component.ex:73
#: lib/cannery_web/components/core_components/topbar.html.heex:28
#: lib/cannery_web/live/tag_live/index.ex:43
#: lib/cannery_web/live/tag_live/index.ex:53
@ -385,16 +385,16 @@ msgid "The self-hosted firearm tracker website"
msgstr "La página de seguimiento de armas autogestionada"
#: lib/cannery_web/components/type_table_component.ex:84
#: lib/cannery_web/live/type_live/form_component.html.heex:346
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr "Trazadora"
#: lib/cannery_web/components/container_table_component.ex:48
#: lib/cannery_web/components/container_table_component.ex:52
#: lib/cannery_web/components/move_pack_component.ex:65
#: lib/cannery_web/components/pack_table_component.ex:108
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr "Tipo"
@ -420,15 +420,16 @@ msgstr "Usos restantes"
msgid "Your data stays with you, period"
msgstr "Tus datos se quedan contigo, sin excepciones"
#: lib/cannery_web/live/container_live/show.html.heex:60
#: lib/cannery_web/live/container_live/show.html.heex:68
#, elixir-autogen, elixir-format
msgid "No tags for this container"
msgstr "Contenedor sin etiquetas"
#: lib/cannery_web/components/container_table_component.ex:77
#: lib/cannery_web/components/core_components/topbar.html.heex:48
#: lib/cannery_web/components/pack_table_component.ex:80
#: lib/cannery_web/live/range_live/index.ex:55
#: lib/cannery_web/live/range_live/index.ex:65
#: lib/cannery_web/live/range_live/index.ex:76
#: lib/cannery_web/live/range_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Range"
msgstr "Campo de tiro"
@ -440,7 +441,7 @@ msgstr "Día de disparar"
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
#: lib/cannery_web/components/shot_record_table_component.ex:47
#: lib/cannery_web/live/pack_live/show.ex:91
#: lib/cannery_web/live/pack_live/show.ex:81
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
@ -451,26 +452,21 @@ msgstr "Fecha"
msgid "Shots fired"
msgstr "Tiros disparados"
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No ammo staged"
msgstr "No hay munición preparada"
#: lib/cannery_web/components/add_shot_record_component.html.heex:3
#: lib/cannery_web/live/pack_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr "Tiros récord"
#: lib/cannery_web/live/range_live/index.html.heex:52
#: lib/cannery_web/live/range_live/index.html.heex:121
#: lib/cannery_web/live/range_live/index.html.heex:64
#: lib/cannery_web/live/range_live/index.html.heex:148
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr "No se han grabado tiros"
#: lib/cannery_web/components/shot_record_table_component.ex:45
#: lib/cannery_web/live/pack_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:66
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.html.heex:78
#, elixir-autogen, elixir-format
msgid "Rounds shot"
msgstr "Balas disparadas"
@ -485,7 +481,7 @@ msgstr "Mover munición"
msgid "No other containers"
msgstr "No hay otros contenedores"
#: lib/cannery_web/live/range_live/index.html.heex:57
#: lib/cannery_web/live/range_live/index.html.heex:69
#, elixir-autogen, elixir-format
msgid "Shot log"
msgstr "Registro de tiros"
@ -493,7 +489,7 @@ msgstr "Registro de tiros"
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
#: lib/cannery_web/components/pack_table_component.ex:181
#: lib/cannery_web/components/pack_table_component.ex:264
#: lib/cannery_web/components/pack_table_component.ex:263
#: lib/cannery_web/components/type_table_component.ex:273
#: lib/cannery_web/live/pack_live/show.html.heex:37
#: lib/cannery_web/live/pack_live/show.html.heex:42
@ -502,36 +498,36 @@ msgstr "Registro de tiros"
msgid "$%{amount}"
msgstr "$%{amount}"
#: lib/cannery_web/live/type_live/form_component.html.heex:177
#: lib/cannery_web/live/type_live/form_component.html.heex:181
#, elixir-autogen, elixir-format
msgid "Bimetal"
msgstr "Bimetal"
#: lib/cannery_web/components/type_table_component.ex:65
#: lib/cannery_web/live/type_live/form_component.html.heex:172
#: lib/cannery_web/live/type_live/form_component.html.heex:176
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr "Tipo de camisa"
#: lib/cannery_web/components/type_table_component.ex:81
#: lib/cannery_web/live/type_live/form_component.html.heex:307
#: lib/cannery_web/live/type_live/form_component.html.heex:311
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr "Velocidad de boca"
#: lib/cannery_web/components/type_table_component.ex:75
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: lib/cannery_web/live/type_live/form_component.html.heex:274
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr "Granos de polvora por carga"
#: lib/cannery_web/components/type_table_component.ex:73
#: lib/cannery_web/live/type_live/form_component.html.heex:261
#: lib/cannery_web/live/type_live/form_component.html.heex:265
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr "Tipo de polvora"
#: lib/cannery_web/live/type_live/form_component.html.heex:374
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@ -555,7 +551,7 @@ msgid "New password"
msgstr "Nueva contraseña"
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr "Tipo de fuego"
@ -566,13 +562,13 @@ msgid "Reconnecting..."
msgstr "Reconectando..."
#: lib/cannery_web/live/container_live/index.ex:28
#: lib/cannery_web/live/container_live/show.ex:118
#: lib/cannery_web/live/container_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr "Editar %{name}"
#: lib/cannery_web/live/container_live/index.ex:63
#: lib/cannery_web/live/container_live/show.ex:119
#: lib/cannery_web/live/container_live/show.ex:131
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr "Editar etiquetas de %{name}"
@ -585,7 +581,7 @@ msgid "Rounds:"
msgstr "Balas:"
#: lib/cannery_web/components/pack_table_component.ex:178
#: lib/cannery_web/components/pack_table_component.ex:260
#: lib/cannery_web/components/pack_table_component.ex:259
#: lib/cannery_web/components/type_table_component.ex:272
#: lib/cannery_web/live/type_live/show.html.heex:154
#, elixir-autogen, elixir-format
@ -617,12 +613,12 @@ msgstr "Cantidad original:"
msgid "Percentage left:"
msgstr "Pocentaje restante:"
#: lib/cannery_web/live/pack_live/show.html.heex:113
#: lib/cannery_web/live/pack_live/show.html.heex:107
#, elixir-autogen, elixir-format
msgid "Rounds used"
msgstr "Balas usadas"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#: lib/cannery_web/controllers/user_confirmation_controller.ex:6
#, elixir-autogen, elixir-format
msgid "Confirm your account"
msgstr "Confirmar su cuenta"
@ -637,7 +633,7 @@ msgstr "¿Olvidó su contraseña?"
msgid "Log in"
msgstr "Entrar"
#: lib/cannery_web/controllers/user_registration_controller.ex:32
#: lib/cannery_web/controllers/user_registration_controller.ex:31
#, elixir-autogen, elixir-format
msgid "Register"
msgstr "Registrarse"
@ -648,13 +644,13 @@ msgid "Reset your password"
msgstr "Reestablecer contraseña"
#: lib/cannery_web/live/pack_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:31
#: lib/cannery_web/live/range_live/index.ex:47
#: lib/cannery_web/live/range_live/index.ex:52
#: lib/cannery_web/live/range_live/index.ex:68
#, elixir-autogen, elixir-format
msgid "Record Shots"
msgstr "Tiros Récord"
#: lib/cannery_web/live/pack_live/form_component.html.heex:77
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr "Copias"
@ -664,22 +660,6 @@ msgstr "Copias"
msgid "Added on:"
msgstr "Añadido en:"
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:32
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:127
#, elixir-autogen, elixir-format
msgid "English"
msgstr "Inglés"
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "French"
msgstr "Francés"
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:128
#, elixir-autogen, elixir-format
msgid "German"
msgstr "Alemán"
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Language"
@ -723,7 +703,7 @@ msgstr "Editar Munición"
msgid "Move Ammo"
msgstr "Mover Munición"
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/container_live/show.html.heex:125
#, elixir-autogen, elixir-format
msgid "No ammo in this container"
msgstr "No hay munición en este contenedor"
@ -733,7 +713,7 @@ msgstr "No hay munición en este contenedor"
msgid "Show Ammo"
msgstr "Mostrar Munición"
#: lib/cannery_web/live/pack_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/show.html.heex:99
#, elixir-autogen, elixir-format
msgid "This ammo is not in a container"
msgstr "Esta munición no está en un contenedor"
@ -774,31 +754,31 @@ msgstr "Contenedor:"
msgid "Show used"
msgstr "Mostrar usadas"
#: lib/cannery_web/components/pack_table_component.ex:219
#: lib/cannery_web/components/pack_table_component.ex:218
#: lib/cannery_web/live/pack_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr "%{percentage}%"
#: lib/cannery_web/live/range_live/index.ex:153
#: lib/cannery_web/live/range_live/index.ex:215
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}"
msgstr "Balas disparadas: %{count}"
#: lib/cannery_web/components/container_table_component.ex:64
#: lib/cannery_web/components/container_table_component.ex:68
#: lib/cannery_web/components/type_table_component.ex:122
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr "Paquetes"
#: lib/cannery_web/components/container_table_component.ex:65
#: lib/cannery_web/components/container_table_component.ex:69
#: lib/cannery_web/components/type_table_component.ex:143
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
msgstr "Balas"
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:109
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/type_live/show.html.heex:170
#, elixir-autogen, elixir-format
msgid "View as table"
@ -844,7 +824,7 @@ msgstr "Balas usadas"
msgid "Used rounds:"
msgstr "Balas usadas:"
#: lib/cannery_web/live/range_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:80
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot chart"
msgstr "Tabla de disparos"
@ -951,7 +931,7 @@ msgid "Average CPR"
msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
#: lib/cannery_web/components/pack_table_component.ex:268
#: lib/cannery_web/components/pack_table_component.ex:267
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr "Vacio"
@ -997,7 +977,7 @@ msgid "Never used"
msgstr "Nunca usada"
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:50
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr "Comprada en"
@ -1033,16 +1013,11 @@ msgstr ""
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:112
#: lib/cannery_web/live/range_live/index.html.heex:124
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:130
#, elixir-autogen, elixir-format
msgid "Spanish"
msgstr ""
#: lib/cannery_web/components/layouts.ex:15
#: lib/cannery_web/components/layouts/root.html.heex:9
#: lib/cannery_web/components/layouts/root.html.heex:10
@ -1142,27 +1117,27 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:288
#: lib/cannery_web/live/type_live/form_component.html.heex:292
#, elixir-autogen, elixir-format
msgid "+P"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:78
#: lib/cannery_web/live/type_live/form_component.html.heex:82
#, elixir-autogen, elixir-format
msgid ".223"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:62
#, elixir-autogen, elixir-format
msgid "5.56x46mm NATO"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:329
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#, elixir-autogen, elixir-format
msgid "Boxer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:338
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
@ -1173,12 +1148,12 @@ msgstr ""
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/container_table_component.ex:74
#: lib/cannery_web/components/move_pack_component.ex:67
#: lib/cannery_web/components/pack_table_component.ex:62
#: lib/cannery_web/components/shot_record_table_component.ex:48
#: lib/cannery_web/components/type_table_component.ex:99
#: lib/cannery_web/live/pack_live/show.ex:92
#: lib/cannery_web/live/pack_live/show.ex:82
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
@ -1204,21 +1179,21 @@ msgstr ""
msgid "Close modal"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/index.html.heex:58
#: lib/cannery_web/live/range_live/index.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:103
#: lib/cannery_web/live/type_live/index.html.heex:37
#, elixir-autogen, elixir-format
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:343
#: lib/cannery_web/live/type_live/form_component.html.heex:347
#, elixir-autogen, elixir-format
msgid "Attributes"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:56
#: lib/cannery_web/live/type_live/form_component.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Brass height"
msgstr "Latón"
@ -1229,7 +1204,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:103
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1239,13 +1214,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#, elixir-autogen, elixir-format
msgid "Dimensions"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:80
#: lib/cannery_web/live/type_live/form_component.html.heex:293
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1256,7 +1231,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1267,7 +1242,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:231
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1287,35 +1262,37 @@ msgstr "Sin Munición"
msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: lib/cannery_web/live/container_live/show.html.heex:108
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
#: lib/cannery_web/live/pack_live/index.html.heex:61
#: lib/cannery_web/live/range_live/index.html.heex:94
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:106
#: lib/cannery_web/live/type_live/form_component.html.heex:28
#: lib/cannery_web/live/type_live/index.html.heex:40
#: lib/cannery_web/live/type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Pistol"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:258
#: lib/cannery_web/live/type_live/form_component.html.heex:262
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder"
msgstr "Tipo de polvora"
#: lib/cannery_web/live/type_live/form_component.html.heex:321
#: lib/cannery_web/live/type_live/form_component.html.heex:325
#, elixir-autogen, elixir-format, fuzzy
msgid "Primer"
msgstr "Tipo de espoleta"
#: lib/cannery_web/live/type_live/form_component.html.heex:119
#: lib/cannery_web/live/type_live/form_component.html.heex:123
#, elixir-autogen, elixir-format
msgid "Projectile"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:106
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/index.html.heex:59
#: lib/cannery_web/live/range_live/index.html.heex:92
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:104
#: lib/cannery_web/live/type_live/form_component.html.heex:26
#: lib/cannery_web/live/type_live/index.html.heex:38
#: lib/cannery_web/live/type_live/show.html.heex:54
#, elixir-autogen, elixir-format
@ -1323,7 +1300,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:239
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1334,7 +1311,7 @@ msgid "Shot charge weight:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1345,7 +1322,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:223
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format, fuzzy
msgid "Shot size"
msgstr "Tiros disparados"
@ -1356,7 +1333,7 @@ msgid "Shot size:"
msgstr "Tiros disparados"
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:204
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1366,10 +1343,11 @@ msgstr ""
msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/container_live/show.html.heex:107
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
#: lib/cannery_web/live/pack_live/index.html.heex:60
#: lib/cannery_web/live/range_live/index.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:105
#: lib/cannery_web/live/type_live/form_component.html.heex:27
#: lib/cannery_web/live/type_live/index.html.heex:39
#: lib/cannery_web/live/type_live/show.html.heex:52
#, elixir-autogen, elixir-format
@ -1377,12 +1355,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:162
#, elixir-autogen, elixir-format
msgid "Slug core"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1393,13 +1371,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:87
#, elixir-autogen, elixir-format
msgid "Unfired shell length"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:67
#: lib/cannery_web/live/type_live/form_component.html.heex:196
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1410,9 +1388,10 @@ msgid "Wadding:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/index.html.heex:50
#: lib/cannery_web/live/range_live/index.html.heex:83
#: lib/cannery_web/live/range_live/index.html.heex:95
#: lib/cannery_web/live/type_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/index.html.heex:29
#: lib/cannery_web/live/type_live/show.html.heex:46
@ -1432,7 +1411,7 @@ msgid "Used up!"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:39
#: lib/cannery_web/live/range_live/index.ex:60
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit Shot Record"
msgstr "Editar Tiros Récord"
@ -1456,7 +1435,7 @@ msgid "No Types"
msgstr "Tipo"
#: lib/cannery_web/components/pack_table_component.ex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:42
#: lib/cannery_web/live/pack_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
msgid "Lot number"
msgstr ""
@ -1465,3 +1444,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Lot number:"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Any"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:138
#, elixir-autogen, elixir-format, fuzzy
msgid "Dates"
msgstr "Fecha"
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No containers staged"
msgstr "Sin contenedores"

View File

@ -23,7 +23,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:224
#: lib/cannery/containers.ex:234
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr "El contenedor debe estar vacío antes de ser borrado"
@ -39,7 +39,7 @@ msgstr "No se pudo eliminar %{name}: %{error}"
msgid "Could not find that container"
msgstr "No se pudo encontrar el contenedor"
#: lib/cannery_web/controllers/user_settings_controller.ex:84
#: lib/cannery_web/controllers/user_settings_controller.ex:83
#, elixir-autogen, elixir-format
msgid "Email change link is invalid or it has expired."
msgstr "El enlace de cambio de correo es inválido o ha expirado."
@ -83,20 +83,20 @@ msgid "Reset password link is invalid or it has expired."
msgstr ""
"El enlace de reestablecimiento de la contraseña es inválido o ha caducado."
#: lib/cannery_web/controllers/user_registration_controller.ex:22
#: lib/cannery_web/controllers/user_registration_controller.ex:51
#: lib/cannery_web/controllers/user_registration_controller.ex:21
#: lib/cannery_web/controllers/user_registration_controller.ex:50
#, elixir-autogen, elixir-format
msgid "Sorry, public registration is disabled"
msgstr "Lo sentimos, el registro público no está habilitado"
#: lib/cannery_web/controllers/user_registration_controller.ex:12
#: lib/cannery_web/controllers/user_registration_controller.ex:41
#: lib/cannery_web/controllers/user_registration_controller.ex:70
#: lib/cannery_web/controllers/user_registration_controller.ex:11
#: lib/cannery_web/controllers/user_registration_controller.ex:40
#: lib/cannery_web/controllers/user_registration_controller.ex:69
#, elixir-autogen, elixir-format
msgid "Sorry, this invite was not found or expired"
msgstr "Lo sentimos, esta invitación no es válida o ha caducado"
#: lib/cannery_web/controllers/user_settings_controller.ex:99
#: lib/cannery_web/controllers/user_settings_controller.ex:98
#, elixir-autogen, elixir-format
msgid "Unable to delete user"
msgstr "No se ha podido eliminar el usuario"
@ -107,7 +107,7 @@ msgstr "No se ha podido eliminar el usuario"
msgid "Unauthorized"
msgstr "No autorizado"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:53
#: lib/cannery_web/controllers/user_confirmation_controller.ex:51
#, elixir-autogen, elixir-format
msgid "User confirmation link is invalid or it has expired."
msgstr "El enlace de confirmación de usuario no es válido o ha caducado."
@ -117,22 +117,22 @@ msgstr "El enlace de confirmación de usuario no es válido o ha caducado."
msgid "You are not authorized to view this page."
msgstr "No está autorizado a ver esta página."
#: lib/cannery/accounts/user.ex:145
#: lib/cannery/accounts/user.ex:140
#, elixir-autogen, elixir-format
msgid "did not change"
msgstr "no cambió"
#: lib/cannery/accounts/user.ex:166
#: lib/cannery/accounts/user.ex:161
#, elixir-autogen, elixir-format
msgid "does not match password"
msgstr "no coincide con la contraseña"
#: lib/cannery/accounts/user.ex:203
#: lib/cannery/accounts/user.ex:198
#, elixir-autogen, elixir-format
msgid "is not valid"
msgstr "no es válido"
#: lib/cannery/accounts/user.ex:100
#: lib/cannery/accounts/user.ex:95
#, elixir-autogen, elixir-format
msgid "must have the @ sign and no spaces"
msgstr "debe tener el signo @ y no contener espacios"
@ -158,56 +158,46 @@ msgstr "Debe confirmar su cuenta e iniciar sesión para acceder a esta página."
msgid "Tag could not be removed"
msgstr "La etiqueta no pudo ser eliminada"
#: lib/cannery_web/live/pack_live/form_component.ex:152
#: lib/cannery_web/live/pack_live/form_component.ex:175
#, elixir-autogen, elixir-format
msgid "Could not parse number of copies"
msgstr "No se ha podido procesar el número de copias"
#: lib/cannery_web/live/pack_live/form_component.ex:142
#: lib/cannery/ammo.ex:1026
#, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "Número inválido de copias, debe ser entre 1 y %{max}. Fue %{multiplier"
#: lib/cannery/ammo.ex:974
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr "Multiplicador inválido"
#: lib/cannery_web/live/range_live/index.html.heex:71
#: lib/cannery_web/live/range_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr "Su navegador no es compatible con el elemento lienzo."
#: lib/cannery/activity_log/shot_record.ex:74
#: lib/cannery/activity_log/shot_record.ex:71
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo pack"
msgstr "Por favor escoja un usuario y tipo de munición valido"
#: lib/cannery/activity_log/shot_record.ex:88
#: lib/cannery/activity_log/shot_record.ex:85
#, elixir-autogen, elixir-format
msgid "Ammo left can be at most %{count} rounds"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:84
#: lib/cannery/activity_log/shot_record.ex:81
#, elixir-autogen, elixir-format
msgid "Ammo left must be at least 0"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:119
#: lib/cannery/activity_log/shot_record.ex:116
#, elixir-autogen, elixir-format, fuzzy
msgid "Count can be at most %{count} shots"
msgstr "El recuento debe ser menos de %{count}"
#: lib/cannery/activity_log/shot_record.ex:80
#: lib/cannery/activity_log/shot_record.ex:77
#, elixir-autogen, elixir-format
msgid "can't be blank"
msgstr ""
#: lib/cannery/ammo/pack.ex:100
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a type and container"
msgstr "Por favor escoja un tipo de munición y un contenedor"
#: lib/cannery_web/controllers/error_html.ex:11
#: lib/cannery_web/controllers/error_json.ex:9
#, elixir-autogen, elixir-format, fuzzy
@ -223,3 +213,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "You must log in to access this page."
msgstr ""
#: lib/cannery/ammo/pack.ex:101
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid container"
msgstr "Por favor escoja un tipo de munición y un contenedor"
#: lib/cannery/ammo/pack.ex:99
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr "Por favor escoja un usuario y tipo de munición valido"

View File

@ -52,7 +52,7 @@ msgstr "%{name} ha sido borrado"
msgid "%{name} updated successfully"
msgstr "%{name} actualizado exitosamente"
#: lib/cannery_web/controllers/user_settings_controller.ex:29
#: lib/cannery_web/controllers/user_settings_controller.ex:28
#, elixir-autogen, elixir-format
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
@ -60,20 +60,20 @@ msgstr ""
"dirección."
#: lib/cannery_web/live/invite_live/index.html.heex:110
#: lib/cannery_web/live/invite_live/index.html.heex:138
#: lib/cannery_web/live/invite_live/index.html.heex:145
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!"
#: lib/cannery_web/live/container_live/index.html.heex:99
#: lib/cannery_web/live/container_live/index.html.heex:157
#: lib/cannery_web/live/container_live/index.html.heex:113
#: lib/cannery_web/live/container_live/index.html.heex:171
#: lib/cannery_web/live/container_live/show.html.heex:45
#: lib/cannery_web/live/tag_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr "Está seguro que desea eliminar %{name}?"
#: lib/cannery_web/live/pack_live/index.html.heex:185
#: lib/cannery_web/live/pack_live/index.html.heex:174
#: lib/cannery_web/live/pack_live/show.html.heex:69
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -89,12 +89,12 @@ msgstr "Está seguro que desea eliminar su cuenta?"
msgid "Are you sure you want to log out?"
msgstr "Está seguro que desea cerrar sesión?"
#: lib/cannery_web/controllers/user_settings_controller.ex:77
#: lib/cannery_web/controllers/user_settings_controller.ex:76
#, elixir-autogen, elixir-format
msgid "Email changed successfully."
msgstr "Correo electrónico cambiado exitosamente."
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
#: lib/cannery_web/controllers/user_confirmation_controller.ex:21
#, 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 ""
@ -118,12 +118,12 @@ msgstr "Sesión cerrada exitosamente."
msgid "Password reset successfully."
msgstr "Contraseña reiniciada exitosamente."
#: lib/cannery_web/controllers/user_settings_controller.ex:49
#: lib/cannery_web/controllers/user_settings_controller.ex:48
#, elixir-autogen, elixir-format
msgid "Password updated successfully."
msgstr "Contraseña cambiada exitosamente."
#: lib/cannery_web/controllers/user_registration_controller.ex:65
#: lib/cannery_web/controllers/user_registration_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Please check your email to verify your account"
msgstr "Por favor chequea el correo para verificar tu cuenta"
@ -131,15 +131,15 @@ msgstr "Por favor chequea el correo para verificar tu cuenta"
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
#: lib/cannery_web/live/container_live/form_component.html.heex:61
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
#: lib/cannery_web/live/pack_live/form_component.html.heex:111
#: lib/cannery_web/live/range_live/form_component.html.heex:47
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
#: lib/cannery_web/live/type_live/form_component.html.heex:383
#: lib/cannery_web/live/type_live/form_component.html.heex:387
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr "Guardando..."
#: lib/cannery_web/controllers/user_settings_controller.ex:95
#: lib/cannery_web/controllers/user_settings_controller.ex:94
#, elixir-autogen, elixir-format
msgid "Your account has been deleted"
msgstr "Su cuenta ha sido eliminada"
@ -160,7 +160,7 @@ msgstr "%{name} añadido exitosamente"
msgid "%{tag_name} has been removed from %{container_name}"
msgstr "se ha removido %{tag_name} de %{container_name}"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "Adding..."
msgstr "Añadiendo..."
@ -170,19 +170,14 @@ msgstr "Añadiendo..."
msgid "Shots recorded successfully"
msgstr "Tiros registrados exitosamente"
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Are you sure you want to unstage this ammo?"
msgstr "Está seguro que desea desmontar esta munición?"
#: lib/cannery_web/live/pack_live/show.ex:157
#: lib/cannery_web/live/range_live/index.html.heex:151
#: lib/cannery_web/live/pack_live/show.ex:147
#: lib/cannery_web/live/range_live/index.html.heex:178
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "¿Está segure que quiere borrar este récord de disparos?"
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.ex:78
#: lib/cannery_web/live/pack_live/show.ex:69
#: lib/cannery_web/live/range_live/index.ex:99
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
msgstr "Récord de disparos borrado exitosamente"
@ -192,7 +187,7 @@ msgstr "Récord de disparos borrado exitosamente"
msgid "Shot records updated successfully"
msgstr "Récord de disparos actualizado exitosamente"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:37
#: lib/cannery_web/controllers/user_confirmation_controller.ex:35
#, elixir-autogen, elixir-format
msgid "%{email} confirmed successfully."
msgstr "%{email} confirmado exitosamente."
@ -218,7 +213,7 @@ msgstr "%{name} eliminado exitosamente"
msgid "You'll need to"
msgstr "Necesitará hacerlo"
#: lib/cannery_web/live/pack_live/form_component.html.heex:86
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr "Creando..."
@ -228,7 +223,7 @@ msgstr "Creando..."
msgid "Are you sure you want to change your language?"
msgstr "¿Está segure de que quiere cambiar el idioma?"
#: lib/cannery_web/controllers/user_settings_controller.ex:65
#: lib/cannery_web/controllers/user_settings_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Language updated successfully."
msgstr "Idioma cambiado exitosamente."
@ -239,17 +234,12 @@ msgstr "Idioma cambiado exitosamente."
msgid "Ammo deleted succesfully"
msgstr "Munición borrada exitosamente"
#: lib/cannery_web/live/range_live/index.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo unstaged succesfully"
msgstr "Munición descargada exitosamente"
#: lib/cannery_web/live/pack_live/form_component.ex:118
#: lib/cannery_web/live/pack_live/form_component.ex:141
#, elixir-autogen, elixir-format
msgid "Ammo updated successfully"
msgstr "Munición actualizada exitosamente"
#: lib/cannery_web/live/pack_live/form_component.ex:177
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
@ -289,7 +279,7 @@ msgstr "%{name} activado exitosamente"
msgid "%{invite_name} updated succesfully"
msgstr "%{name} actualizado exitosamente"
#: lib/cannery_web/live/invite_live/index.ex:125
#: lib/cannery_web/live/invite_live/index.ex:139
#, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully"
msgstr "%{name} borrado exitosamente"
@ -303,3 +293,13 @@ msgstr "Está seguro que quiere eliminar la invitación para %{name}?"
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr "Está seguro que desea hacer %{name} ilimitado?"
#: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Container unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:128
#, elixir-autogen, elixir-format
msgid "Email resent to %{user_email} succesfully"
msgstr ""

View File

@ -67,7 +67,7 @@ msgstr "Créer une invitation"
msgid "Delete User"
msgstr "Supprimer utilisateur"
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:52
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
#, elixir-autogen, elixir-format
@ -81,7 +81,7 @@ msgstr "Invitez une nouvelle personne!"
#: lib/cannery_web/components/core_components/topbar.html.heex:94
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:28
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:44
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:49
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:41
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28
#: lib/cannery_web/controllers/user_session_html/new.html.heex:3
@ -108,7 +108,7 @@ msgstr "Nouveau tag"
#: lib/cannery_web/components/core_components/topbar.html.heex:89
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:25
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:3
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:42
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:38
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
@ -131,10 +131,10 @@ msgstr "Réinitialisé le mot de passe"
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
#: lib/cannery_web/live/container_live/form_component.html.heex:59
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:110
#: lib/cannery_web/live/range_live/form_component.html.heex:45
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
#: lib/cannery_web/live/type_live/form_component.html.heex:382
#: lib/cannery_web/live/type_live/form_component.html.heex:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr "Sauvegarder"
@ -144,29 +144,24 @@ msgstr "Sauvegarder"
msgid "Send instructions to reset password"
msgstr "Envoyer les instructions pour réinitialiser le mot de passe"
#: lib/cannery_web/live/container_live/show.html.heex:65
#: lib/cannery_web/live/container_live/show.html.heex:73
#, elixir-autogen, elixir-format
msgid "Why not add one?"
msgstr "Pourquoi pas en ajouter un?"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:51
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#, elixir-autogen, elixir-format
msgid "Add"
msgstr "Ajouter"
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage ammo"
msgstr "Munition préparée"
#: lib/cannery_web/live/range_live/index.html.heex:13
#, elixir-autogen, elixir-format
msgid "Why not get some ready to shoot?"
msgstr "Pourquoi pas en préparer pour tirer?"
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:42
#: lib/cannery_web/live/pack_live/index.html.heex:116
#: lib/cannery_web/live/pack_live/show.html.heex:84
#: lib/cannery_web/live/range_live/index.html.heex:54
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr "Enregistrer des tirs"
@ -191,7 +186,7 @@ msgstr "Copier dans le presse-papier"
msgid "add a container first"
msgstr "ajouter un conteneur en premier"
#: lib/cannery_web/live/pack_live/form_component.html.heex:85
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr "Créer"
@ -212,8 +207,8 @@ msgid "View in Catalog"
msgstr "Voir en catalogue"
#: lib/cannery_web/components/move_pack_component.ex:77
#: lib/cannery_web/live/pack_live/index.html.heex:138
#: lib/cannery_web/live/pack_live/show.html.heex:86
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
@ -223,14 +218,12 @@ msgstr ""
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:82
#: lib/cannery_web/live/range_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:81
#: lib/cannery_web/live/range_live/index.html.heex:37
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
@ -240,8 +233,8 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:145
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:159
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -251,8 +244,8 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:104
#: lib/cannery_web/live/container_live/index.html.heex:162
#: lib/cannery_web/live/container_live/index.html.heex:118
#: lib/cannery_web/live/container_live/index.html.heex:176
#: lib/cannery_web/live/container_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
@ -268,8 +261,8 @@ msgstr ""
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:135
#: lib/cannery_web/live/container_live/index.html.heex:91
#: lib/cannery_web/live/container_live/index.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
@ -285,54 +278,56 @@ msgstr ""
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:120
#: lib/cannery_web/live/container_live/index.html.heex:69
#: lib/cannery_web/live/range_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr "Munition préparée"
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:124
#: lib/cannery_web/live/container_live/index.html.heex:79
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:119
#: lib/cannery_web/live/container_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:172
#: lib/cannery_web/live/pack_live/index.html.heex:161
#, elixir-autogen, elixir-format, fuzzy
msgid "Clone pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:187
#: lib/cannery_web/live/pack_live/index.html.heex:176
#: lib/cannery_web/live/pack_live/show.html.heex:71
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:160
#: lib/cannery_web/live/pack_live/index.html.heex:149
#: lib/cannery_web/live/pack_live/show.html.heex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:139
#: lib/cannery_web/live/pack_live/index.html.heex:148
#: lib/cannery_web/live/container_live/show.html.heex:147
#: lib/cannery_web/live/pack_live/index.html.heex:137
#: lib/cannery_web/live/type_live/show.html.heex:201
#, elixir-autogen, elixir-format, fuzzy
msgid "View pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:154
#: lib/cannery_web/live/pack_live/show.ex:149
#: lib/cannery_web/live/range_live/index.html.heex:181
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete shot record of %{shot_record_count} shots"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:144
#: lib/cannery_web/live/range_live/index.html.heex:137
#: lib/cannery_web/live/pack_live/show.ex:134
#: lib/cannery_web/live/range_live/index.html.heex:164
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit shot record of %{shot_record_count} shots"
msgstr ""
@ -368,3 +363,8 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy
msgid "add a type first"
msgstr "Ajoutez d'abord un type de munitions"
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage containers"
msgstr ""

View File

@ -44,49 +44,49 @@ msgid "Background color"
msgstr "Couleur de fond"
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr "Vide"
#: lib/cannery_web/live/type_live/form_component.html.heex:191
#: lib/cannery_web/live/type_live/form_component.html.heex:195
#, elixir-autogen, elixir-format
msgid "Brass"
msgstr "Cuivre"
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:159
#: lib/cannery_web/live/type_live/form_component.html.heex:163
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr "Noyau de balle"
#: lib/cannery_web/components/type_table_component.ex:59
#: lib/cannery_web/live/type_live/form_component.html.heex:132
#: lib/cannery_web/live/type_live/form_component.html.heex:136
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr "Type de balle"
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:74
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr "Calibre"
#: lib/cannery_web/components/type_table_component.ex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#: lib/cannery_web/live/type_live/form_component.html.heex:57
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr "Cartouche"
#: lib/cannery_web/components/type_table_component.ex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:184
#: lib/cannery_web/live/type_live/form_component.html.heex:188
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr "Matériau de la caisse"
#: lib/cannery_web/components/move_pack_component.ex:64
#: lib/cannery_web/components/pack_table_component.ex:76
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#, elixir-autogen, elixir-format
msgid "Container"
msgstr "Conteneur"
@ -100,13 +100,13 @@ msgid "Containers"
msgstr "Conteneurs"
#: lib/cannery_web/components/type_table_component.ex:87
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#: lib/cannery_web/live/type_live/form_component.html.heex:362
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr "Corrosive"
#: lib/cannery_web/components/pack_table_component.ex:104
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
msgid "Count"
msgstr "Quantité"
@ -117,9 +117,9 @@ msgstr "Quantité"
msgid "Count:"
msgstr "Quantité:"
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/components/container_table_component.ex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: lib/cannery_web/live/type_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:43
#, elixir-autogen, elixir-format
msgid "Description"
msgstr "Description"
@ -145,19 +145,19 @@ msgstr "Modifier linvitation"
msgid "Edit Tag"
msgstr "Modifier le tag"
#: lib/cannery_web/live/type_live/form_component.html.heex:147
#: lib/cannery_web/live/type_live/form_component.html.heex:151
#, elixir-autogen, elixir-format
msgid "FMJ"
msgstr "FMJ"
#: lib/cannery_web/components/type_table_component.ex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:122
#: lib/cannery_web/live/type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr "Graines"
#: lib/cannery_web/components/type_table_component.ex:85
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr "Incendiaire"
@ -189,7 +189,7 @@ msgstr "Invitations"
msgid "Keep me logged in for 60 days"
msgstr "Me garder authentifié durant 60 jours"
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/container_table_component.ex:51
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
@ -208,8 +208,8 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Chargeur, lame-chargeur, boite de munition, etc."
#: lib/cannery_web/components/type_table_component.ex:88
#: lib/cannery_web/live/type_live/form_component.html.heex:363
#: lib/cannery_web/live/type_live/form_component.html.heex:366
#: lib/cannery_web/live/type_live/form_component.html.heex:367
#: lib/cannery_web/live/type_live/form_component.html.heex:370
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr "Fabricant"
@ -224,12 +224,12 @@ msgstr "Boite de munition avec le sticker de fille danimation"
msgid "My cool ammo can"
msgstr "Ma superbe boite de munition"
#: lib/cannery_web/components/container_table_component.ex:45
#: lib/cannery_web/components/container_table_component.ex:49
#: lib/cannery_web/components/type_table_component.ex:152
#: lib/cannery_web/live/container_live/form_component.html.heex:21
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
#: lib/cannery_web/live/tag_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/form_component.html.heex:31
#: lib/cannery_web/live/type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Name"
msgstr "Nom"
@ -280,8 +280,8 @@ msgstr "Aucun tag"
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
#: lib/cannery_web/components/shot_record_table_component.ex:46
#: lib/cannery_web/live/pack_live/form_component.html.heex:58
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:80
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
msgid "Notes"
@ -299,13 +299,13 @@ msgid "On the bookshelf"
msgstr "Sur létagère"
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:283
#: lib/cannery_web/live/type_live/form_component.html.heex:287
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr "Pression"
#: lib/cannery_web/components/pack_table_component.ex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:52
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr "Prix payé"
@ -316,7 +316,7 @@ msgid "Price paid:"
msgstr "Prix payé:"
#: lib/cannery_web/components/type_table_component.ex:82
#: lib/cannery_web/live/type_live/form_component.html.heex:324
#: lib/cannery_web/live/type_live/form_component.html.heex:328
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr "Type damorce"
@ -338,7 +338,7 @@ msgstr ""
"Auto-hébergez votre propre instance ou utilisez celle dune personne à "
"laquelle vous faîtes confiance."
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/controllers/user_settings_controller.ex:9
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:3
#, elixir-autogen, elixir-format
msgid "Settings"
@ -349,17 +349,17 @@ msgstr "Paramètres"
msgid "Simple:"
msgstr "Simple:"
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr "Acier"
#: lib/cannery_web/live/pack_live/show.html.heex:100
#: lib/cannery_web/live/pack_live/show.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stored in"
msgstr "Est stocké dans"
#: lib/cannery_web/components/container_table_component.ex:66
#: lib/cannery_web/components/container_table_component.ex:73
#: lib/cannery_web/components/core_components/topbar.html.heex:28
#: lib/cannery_web/live/tag_live/index.ex:43
#: lib/cannery_web/live/tag_live/index.ex:53
@ -386,16 +386,16 @@ msgid "The self-hosted firearm tracker website"
msgstr "Le site web de suivi darme à feux auto-hébergé"
#: lib/cannery_web/components/type_table_component.ex:84
#: lib/cannery_web/live/type_live/form_component.html.heex:346
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr "Traceuse"
#: lib/cannery_web/components/container_table_component.ex:48
#: lib/cannery_web/components/container_table_component.ex:52
#: lib/cannery_web/components/move_pack_component.ex:65
#: lib/cannery_web/components/pack_table_component.ex:108
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr "Type"
@ -421,15 +421,16 @@ msgstr "Utilisations restantes"
msgid "Your data stays with you, period"
msgstr "Vos données restent avec vous, point final"
#: lib/cannery_web/live/container_live/show.html.heex:60
#: lib/cannery_web/live/container_live/show.html.heex:68
#, elixir-autogen, elixir-format
msgid "No tags for this container"
msgstr "Aucun tag pour ce conteneur"
#: lib/cannery_web/components/container_table_component.ex:77
#: lib/cannery_web/components/core_components/topbar.html.heex:48
#: lib/cannery_web/components/pack_table_component.ex:80
#: lib/cannery_web/live/range_live/index.ex:55
#: lib/cannery_web/live/range_live/index.ex:65
#: lib/cannery_web/live/range_live/index.ex:76
#: lib/cannery_web/live/range_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Range"
msgstr "Portée"
@ -441,7 +442,7 @@ msgstr "Journée de stand"
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
#: lib/cannery_web/components/shot_record_table_component.ex:47
#: lib/cannery_web/live/pack_live/show.ex:91
#: lib/cannery_web/live/pack_live/show.ex:81
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
@ -452,26 +453,21 @@ msgstr "Date"
msgid "Shots fired"
msgstr "Tirs réalisés"
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No ammo staged"
msgstr "Aucune munition sélectionnée"
#: lib/cannery_web/components/add_shot_record_component.html.heex:3
#: lib/cannery_web/live/pack_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr "Tirs enregistrés"
#: lib/cannery_web/live/range_live/index.html.heex:52
#: lib/cannery_web/live/range_live/index.html.heex:121
#: lib/cannery_web/live/range_live/index.html.heex:64
#: lib/cannery_web/live/range_live/index.html.heex:148
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr "Aucun tir enregistré"
#: lib/cannery_web/components/shot_record_table_component.ex:45
#: lib/cannery_web/live/pack_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:66
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.html.heex:78
#, elixir-autogen, elixir-format
msgid "Rounds shot"
msgstr "Cartouches tirées"
@ -486,7 +482,7 @@ msgstr "Déplacer munition"
msgid "No other containers"
msgstr "Aucun autre conteneur"
#: lib/cannery_web/live/range_live/index.html.heex:57
#: lib/cannery_web/live/range_live/index.html.heex:69
#, elixir-autogen, elixir-format
msgid "Shot log"
msgstr "Évènements de tir"
@ -494,7 +490,7 @@ msgstr "Évènements de tir"
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
#: lib/cannery_web/components/pack_table_component.ex:181
#: lib/cannery_web/components/pack_table_component.ex:264
#: lib/cannery_web/components/pack_table_component.ex:263
#: lib/cannery_web/components/type_table_component.ex:273
#: lib/cannery_web/live/pack_live/show.html.heex:37
#: lib/cannery_web/live/pack_live/show.html.heex:42
@ -503,36 +499,36 @@ msgstr "Évènements de tir"
msgid "$%{amount}"
msgstr "%{amount}$"
#: lib/cannery_web/live/type_live/form_component.html.heex:177
#: lib/cannery_web/live/type_live/form_component.html.heex:181
#, elixir-autogen, elixir-format
msgid "Bimetal"
msgstr "Bi-métal"
#: lib/cannery_web/components/type_table_component.ex:65
#: lib/cannery_web/live/type_live/form_component.html.heex:172
#: lib/cannery_web/live/type_live/form_component.html.heex:176
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr "Type de douille"
#: lib/cannery_web/components/type_table_component.ex:81
#: lib/cannery_web/live/type_live/form_component.html.heex:307
#: lib/cannery_web/live/type_live/form_component.html.heex:311
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr "Vélocité du canon"
#: lib/cannery_web/components/type_table_component.ex:75
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: lib/cannery_web/live/type_live/form_component.html.heex:274
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr "Graines de poudre par charge"
#: lib/cannery_web/components/type_table_component.ex:73
#: lib/cannery_web/live/type_live/form_component.html.heex:261
#: lib/cannery_web/live/type_live/form_component.html.heex:265
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr "Type de poudre"
#: lib/cannery_web/live/type_live/form_component.html.heex:374
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr "UPC"
@ -556,7 +552,7 @@ msgid "New password"
msgstr "Nouveau mot de passe"
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr "Type dallumage"
@ -567,13 +563,13 @@ msgid "Reconnecting..."
msgstr "Reconnexion en cours…"
#: lib/cannery_web/live/container_live/index.ex:28
#: lib/cannery_web/live/container_live/show.ex:118
#: lib/cannery_web/live/container_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr "Éditer %{name}"
#: lib/cannery_web/live/container_live/index.ex:63
#: lib/cannery_web/live/container_live/show.ex:119
#: lib/cannery_web/live/container_live/show.ex:131
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr "Éditer les tags de %{name}"
@ -586,7 +582,7 @@ msgid "Rounds:"
msgstr "Cartouches:"
#: lib/cannery_web/components/pack_table_component.ex:178
#: lib/cannery_web/components/pack_table_component.ex:260
#: lib/cannery_web/components/pack_table_component.ex:259
#: lib/cannery_web/components/type_table_component.ex:272
#: lib/cannery_web/live/type_live/show.html.heex:154
#, elixir-autogen, elixir-format
@ -618,12 +614,12 @@ msgstr "Nombre original:"
msgid "Percentage left:"
msgstr "Pourcentage restant:"
#: lib/cannery_web/live/pack_live/show.html.heex:113
#: lib/cannery_web/live/pack_live/show.html.heex:107
#, elixir-autogen, elixir-format
msgid "Rounds used"
msgstr "Cartouches utilisées"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#: lib/cannery_web/controllers/user_confirmation_controller.ex:6
#, elixir-autogen, elixir-format
msgid "Confirm your account"
msgstr "Confirmez votre compte"
@ -638,7 +634,7 @@ msgstr "Mot de passe oublié?"
msgid "Log in"
msgstr "Se connecter"
#: lib/cannery_web/controllers/user_registration_controller.ex:32
#: lib/cannery_web/controllers/user_registration_controller.ex:31
#, elixir-autogen, elixir-format
msgid "Register"
msgstr "Senregistrer"
@ -649,13 +645,13 @@ msgid "Reset your password"
msgstr "Réinitialiser votre mot de passe"
#: lib/cannery_web/live/pack_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:31
#: lib/cannery_web/live/range_live/index.ex:47
#: lib/cannery_web/live/range_live/index.ex:52
#: lib/cannery_web/live/range_live/index.ex:68
#, elixir-autogen, elixir-format
msgid "Record Shots"
msgstr "Enregistrer des tirs"
#: lib/cannery_web/live/pack_live/form_component.html.heex:77
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr "Exemplaires"
@ -665,22 +661,6 @@ msgstr "Exemplaires"
msgid "Added on:"
msgstr "Ajouté le:"
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:32
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:127
#, elixir-autogen, elixir-format
msgid "English"
msgstr "Anglais"
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "French"
msgstr "Français"
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:128
#, elixir-autogen, elixir-format
msgid "German"
msgstr "Allemand"
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Language"
@ -724,7 +704,7 @@ msgstr "Éditer le type de munition"
msgid "Move Ammo"
msgstr "Déplacer munition"
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/container_live/show.html.heex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "No ammo in this container"
msgstr "Aucun groupe de munition pour ce conteneur"
@ -734,7 +714,7 @@ msgstr "Aucun groupe de munition pour ce conteneur"
msgid "Show Ammo"
msgstr "Montrer le type de munition"
#: lib/cannery_web/live/pack_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/show.html.heex:99
#, elixir-autogen, elixir-format, fuzzy
msgid "This ammo is not in a container"
msgstr "Ce groupe de munition nest pas dans un conteneur"
@ -775,31 +755,31 @@ msgstr "Conteneur"
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:219
#: lib/cannery_web/components/pack_table_component.ex:218
#: lib/cannery_web/live/pack_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:153
#: lib/cannery_web/live/range_live/index.ex:215
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}"
msgstr "Cartouches tirées"
#: lib/cannery_web/components/container_table_component.ex:64
#: lib/cannery_web/components/container_table_component.ex:68
#: lib/cannery_web/components/type_table_component.ex:122
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr "Packages:"
#: lib/cannery_web/components/container_table_component.ex:65
#: lib/cannery_web/components/container_table_component.ex:69
#: lib/cannery_web/components/type_table_component.ex:143
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
msgstr "Cartouches:"
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:109
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/type_live/show.html.heex:170
#, elixir-autogen, elixir-format
msgid "View as table"
@ -845,7 +825,7 @@ msgstr ""
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:80
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot chart"
msgstr "Cartouches tirées"
@ -952,7 +932,7 @@ msgid "Average CPR"
msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
#: lib/cannery_web/components/pack_table_component.ex:268
#: lib/cannery_web/components/pack_table_component.ex:267
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
@ -998,7 +978,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:50
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1034,16 +1014,11 @@ msgstr ""
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:112
#: lib/cannery_web/live/range_live/index.html.heex:124
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:130
#, elixir-autogen, elixir-format
msgid "Spanish"
msgstr ""
#: lib/cannery_web/components/layouts.ex:15
#: lib/cannery_web/components/layouts/root.html.heex:9
#: lib/cannery_web/components/layouts/root.html.heex:10
@ -1143,27 +1118,27 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:288
#: lib/cannery_web/live/type_live/form_component.html.heex:292
#, elixir-autogen, elixir-format
msgid "+P"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:78
#: lib/cannery_web/live/type_live/form_component.html.heex:82
#, elixir-autogen, elixir-format
msgid ".223"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:62
#, elixir-autogen, elixir-format
msgid "5.56x46mm NATO"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:329
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#, elixir-autogen, elixir-format
msgid "Boxer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:338
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
@ -1174,12 +1149,12 @@ msgstr ""
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/container_table_component.ex:74
#: lib/cannery_web/components/move_pack_component.ex:67
#: lib/cannery_web/components/pack_table_component.ex:62
#: lib/cannery_web/components/shot_record_table_component.ex:48
#: lib/cannery_web/components/type_table_component.ex:99
#: lib/cannery_web/live/pack_live/show.ex:92
#: lib/cannery_web/live/pack_live/show.ex:82
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
@ -1205,21 +1180,21 @@ msgstr ""
msgid "Close modal"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/index.html.heex:58
#: lib/cannery_web/live/range_live/index.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:103
#: lib/cannery_web/live/type_live/index.html.heex:37
#, elixir-autogen, elixir-format
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:343
#: lib/cannery_web/live/type_live/form_component.html.heex:347
#, elixir-autogen, elixir-format
msgid "Attributes"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:56
#: lib/cannery_web/live/type_live/form_component.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Brass height"
msgstr "Cuivre"
@ -1230,7 +1205,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:103
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1240,13 +1215,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#, elixir-autogen, elixir-format
msgid "Dimensions"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:80
#: lib/cannery_web/live/type_live/form_component.html.heex:293
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1257,7 +1232,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1268,7 +1243,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:231
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1288,35 +1263,37 @@ msgstr "Aucune munition"
msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: lib/cannery_web/live/container_live/show.html.heex:108
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
#: lib/cannery_web/live/pack_live/index.html.heex:61
#: lib/cannery_web/live/range_live/index.html.heex:94
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:106
#: lib/cannery_web/live/type_live/form_component.html.heex:28
#: lib/cannery_web/live/type_live/index.html.heex:40
#: lib/cannery_web/live/type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Pistol"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:258
#: lib/cannery_web/live/type_live/form_component.html.heex:262
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder"
msgstr "Type de poudre"
#: lib/cannery_web/live/type_live/form_component.html.heex:321
#: lib/cannery_web/live/type_live/form_component.html.heex:325
#, elixir-autogen, elixir-format, fuzzy
msgid "Primer"
msgstr "Type damorce"
#: lib/cannery_web/live/type_live/form_component.html.heex:119
#: lib/cannery_web/live/type_live/form_component.html.heex:123
#, elixir-autogen, elixir-format
msgid "Projectile"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:106
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/index.html.heex:59
#: lib/cannery_web/live/range_live/index.html.heex:92
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:104
#: lib/cannery_web/live/type_live/form_component.html.heex:26
#: lib/cannery_web/live/type_live/index.html.heex:38
#: lib/cannery_web/live/type_live/show.html.heex:54
#, elixir-autogen, elixir-format
@ -1324,7 +1301,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:239
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1335,7 +1312,7 @@ msgid "Shot charge weight:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1346,7 +1323,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:223
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format, fuzzy
msgid "Shot size"
msgstr "Tirs réalisés"
@ -1357,7 +1334,7 @@ msgid "Shot size:"
msgstr "Tirs réalisés"
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:204
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1367,10 +1344,11 @@ msgstr ""
msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/container_live/show.html.heex:107
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
#: lib/cannery_web/live/pack_live/index.html.heex:60
#: lib/cannery_web/live/range_live/index.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:105
#: lib/cannery_web/live/type_live/form_component.html.heex:27
#: lib/cannery_web/live/type_live/index.html.heex:39
#: lib/cannery_web/live/type_live/show.html.heex:52
#, elixir-autogen, elixir-format
@ -1378,12 +1356,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:162
#, elixir-autogen, elixir-format
msgid "Slug core"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1394,13 +1372,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:87
#, elixir-autogen, elixir-format
msgid "Unfired shell length"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:67
#: lib/cannery_web/live/type_live/form_component.html.heex:196
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1411,9 +1389,10 @@ msgid "Wadding:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/index.html.heex:50
#: lib/cannery_web/live/range_live/index.html.heex:83
#: lib/cannery_web/live/range_live/index.html.heex:95
#: lib/cannery_web/live/type_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/index.html.heex:29
#: lib/cannery_web/live/type_live/show.html.heex:46
@ -1433,7 +1412,7 @@ msgid "Used up!"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:39
#: lib/cannery_web/live/range_live/index.ex:60
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit Shot Record"
msgstr "Modifier les enregistrements de tir"
@ -1457,7 +1436,7 @@ msgid "No Types"
msgstr "Type"
#: lib/cannery_web/components/pack_table_component.ex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:42
#: lib/cannery_web/live/pack_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
msgid "Lot number"
msgstr ""
@ -1466,3 +1445,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Lot number:"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Any"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:138
#, elixir-autogen, elixir-format, fuzzy
msgid "Dates"
msgstr "Date"
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No containers staged"
msgstr "Aucun conteneur"

View File

@ -23,7 +23,7 @@ msgstr ""
# # Run "mix gettext.extract" to bring this file up to
# # date. Leave "msgstr"s empty as changing them here has no
# # effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:224
#: lib/cannery/containers.ex:234
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr "Le conteneur doit être vide pour être supprimé"
@ -39,7 +39,7 @@ msgstr "Impossible de supprimer %{name} : %{error}"
msgid "Could not find that container"
msgstr "Impossible de trouver ce conteneur"
#: lib/cannery_web/controllers/user_settings_controller.ex:84
#: lib/cannery_web/controllers/user_settings_controller.ex:83
#, elixir-autogen, elixir-format
msgid "Email change link is invalid or it has expired."
msgstr "Le lien de changement de mél est invalide ou a expiré."
@ -82,20 +82,20 @@ msgstr ""
msgid "Reset password link is invalid or it has expired."
msgstr "Le lien de réinitialisation de mot de passe est invalide ou expiré."
#: lib/cannery_web/controllers/user_registration_controller.ex:22
#: lib/cannery_web/controllers/user_registration_controller.ex:51
#: lib/cannery_web/controllers/user_registration_controller.ex:21
#: lib/cannery_web/controllers/user_registration_controller.ex:50
#, elixir-autogen, elixir-format
msgid "Sorry, public registration is disabled"
msgstr "Désolé, lenregistrement public est désactivé"
#: lib/cannery_web/controllers/user_registration_controller.ex:12
#: lib/cannery_web/controllers/user_registration_controller.ex:41
#: lib/cannery_web/controllers/user_registration_controller.ex:70
#: lib/cannery_web/controllers/user_registration_controller.ex:11
#: lib/cannery_web/controllers/user_registration_controller.ex:40
#: lib/cannery_web/controllers/user_registration_controller.ex:69
#, elixir-autogen, elixir-format
msgid "Sorry, this invite was not found or expired"
msgstr "Désolé, cette invitation nest pas trouvée ou est expirée"
#: lib/cannery_web/controllers/user_settings_controller.ex:99
#: lib/cannery_web/controllers/user_settings_controller.ex:98
#, elixir-autogen, elixir-format
msgid "Unable to delete user"
msgstr "Impossible de supprimer lutilisateur·ice"
@ -106,7 +106,7 @@ msgstr "Impossible de supprimer lutilisateur·ice"
msgid "Unauthorized"
msgstr "Non autorisé·e"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:53
#: lib/cannery_web/controllers/user_confirmation_controller.ex:51
#, elixir-autogen, elixir-format
msgid "User confirmation link is invalid or it has expired."
msgstr "Le lien de confirmation dutilisateur·ice est invalide ou a expiré."
@ -116,22 +116,22 @@ msgstr "Le lien de confirmation dutilisateur·ice est invalide ou a expiré."
msgid "You are not authorized to view this page."
msgstr "Vous nêtes pas autorisé·e à voir cette page."
#: lib/cannery/accounts/user.ex:145
#: lib/cannery/accounts/user.ex:140
#, elixir-autogen, elixir-format
msgid "did not change"
msgstr "est inchangé"
#: lib/cannery/accounts/user.ex:166
#: lib/cannery/accounts/user.ex:161
#, elixir-autogen, elixir-format
msgid "does not match password"
msgstr "le mot de passe ne correspond pas"
#: lib/cannery/accounts/user.ex:203
#: lib/cannery/accounts/user.ex:198
#, elixir-autogen, elixir-format
msgid "is not valid"
msgstr "nest pas valide"
#: lib/cannery/accounts/user.ex:100
#: lib/cannery/accounts/user.ex:95
#, elixir-autogen, elixir-format
msgid "must have the @ sign and no spaces"
msgstr "doit contenir le symbole @ et aucune espace"
@ -159,56 +159,46 @@ msgstr ""
msgid "Tag could not be removed"
msgstr "Le tag na pas pu être retiré"
#: lib/cannery_web/live/pack_live/form_component.ex:152
#: lib/cannery_web/live/pack_live/form_component.ex:175
#, elixir-autogen, elixir-format
msgid "Could not parse number of copies"
msgstr "Impossible d'analyser le nombre de copies"
#: lib/cannery_web/live/pack_live/form_component.ex:142
#: lib/cannery/ammo.ex:1026
#, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"
#: lib/cannery/ammo.ex:974
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr "Multiplicateur invalide"
#: lib/cannery_web/live/range_live/index.html.heex:71
#: lib/cannery_web/live/range_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:74
#: lib/cannery/activity_log/shot_record.ex:71
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack"
msgstr "Veuillez choisir un utilisateur valide et un groupe de munitions"
#: lib/cannery/activity_log/shot_record.ex:88
#: lib/cannery/activity_log/shot_record.ex:85
#, elixir-autogen, elixir-format
msgid "Ammo left can be at most %{count} rounds"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:84
#: lib/cannery/activity_log/shot_record.ex:81
#, elixir-autogen, elixir-format
msgid "Ammo left must be at least 0"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:119
#: lib/cannery/activity_log/shot_record.ex:116
#, elixir-autogen, elixir-format, fuzzy
msgid "Count can be at most %{count} shots"
msgstr "La quantité doit être inférieur à %{count}"
#: lib/cannery/activity_log/shot_record.ex:80
#: lib/cannery/activity_log/shot_record.ex:77
#, elixir-autogen, elixir-format
msgid "can't be blank"
msgstr ""
#: lib/cannery/ammo/pack.ex:100
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a type and container"
msgstr "Veuillez choisir un type de munitions et un conteneur"
#: lib/cannery_web/controllers/error_html.ex:11
#: lib/cannery_web/controllers/error_json.ex:9
#, elixir-autogen, elixir-format, fuzzy
@ -224,3 +214,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "You must log in to access this page."
msgstr ""
#: lib/cannery/ammo/pack.ex:101
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid container"
msgstr "Veuillez choisir un type de munitions et un conteneur"
#: lib/cannery/ammo/pack.ex:99
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr "Veuillez choisir un utilisateur valide et un groupe de munitions"

View File

@ -52,7 +52,7 @@ msgstr "%{name} a été supprimé·e"
msgid "%{name} updated successfully"
msgstr "%{name} mis à jour avec succès"
#: lib/cannery_web/controllers/user_settings_controller.ex:29
#: lib/cannery_web/controllers/user_settings_controller.ex:28
#, elixir-autogen, elixir-format
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
@ -60,21 +60,21 @@ msgstr ""
"adresse."
#: lib/cannery_web/live/invite_live/index.html.heex:110
#: lib/cannery_web/live/invite_live/index.html.heex:138
#: lib/cannery_web/live/invite_live/index.html.heex:145
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
"Êtes-vous certain·e de supprimer %{email}? Cette action est définitive!"
#: lib/cannery_web/live/container_live/index.html.heex:99
#: lib/cannery_web/live/container_live/index.html.heex:157
#: lib/cannery_web/live/container_live/index.html.heex:113
#: lib/cannery_web/live/container_live/index.html.heex:171
#: lib/cannery_web/live/container_live/show.html.heex:45
#: lib/cannery_web/live/tag_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr "Êtes-vous certain·e de supprimer %{name}?"
#: lib/cannery_web/live/pack_live/index.html.heex:185
#: lib/cannery_web/live/pack_live/index.html.heex:174
#: lib/cannery_web/live/pack_live/show.html.heex:69
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -90,12 +90,12 @@ msgstr "Êtes-vous certain·e de supprimer votre compte?"
msgid "Are you sure you want to log out?"
msgstr "Êtes-vous certain·e de vouloir vous déconnecter?"
#: lib/cannery_web/controllers/user_settings_controller.ex:77
#: lib/cannery_web/controllers/user_settings_controller.ex:76
#, elixir-autogen, elixir-format
msgid "Email changed successfully."
msgstr "Mél changé avec succès."
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
#: lib/cannery_web/controllers/user_confirmation_controller.ex:21
#, 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 ""
@ -119,12 +119,12 @@ msgstr "Déconnecté avec succès."
msgid "Password reset successfully."
msgstr "Mot de passe réinitialiser avec succès."
#: lib/cannery_web/controllers/user_settings_controller.ex:49
#: lib/cannery_web/controllers/user_settings_controller.ex:48
#, elixir-autogen, elixir-format
msgid "Password updated successfully."
msgstr "Mot de passe mis à jour avec succès."
#: lib/cannery_web/controllers/user_registration_controller.ex:65
#: lib/cannery_web/controllers/user_registration_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Please check your email to verify your account"
msgstr "Veuillez vérifier votre mél pour confirmer votre compte"
@ -132,15 +132,15 @@ msgstr "Veuillez vérifier votre mél pour confirmer votre compte"
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
#: lib/cannery_web/live/container_live/form_component.html.heex:61
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
#: lib/cannery_web/live/pack_live/form_component.html.heex:111
#: lib/cannery_web/live/range_live/form_component.html.heex:47
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
#: lib/cannery_web/live/type_live/form_component.html.heex:383
#: lib/cannery_web/live/type_live/form_component.html.heex:387
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr "Sauvegarde en cours…"
#: lib/cannery_web/controllers/user_settings_controller.ex:95
#: lib/cannery_web/controllers/user_settings_controller.ex:94
#, elixir-autogen, elixir-format
msgid "Your account has been deleted"
msgstr "Votre compte a été supprimé"
@ -162,7 +162,7 @@ msgstr "%{name} a été ajouté avec succès"
msgid "%{tag_name} has been removed from %{container_name}"
msgstr "%{tag_name} a été retiré de %{container_name}"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "Adding..."
msgstr "Ajout en cours…"
@ -172,19 +172,14 @@ msgstr "Ajout en cours…"
msgid "Shots recorded successfully"
msgstr "Tirs enregistré avec succès"
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Are you sure you want to unstage this ammo?"
msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition?"
#: lib/cannery_web/live/pack_live/show.ex:157
#: lib/cannery_web/live/range_live/index.html.heex:151
#: lib/cannery_web/live/pack_live/show.ex:147
#: lib/cannery_web/live/range_live/index.html.heex:178
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir?"
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.ex:78
#: lib/cannery_web/live/pack_live/show.ex:69
#: lib/cannery_web/live/range_live/index.ex:99
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
msgstr "Enregistrements de tir supprimés avec succès"
@ -194,7 +189,7 @@ msgstr "Enregistrements de tir supprimés avec succès"
msgid "Shot records updated successfully"
msgstr "Enregistrements de tir mis à jour avec succès"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:37
#: lib/cannery_web/controllers/user_confirmation_controller.ex:35
#, elixir-autogen, elixir-format
msgid "%{email} confirmed successfully."
msgstr "%{email} confirmé avec succès."
@ -220,7 +215,7 @@ msgstr "%{name} retiré avec succès"
msgid "You'll need to"
msgstr "Vous aurez besoin de"
#: lib/cannery_web/live/pack_live/form_component.html.heex:86
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr "Création en cours…"
@ -230,7 +225,7 @@ msgstr "Création en cours…"
msgid "Are you sure you want to change your language?"
msgstr "Êtes-vous certain·e de vouloir changer votre langue?"
#: lib/cannery_web/controllers/user_settings_controller.ex:65
#: lib/cannery_web/controllers/user_settings_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Language updated successfully."
msgstr "Langue mise à jour avec succès."
@ -241,17 +236,12 @@ msgstr "Langue mise à jour avec succès."
msgid "Ammo deleted succesfully"
msgstr "Groupe de munition supprimé avec succès"
#: lib/cannery_web/live/range_live/index.ex:91
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo unstaged succesfully"
msgstr "Groupe de munition désélectionner avec succès"
#: lib/cannery_web/live/pack_live/form_component.ex:118
#: lib/cannery_web/live/pack_live/form_component.ex:141
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo updated successfully"
msgstr "Groupe de munition mis à jour avec succès"
#: lib/cannery_web/live/pack_live/form_component.ex:177
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
@ -289,7 +279,7 @@ msgstr "%{name} activé·e avec succès"
msgid "%{invite_name} updated succesfully"
msgstr "%{name} mis à jour avec succès"
#: lib/cannery_web/live/invite_live/index.ex:125
#: lib/cannery_web/live/invite_live/index.ex:139
#, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully"
msgstr "%{name} supprimé· avec succès"
@ -303,3 +293,13 @@ msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?"
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr "Êtes-vous certain·e de vouloir rendre %{name} illimité?"
#: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Container unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:128
#, elixir-autogen, elixir-format
msgid "Email resent to %{user_email} succesfully"
msgstr ""

View File

@ -65,7 +65,7 @@ msgstr ""
msgid "Delete User"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:52
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
#, elixir-autogen, elixir-format
@ -79,7 +79,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:94
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:28
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:44
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:49
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:41
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28
#: lib/cannery_web/controllers/user_session_html/new.html.heex:3
@ -106,7 +106,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:89
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:25
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:3
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:42
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:38
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
@ -129,10 +129,10 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
#: lib/cannery_web/live/container_live/form_component.html.heex:59
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:110
#: lib/cannery_web/live/range_live/form_component.html.heex:45
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
#: lib/cannery_web/live/type_live/form_component.html.heex:382
#: lib/cannery_web/live/type_live/form_component.html.heex:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
@ -142,29 +142,24 @@ msgstr ""
msgid "Send instructions to reset password"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:65
#: lib/cannery_web/live/container_live/show.html.heex:73
#, elixir-autogen, elixir-format
msgid "Why not add one?"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:51
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#, 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:13
#, elixir-autogen, elixir-format
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:42
#: lib/cannery_web/live/pack_live/index.html.heex:116
#: lib/cannery_web/live/pack_live/show.html.heex:84
#: lib/cannery_web/live/range_live/index.html.heex:54
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr ""
@ -189,7 +184,7 @@ msgstr ""
msgid "add a container first"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:85
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr ""
@ -210,8 +205,8 @@ msgid "View in Catalog"
msgstr ""
#: lib/cannery_web/components/move_pack_component.ex:77
#: lib/cannery_web/live/pack_live/index.html.heex:138
#: lib/cannery_web/live/pack_live/show.html.heex:86
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
@ -221,14 +216,12 @@ msgstr ""
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:82
#: lib/cannery_web/live/range_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:81
#: lib/cannery_web/live/range_live/index.html.heex:37
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
@ -238,8 +231,8 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:145
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:159
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -249,8 +242,8 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:104
#: lib/cannery_web/live/container_live/index.html.heex:162
#: lib/cannery_web/live/container_live/index.html.heex:118
#: lib/cannery_web/live/container_live/index.html.heex:176
#: lib/cannery_web/live/container_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
@ -266,8 +259,8 @@ msgstr ""
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:135
#: lib/cannery_web/live/container_live/index.html.heex:91
#: lib/cannery_web/live/container_live/index.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
@ -283,54 +276,56 @@ msgstr ""
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:120
#: lib/cannery_web/live/container_live/index.html.heex:69
#: lib/cannery_web/live/range_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:124
#: lib/cannery_web/live/container_live/index.html.heex:79
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:119
#: lib/cannery_web/live/container_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:172
#: lib/cannery_web/live/pack_live/index.html.heex:161
#, elixir-autogen, elixir-format, fuzzy
msgid "Clone pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:187
#: lib/cannery_web/live/pack_live/index.html.heex:176
#: lib/cannery_web/live/pack_live/show.html.heex:71
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:160
#: lib/cannery_web/live/pack_live/index.html.heex:149
#: lib/cannery_web/live/pack_live/show.html.heex:59
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:139
#: lib/cannery_web/live/pack_live/index.html.heex:148
#: lib/cannery_web/live/container_live/show.html.heex:147
#: lib/cannery_web/live/pack_live/index.html.heex:137
#: lib/cannery_web/live/type_live/show.html.heex:201
#, elixir-autogen, elixir-format, fuzzy
msgid "View pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:154
#: lib/cannery_web/live/pack_live/show.ex:149
#: lib/cannery_web/live/range_live/index.html.heex:181
#, elixir-autogen, elixir-format, fuzzy
msgid "Delete shot record of %{shot_record_count} shots"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:144
#: lib/cannery_web/live/range_live/index.html.heex:137
#: lib/cannery_web/live/pack_live/show.ex:134
#: lib/cannery_web/live/range_live/index.html.heex:164
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit shot record of %{shot_record_count} shots"
msgstr ""
@ -366,3 +361,8 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy
msgid "add a type first"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage containers"
msgstr ""

View File

@ -42,49 +42,49 @@ msgid "Background color"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:191
#: lib/cannery_web/live/type_live/form_component.html.heex:195
#, elixir-autogen, elixir-format
msgid "Brass"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:159
#: lib/cannery_web/live/type_live/form_component.html.heex:163
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:59
#: lib/cannery_web/live/type_live/form_component.html.heex:132
#: lib/cannery_web/live/type_live/form_component.html.heex:136
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:74
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#: lib/cannery_web/live/type_live/form_component.html.heex:57
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:184
#: lib/cannery_web/live/type_live/form_component.html.heex:188
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr ""
#: lib/cannery_web/components/move_pack_component.ex:64
#: lib/cannery_web/components/pack_table_component.ex:76
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#, elixir-autogen, elixir-format
msgid "Container"
msgstr ""
@ -98,13 +98,13 @@ msgid "Containers"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:87
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#: lib/cannery_web/live/type_live/form_component.html.heex:362
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:104
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
msgid "Count"
msgstr ""
@ -115,9 +115,9 @@ msgstr ""
msgid "Count:"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/components/container_table_component.ex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: lib/cannery_web/live/type_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:43
#, elixir-autogen, elixir-format
msgid "Description"
msgstr ""
@ -143,19 +143,19 @@ msgstr ""
msgid "Edit Tag"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:147
#: lib/cannery_web/live/type_live/form_component.html.heex:151
#, elixir-autogen, elixir-format
msgid "FMJ"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:122
#: lib/cannery_web/live/type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:85
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@ -187,7 +187,7 @@ msgstr ""
msgid "Keep me logged in for 60 days"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/container_table_component.ex:51
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
@ -206,8 +206,8 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:88
#: lib/cannery_web/live/type_live/form_component.html.heex:363
#: lib/cannery_web/live/type_live/form_component.html.heex:366
#: lib/cannery_web/live/type_live/form_component.html.heex:367
#: lib/cannery_web/live/type_live/form_component.html.heex:370
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr ""
@ -222,12 +222,12 @@ msgstr ""
msgid "My cool ammo can"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:45
#: lib/cannery_web/components/container_table_component.ex:49
#: lib/cannery_web/components/type_table_component.ex:152
#: lib/cannery_web/live/container_live/form_component.html.heex:21
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
#: lib/cannery_web/live/tag_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/form_component.html.heex:31
#: lib/cannery_web/live/type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Name"
msgstr ""
@ -278,8 +278,8 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
#: lib/cannery_web/components/shot_record_table_component.ex:46
#: lib/cannery_web/live/pack_live/form_component.html.heex:58
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:80
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
msgid "Notes"
@ -297,13 +297,13 @@ msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:283
#: lib/cannery_web/live/type_live/form_component.html.heex:287
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:52
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr ""
@ -314,7 +314,7 @@ msgid "Price paid:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:82
#: lib/cannery_web/live/type_live/form_component.html.heex:324
#: lib/cannery_web/live/type_live/form_component.html.heex:328
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr ""
@ -334,7 +334,7 @@ msgstr ""
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/controllers/user_settings_controller.ex:9
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:3
#, elixir-autogen, elixir-format
msgid "Settings"
@ -345,17 +345,17 @@ msgstr ""
msgid "Simple:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:100
#: lib/cannery_web/live/pack_live/show.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stored in"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:66
#: lib/cannery_web/components/container_table_component.ex:73
#: lib/cannery_web/components/core_components/topbar.html.heex:28
#: lib/cannery_web/live/tag_live/index.ex:43
#: lib/cannery_web/live/tag_live/index.ex:53
@ -380,16 +380,16 @@ msgid "The self-hosted firearm tracker website"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:84
#: lib/cannery_web/live/type_live/form_component.html.heex:346
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:48
#: lib/cannery_web/components/container_table_component.ex:52
#: lib/cannery_web/components/move_pack_component.ex:65
#: lib/cannery_web/components/pack_table_component.ex:108
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr ""
@ -415,15 +415,16 @@ msgstr ""
msgid "Your data stays with you, period"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:60
#: lib/cannery_web/live/container_live/show.html.heex:68
#, elixir-autogen, elixir-format
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:77
#: lib/cannery_web/components/core_components/topbar.html.heex:48
#: lib/cannery_web/components/pack_table_component.ex:80
#: lib/cannery_web/live/range_live/index.ex:55
#: lib/cannery_web/live/range_live/index.ex:65
#: lib/cannery_web/live/range_live/index.ex:76
#: lib/cannery_web/live/range_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Range"
msgstr ""
@ -435,7 +436,7 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
#: lib/cannery_web/components/shot_record_table_component.ex:47
#: lib/cannery_web/live/pack_live/show.ex:91
#: lib/cannery_web/live/pack_live/show.ex:81
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
@ -446,26 +447,21 @@ msgstr ""
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/components/add_shot_record_component.html.heex:3
#: lib/cannery_web/live/pack_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:52
#: lib/cannery_web/live/range_live/index.html.heex:121
#: lib/cannery_web/live/range_live/index.html.heex:64
#: lib/cannery_web/live/range_live/index.html.heex:148
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr ""
#: lib/cannery_web/components/shot_record_table_component.ex:45
#: lib/cannery_web/live/pack_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:66
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.html.heex:78
#, elixir-autogen, elixir-format
msgid "Rounds shot"
msgstr ""
@ -480,7 +476,7 @@ msgstr ""
msgid "No other containers"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:57
#: lib/cannery_web/live/range_live/index.html.heex:69
#, elixir-autogen, elixir-format
msgid "Shot log"
msgstr ""
@ -488,7 +484,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
#: lib/cannery_web/components/pack_table_component.ex:181
#: lib/cannery_web/components/pack_table_component.ex:264
#: lib/cannery_web/components/pack_table_component.ex:263
#: lib/cannery_web/components/type_table_component.ex:273
#: lib/cannery_web/live/pack_live/show.html.heex:37
#: lib/cannery_web/live/pack_live/show.html.heex:42
@ -497,36 +493,36 @@ msgstr ""
msgid "$%{amount}"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:177
#: lib/cannery_web/live/type_live/form_component.html.heex:181
#, elixir-autogen, elixir-format
msgid "Bimetal"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:65
#: lib/cannery_web/live/type_live/form_component.html.heex:172
#: lib/cannery_web/live/type_live/form_component.html.heex:176
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:81
#: lib/cannery_web/live/type_live/form_component.html.heex:307
#: lib/cannery_web/live/type_live/form_component.html.heex:311
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:75
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: lib/cannery_web/live/type_live/form_component.html.heex:274
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:73
#: lib/cannery_web/live/type_live/form_component.html.heex:261
#: lib/cannery_web/live/type_live/form_component.html.heex:265
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:374
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@ -550,7 +546,7 @@ msgid "New password"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@ -561,13 +557,13 @@ msgid "Reconnecting..."
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:28
#: lib/cannery_web/live/container_live/show.ex:118
#: lib/cannery_web/live/container_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:63
#: lib/cannery_web/live/container_live/show.ex:119
#: lib/cannery_web/live/container_live/show.ex:131
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr ""
@ -580,7 +576,7 @@ msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:178
#: lib/cannery_web/components/pack_table_component.ex:260
#: lib/cannery_web/components/pack_table_component.ex:259
#: lib/cannery_web/components/type_table_component.ex:272
#: lib/cannery_web/live/type_live/show.html.heex:154
#, elixir-autogen, elixir-format
@ -612,12 +608,12 @@ msgstr ""
msgid "Percentage left:"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:113
#: lib/cannery_web/live/pack_live/show.html.heex:107
#, elixir-autogen, elixir-format
msgid "Rounds used"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#: lib/cannery_web/controllers/user_confirmation_controller.ex:6
#, elixir-autogen, elixir-format
msgid "Confirm your account"
msgstr ""
@ -632,7 +628,7 @@ msgstr ""
msgid "Log in"
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:32
#: lib/cannery_web/controllers/user_registration_controller.ex:31
#, elixir-autogen, elixir-format
msgid "Register"
msgstr ""
@ -643,13 +639,13 @@ msgid "Reset your password"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:31
#: lib/cannery_web/live/range_live/index.ex:47
#: lib/cannery_web/live/range_live/index.ex:52
#: lib/cannery_web/live/range_live/index.ex:68
#, elixir-autogen, elixir-format
msgid "Record Shots"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:77
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr ""
@ -659,22 +655,6 @@ msgstr ""
msgid "Added on:"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:32
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:127
#, elixir-autogen, elixir-format
msgid "English"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "French"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:128
#, elixir-autogen, elixir-format
msgid "German"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Language"
@ -718,7 +698,7 @@ msgstr ""
msgid "Move Ammo"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/container_live/show.html.heex:125
#, elixir-autogen, elixir-format
msgid "No ammo in this container"
msgstr ""
@ -728,7 +708,7 @@ msgstr ""
msgid "Show Ammo"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/show.html.heex:99
#, elixir-autogen, elixir-format
msgid "This ammo is not in a container"
msgstr ""
@ -768,31 +748,31 @@ msgstr ""
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:219
#: lib/cannery_web/components/pack_table_component.ex:218
#: lib/cannery_web/live/pack_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:153
#: lib/cannery_web/live/range_live/index.ex:215
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:64
#: lib/cannery_web/components/container_table_component.ex:68
#: lib/cannery_web/components/type_table_component.ex:122
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:65
#: lib/cannery_web/components/container_table_component.ex:69
#: lib/cannery_web/components/type_table_component.ex:143
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:109
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/type_live/show.html.heex:170
#, elixir-autogen, elixir-format
msgid "View as table"
@ -838,7 +818,7 @@ msgstr ""
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:80
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot chart"
msgstr ""
@ -945,7 +925,7 @@ msgid "Average CPR"
msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
#: lib/cannery_web/components/pack_table_component.ex:268
#: lib/cannery_web/components/pack_table_component.ex:267
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
@ -991,7 +971,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:50
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1027,16 +1007,11 @@ msgstr ""
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:112
#: lib/cannery_web/live/range_live/index.html.heex:124
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:130
#, elixir-autogen, elixir-format
msgid "Spanish"
msgstr ""
#: lib/cannery_web/components/layouts.ex:15
#: lib/cannery_web/components/layouts/root.html.heex:9
#: lib/cannery_web/components/layouts/root.html.heex:10
@ -1134,27 +1109,27 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:288
#: lib/cannery_web/live/type_live/form_component.html.heex:292
#, elixir-autogen, elixir-format
msgid "+P"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:78
#: lib/cannery_web/live/type_live/form_component.html.heex:82
#, elixir-autogen, elixir-format
msgid ".223"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:62
#, elixir-autogen, elixir-format
msgid "5.56x46mm NATO"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:329
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#, elixir-autogen, elixir-format
msgid "Boxer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:338
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
@ -1165,12 +1140,12 @@ msgstr ""
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/container_table_component.ex:74
#: lib/cannery_web/components/move_pack_component.ex:67
#: lib/cannery_web/components/pack_table_component.ex:62
#: lib/cannery_web/components/shot_record_table_component.ex:48
#: lib/cannery_web/components/type_table_component.ex:99
#: lib/cannery_web/live/pack_live/show.ex:92
#: lib/cannery_web/live/pack_live/show.ex:82
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
@ -1196,21 +1171,21 @@ msgstr ""
msgid "Close modal"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/index.html.heex:58
#: lib/cannery_web/live/range_live/index.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:103
#: lib/cannery_web/live/type_live/index.html.heex:37
#, elixir-autogen, elixir-format
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:343
#: lib/cannery_web/live/type_live/form_component.html.heex:347
#, elixir-autogen, elixir-format
msgid "Attributes"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:56
#: lib/cannery_web/live/type_live/form_component.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Brass height"
msgstr ""
@ -1221,7 +1196,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:103
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1231,13 +1206,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#, elixir-autogen, elixir-format
msgid "Dimensions"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:80
#: lib/cannery_web/live/type_live/form_component.html.heex:293
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1248,7 +1223,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1259,7 +1234,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:231
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1279,35 +1254,37 @@ msgstr ""
msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: lib/cannery_web/live/container_live/show.html.heex:108
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
#: lib/cannery_web/live/pack_live/index.html.heex:61
#: lib/cannery_web/live/range_live/index.html.heex:94
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:106
#: lib/cannery_web/live/type_live/form_component.html.heex:28
#: lib/cannery_web/live/type_live/index.html.heex:40
#: lib/cannery_web/live/type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Pistol"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:258
#: lib/cannery_web/live/type_live/form_component.html.heex:262
#, elixir-autogen, elixir-format, fuzzy
msgid "Powder"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:321
#: lib/cannery_web/live/type_live/form_component.html.heex:325
#, elixir-autogen, elixir-format, fuzzy
msgid "Primer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:119
#: lib/cannery_web/live/type_live/form_component.html.heex:123
#, elixir-autogen, elixir-format
msgid "Projectile"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:106
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/index.html.heex:59
#: lib/cannery_web/live/range_live/index.html.heex:92
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:104
#: lib/cannery_web/live/type_live/form_component.html.heex:26
#: lib/cannery_web/live/type_live/index.html.heex:38
#: lib/cannery_web/live/type_live/show.html.heex:54
#, elixir-autogen, elixir-format
@ -1315,7 +1292,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:239
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1326,7 +1303,7 @@ msgid "Shot charge weight:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1337,7 +1314,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:223
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format, fuzzy
msgid "Shot size"
msgstr ""
@ -1348,7 +1325,7 @@ msgid "Shot size:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:204
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1358,10 +1335,11 @@ msgstr ""
msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/container_live/show.html.heex:107
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
#: lib/cannery_web/live/pack_live/index.html.heex:60
#: lib/cannery_web/live/range_live/index.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:105
#: lib/cannery_web/live/type_live/form_component.html.heex:27
#: lib/cannery_web/live/type_live/index.html.heex:39
#: lib/cannery_web/live/type_live/show.html.heex:52
#, elixir-autogen, elixir-format
@ -1369,12 +1347,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:162
#, elixir-autogen, elixir-format
msgid "Slug core"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1385,13 +1363,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:87
#, elixir-autogen, elixir-format
msgid "Unfired shell length"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:67
#: lib/cannery_web/live/type_live/form_component.html.heex:196
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1402,9 +1380,10 @@ msgid "Wadding:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/index.html.heex:50
#: lib/cannery_web/live/range_live/index.html.heex:83
#: lib/cannery_web/live/range_live/index.html.heex:95
#: lib/cannery_web/live/type_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/index.html.heex:29
#: lib/cannery_web/live/type_live/show.html.heex:46
@ -1424,7 +1403,7 @@ msgid "Used up!"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:39
#: lib/cannery_web/live/range_live/index.ex:60
#, elixir-autogen, elixir-format, fuzzy
msgid "Edit Shot Record"
msgstr ""
@ -1448,7 +1427,7 @@ msgid "No Types"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:42
#: lib/cannery_web/live/pack_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
msgid "Lot number"
msgstr ""
@ -1457,3 +1436,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Lot number:"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Any"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:138
#, elixir-autogen, elixir-format, fuzzy
msgid "Dates"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No containers staged"
msgstr ""

View File

@ -24,7 +24,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:224
#: lib/cannery/containers.ex:234
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh"
@ -40,7 +40,7 @@ msgstr "Ní feidir %{name} a scriosadh: %{error}"
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
#: lib/cannery_web/controllers/user_settings_controller.ex:83
#, 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."
@ -83,20 +83,20 @@ msgstr ""
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:22
#: lib/cannery_web/controllers/user_registration_controller.ex:51
#: lib/cannery_web/controllers/user_registration_controller.ex:21
#: lib/cannery_web/controllers/user_registration_controller.ex:50
#, 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:12
#: lib/cannery_web/controllers/user_registration_controller.ex:41
#: lib/cannery_web/controllers/user_registration_controller.ex:70
#: lib/cannery_web/controllers/user_registration_controller.ex:11
#: lib/cannery_web/controllers/user_registration_controller.ex:40
#: lib/cannery_web/controllers/user_registration_controller.ex:69
#, 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
#: lib/cannery_web/controllers/user_settings_controller.ex:98
#, elixir-autogen, elixir-format
msgid "Unable to delete user"
msgstr "Ní feidir an úsáideoir a scriosadh"
@ -107,7 +107,7 @@ msgstr "Ní feidir an úsáideoir a scriosadh"
msgid "Unauthorized"
msgstr "Níl cead agaibh"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:53
#: lib/cannery_web/controllers/user_confirmation_controller.ex:51
#, 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."
@ -117,22 +117,22 @@ msgstr "Tá nasc an úsáideoir a deimhnigh neamhbailí nó as dáta."
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:145
#: lib/cannery/accounts/user.ex:140
#, elixir-autogen, elixir-format
msgid "did not change"
msgstr "Níor athraigh sé"
#: lib/cannery/accounts/user.ex:166
#: lib/cannery/accounts/user.ex:161
#, elixir-autogen, elixir-format
msgid "does not match password"
msgstr ""
#: lib/cannery/accounts/user.ex:203
#: lib/cannery/accounts/user.ex:198
#, elixir-autogen, elixir-format
msgid "is not valid"
msgstr ""
#: lib/cannery/accounts/user.ex:100
#: lib/cannery/accounts/user.ex:95
#, elixir-autogen, elixir-format
msgid "must have the @ sign and no spaces"
msgstr ""
@ -158,56 +158,46 @@ msgstr ""
msgid "Tag could not be removed"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:152
#: lib/cannery_web/live/pack_live/form_component.ex:175
#, elixir-autogen, elixir-format
msgid "Could not parse number of copies"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:142
#: lib/cannery/ammo.ex:1026
#, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr ""
#: lib/cannery/ammo.ex:974
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:71
#: lib/cannery_web/live/range_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:74
#: lib/cannery/activity_log/shot_record.ex:71
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid user and ammo pack"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:88
#: lib/cannery/activity_log/shot_record.ex:85
#, elixir-autogen, elixir-format
msgid "Ammo left can be at most %{count} rounds"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:84
#: lib/cannery/activity_log/shot_record.ex:81
#, elixir-autogen, elixir-format
msgid "Ammo left must be at least 0"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:119
#: lib/cannery/activity_log/shot_record.ex:116
#, elixir-autogen, elixir-format, fuzzy
msgid "Count can be at most %{count} shots"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:80
#: lib/cannery/activity_log/shot_record.ex:77
#, elixir-autogen, elixir-format
msgid "can't be blank"
msgstr ""
#: lib/cannery/ammo/pack.ex:100
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a type and container"
msgstr ""
#: lib/cannery_web/controllers/error_html.ex:11
#: lib/cannery_web/controllers/error_json.ex:9
#, elixir-autogen, elixir-format, fuzzy
@ -223,3 +213,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "You must log in to access this page."
msgstr ""
#: lib/cannery/ammo/pack.ex:101
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid container"
msgstr ""
#: lib/cannery/ammo/pack.ex:99
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr ""

View File

@ -50,26 +50,26 @@ msgstr ""
msgid "%{name} updated successfully"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:29
#: lib/cannery_web/controllers/user_settings_controller.ex:28
#, elixir-autogen, elixir-format
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:110
#: lib/cannery_web/live/invite_live/index.html.heex:138
#: lib/cannery_web/live/invite_live/index.html.heex:145
#, 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:99
#: lib/cannery_web/live/container_live/index.html.heex:157
#: lib/cannery_web/live/container_live/index.html.heex:113
#: lib/cannery_web/live/container_live/index.html.heex:171
#: lib/cannery_web/live/container_live/show.html.heex:45
#: lib/cannery_web/live/tag_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:185
#: lib/cannery_web/live/pack_live/index.html.heex:174
#: lib/cannery_web/live/pack_live/show.html.heex:69
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -85,12 +85,12 @@ msgstr ""
msgid "Are you sure you want to log out?"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:77
#: lib/cannery_web/controllers/user_settings_controller.ex:76
#, elixir-autogen, elixir-format
msgid "Email changed successfully."
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
#: lib/cannery_web/controllers/user_confirmation_controller.ex:21
#, 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 ""
@ -110,12 +110,12 @@ msgstr ""
msgid "Password reset successfully."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:49
#: lib/cannery_web/controllers/user_settings_controller.ex:48
#, elixir-autogen, elixir-format
msgid "Password updated successfully."
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:65
#: lib/cannery_web/controllers/user_registration_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Please check your email to verify your account"
msgstr ""
@ -123,15 +123,15 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
#: lib/cannery_web/live/container_live/form_component.html.heex:61
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
#: lib/cannery_web/live/pack_live/form_component.html.heex:111
#: lib/cannery_web/live/range_live/form_component.html.heex:47
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
#: lib/cannery_web/live/type_live/form_component.html.heex:383
#: lib/cannery_web/live/type_live/form_component.html.heex:387
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:95
#: lib/cannery_web/controllers/user_settings_controller.ex:94
#, elixir-autogen, elixir-format
msgid "Your account has been deleted"
msgstr ""
@ -151,7 +151,7 @@ msgstr ""
msgid "%{tag_name} has been removed from %{container_name}"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "Adding..."
msgstr ""
@ -161,19 +161,14 @@ msgstr ""
msgid "Shots recorded successfully"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:157
#: lib/cannery_web/live/range_live/index.html.heex:151
#: lib/cannery_web/live/pack_live/show.ex:147
#: lib/cannery_web/live/range_live/index.html.heex:178
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.ex:78
#: lib/cannery_web/live/pack_live/show.ex:69
#: lib/cannery_web/live/range_live/index.ex:99
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
msgstr ""
@ -183,7 +178,7 @@ msgstr ""
msgid "Shot records updated successfully"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:37
#: lib/cannery_web/controllers/user_confirmation_controller.ex:35
#, elixir-autogen, elixir-format
msgid "%{email} confirmed successfully."
msgstr ""
@ -209,7 +204,7 @@ msgstr ""
msgid "You'll need to"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:86
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr ""
@ -219,7 +214,7 @@ msgstr ""
msgid "Are you sure you want to change your language?"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:65
#: lib/cannery_web/controllers/user_settings_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Language updated successfully."
msgstr ""
@ -230,17 +225,12 @@ msgstr ""
msgid "Ammo deleted succesfully"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:91
#, elixir-autogen, elixir-format
msgid "Ammo unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:118
#: lib/cannery_web/live/pack_live/form_component.ex:141
#, elixir-autogen, elixir-format
msgid "Ammo updated successfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:177
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
@ -281,7 +271,7 @@ msgstr ""
msgid "%{invite_name} updated succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:125
#: lib/cannery_web/live/invite_live/index.ex:139
#, elixir-autogen, elixir-format, fuzzy
msgid "%{user_email} deleted succesfully"
msgstr ""
@ -295,3 +285,13 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Container unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:128
#, elixir-autogen, elixir-format
msgid "Email resent to %{user_email} succesfully"
msgstr ""

View File

@ -65,7 +65,7 @@ msgstr ""
msgid "Delete User"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:52
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
#, elixir-autogen, elixir-format
@ -79,7 +79,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:94
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:28
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:44
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:49
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:41
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28
#: lib/cannery_web/controllers/user_session_html/new.html.heex:3
@ -106,7 +106,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/topbar.html.heex:89
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:25
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:3
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:42
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:38
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
@ -129,10 +129,10 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
#: lib/cannery_web/live/container_live/form_component.html.heex:59
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:110
#: lib/cannery_web/live/range_live/form_component.html.heex:45
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
#: lib/cannery_web/live/type_live/form_component.html.heex:382
#: lib/cannery_web/live/type_live/form_component.html.heex:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
@ -142,29 +142,24 @@ msgstr ""
msgid "Send instructions to reset password"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:65
#: lib/cannery_web/live/container_live/show.html.heex:73
#, elixir-autogen, elixir-format
msgid "Why not add one?"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:51
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#, 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:13
#, elixir-autogen, elixir-format
msgid "Why not get some ready to shoot?"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:90
#: lib/cannery_web/live/range_live/index.html.heex:42
#: lib/cannery_web/live/pack_live/index.html.heex:116
#: lib/cannery_web/live/pack_live/show.html.heex:84
#: lib/cannery_web/live/range_live/index.html.heex:54
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr ""
@ -189,7 +184,7 @@ msgstr ""
msgid "add a container first"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:85
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr ""
@ -210,8 +205,8 @@ msgid "View in Catalog"
msgstr ""
#: lib/cannery_web/components/move_pack_component.ex:77
#: lib/cannery_web/live/pack_live/index.html.heex:138
#: lib/cannery_web/live/pack_live/show.html.heex:86
#: lib/cannery_web/live/pack_live/index.html.heex:127
#: lib/cannery_web/live/pack_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr ""
@ -221,14 +216,12 @@ msgstr ""
msgid "Set Unlimited"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:82
#: lib/cannery_web/live/range_live/index.html.heex:38
#: lib/cannery_web/live/container_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:81
#: lib/cannery_web/live/range_live/index.html.heex:37
#: lib/cannery_web/live/container_live/show.html.heex:58
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr ""
@ -238,8 +231,8 @@ msgstr ""
msgid "Export Data as JSON"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:87
#: lib/cannery_web/live/container_live/index.html.heex:145
#: lib/cannery_web/live/container_live/index.html.heex:101
#: lib/cannery_web/live/container_live/index.html.heex:159
#, elixir-autogen, elixir-format
msgid "Clone %{container_name}"
msgstr ""
@ -249,8 +242,8 @@ msgstr ""
msgid "Copy invite link for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:104
#: lib/cannery_web/live/container_live/index.html.heex:162
#: lib/cannery_web/live/container_live/index.html.heex:118
#: lib/cannery_web/live/container_live/index.html.heex:176
#: lib/cannery_web/live/container_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Delete %{container_name}"
@ -266,8 +259,8 @@ msgstr ""
msgid "Delete invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:77
#: lib/cannery_web/live/container_live/index.html.heex:135
#: lib/cannery_web/live/container_live/index.html.heex:91
#: lib/cannery_web/live/container_live/index.html.heex:149
#: lib/cannery_web/live/container_live/show.html.heex:35
#, elixir-autogen, elixir-format
msgid "Edit %{container_name}"
@ -283,54 +276,56 @@ msgstr ""
msgid "Edit invite for %{invite_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:120
#: lib/cannery_web/live/container_live/index.html.heex:69
#: lib/cannery_web/live/range_live/index.html.heex:35
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:65
#: lib/cannery_web/live/container_live/index.html.heex:124
#: lib/cannery_web/live/container_live/index.html.heex:79
#: lib/cannery_web/live/container_live/index.html.heex:138
#, elixir-autogen, elixir-format
msgid "Tag %{container_name}"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:119
#: lib/cannery_web/live/container_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:172
#: lib/cannery_web/live/pack_live/index.html.heex:161
#, elixir-autogen, elixir-format
msgid "Clone pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:187
#: lib/cannery_web/live/pack_live/index.html.heex:176
#: lib/cannery_web/live/pack_live/show.html.heex:71
#, elixir-autogen, elixir-format
msgid "Delete pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:160
#: lib/cannery_web/live/pack_live/index.html.heex:149
#: lib/cannery_web/live/pack_live/show.html.heex:59
#, elixir-autogen, elixir-format
msgid "Edit pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:139
#: lib/cannery_web/live/pack_live/index.html.heex:148
#: lib/cannery_web/live/container_live/show.html.heex:147
#: lib/cannery_web/live/pack_live/index.html.heex:137
#: lib/cannery_web/live/type_live/show.html.heex:201
#, elixir-autogen, elixir-format
msgid "View pack of %{pack_count} bullets"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:159
#: lib/cannery_web/live/range_live/index.html.heex:154
#: lib/cannery_web/live/pack_live/show.ex:149
#: lib/cannery_web/live/range_live/index.html.heex:181
#, elixir-autogen, elixir-format
msgid "Delete shot record of %{shot_record_count} shots"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:144
#: lib/cannery_web/live/range_live/index.html.heex:137
#: lib/cannery_web/live/pack_live/show.ex:134
#: lib/cannery_web/live/range_live/index.html.heex:164
#, elixir-autogen, elixir-format
msgid "Edit shot record of %{shot_record_count} shots"
msgstr ""
@ -366,3 +361,8 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "add a type first"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage containers"
msgstr ""

View File

@ -51,49 +51,49 @@ msgid "Background color"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:191
#: lib/cannery_web/live/type_live/form_component.html.heex:195
#, elixir-autogen, elixir-format
msgid "Brass"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:159
#: lib/cannery_web/live/type_live/form_component.html.heex:163
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:59
#: lib/cannery_web/live/type_live/form_component.html.heex:132
#: lib/cannery_web/live/type_live/form_component.html.heex:136
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:74
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#: lib/cannery_web/live/type_live/form_component.html.heex:57
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:184
#: lib/cannery_web/live/type_live/form_component.html.heex:188
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr ""
#: lib/cannery_web/components/move_pack_component.ex:64
#: lib/cannery_web/components/pack_table_component.ex:76
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#, elixir-autogen, elixir-format
msgid "Container"
msgstr ""
@ -107,13 +107,13 @@ msgid "Containers"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:87
#: lib/cannery_web/live/type_live/form_component.html.heex:358
#: lib/cannery_web/live/type_live/form_component.html.heex:362
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:104
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
msgid "Count"
msgstr ""
@ -124,9 +124,9 @@ msgstr ""
msgid "Count:"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/components/container_table_component.ex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: lib/cannery_web/live/type_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:43
#, elixir-autogen, elixir-format
msgid "Description"
msgstr ""
@ -152,19 +152,19 @@ msgstr ""
msgid "Edit Tag"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:147
#: lib/cannery_web/live/type_live/form_component.html.heex:151
#, elixir-autogen, elixir-format
msgid "FMJ"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:122
#: lib/cannery_web/live/type_live/form_component.html.heex:126
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:85
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@ -196,7 +196,7 @@ msgstr ""
msgid "Keep me logged in for 60 days"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/container_table_component.ex:51
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
@ -215,8 +215,8 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:88
#: lib/cannery_web/live/type_live/form_component.html.heex:363
#: lib/cannery_web/live/type_live/form_component.html.heex:366
#: lib/cannery_web/live/type_live/form_component.html.heex:367
#: lib/cannery_web/live/type_live/form_component.html.heex:370
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr ""
@ -231,12 +231,12 @@ msgstr ""
msgid "My cool ammo can"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:45
#: lib/cannery_web/components/container_table_component.ex:49
#: lib/cannery_web/components/type_table_component.ex:152
#: lib/cannery_web/live/container_live/form_component.html.heex:21
#: lib/cannery_web/live/invite_live/form_component.html.heex:21
#: lib/cannery_web/live/tag_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/form_component.html.heex:31
#: lib/cannery_web/live/type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Name"
msgstr ""
@ -287,8 +287,8 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:38
#: lib/cannery_web/components/shot_record_table_component.ex:46
#: lib/cannery_web/live/pack_live/form_component.html.heex:58
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:80
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
msgid "Notes"
@ -306,13 +306,13 @@ msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:283
#: lib/cannery_web/live/type_live/form_component.html.heex:287
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:92
#: lib/cannery_web/live/pack_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:52
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr ""
@ -323,7 +323,7 @@ msgid "Price paid:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:82
#: lib/cannery_web/live/type_live/form_component.html.heex:324
#: lib/cannery_web/live/type_live/form_component.html.heex:328
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr ""
@ -343,7 +343,7 @@ msgstr ""
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/controllers/user_settings_controller.ex:9
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:3
#, elixir-autogen, elixir-format
msgid "Settings"
@ -354,17 +354,17 @@ msgstr ""
msgid "Simple:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:100
#: lib/cannery_web/live/pack_live/show.html.heex:94
#, elixir-autogen, elixir-format
msgid "Stored in"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:66
#: lib/cannery_web/components/container_table_component.ex:73
#: lib/cannery_web/components/core_components/topbar.html.heex:28
#: lib/cannery_web/live/tag_live/index.ex:43
#: lib/cannery_web/live/tag_live/index.ex:53
@ -389,16 +389,16 @@ msgid "The self-hosted firearm tracker website"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:84
#: lib/cannery_web/live/type_live/form_component.html.heex:346
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:48
#: lib/cannery_web/components/container_table_component.ex:52
#: lib/cannery_web/components/move_pack_component.ex:65
#: lib/cannery_web/components/pack_table_component.ex:108
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr ""
@ -424,15 +424,16 @@ msgstr ""
msgid "Your data stays with you, period"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:60
#: lib/cannery_web/live/container_live/show.html.heex:68
#, elixir-autogen, elixir-format
msgid "No tags for this container"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:77
#: lib/cannery_web/components/core_components/topbar.html.heex:48
#: lib/cannery_web/components/pack_table_component.ex:80
#: lib/cannery_web/live/range_live/index.ex:55
#: lib/cannery_web/live/range_live/index.ex:65
#: lib/cannery_web/live/range_live/index.ex:76
#: lib/cannery_web/live/range_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Range"
msgstr ""
@ -444,7 +445,7 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:49
#: lib/cannery_web/components/shot_record_table_component.ex:47
#: lib/cannery_web/live/pack_live/show.ex:91
#: lib/cannery_web/live/pack_live/show.ex:81
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
@ -455,26 +456,21 @@ msgstr ""
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/components/add_shot_record_component.html.heex:3
#: lib/cannery_web/live/pack_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:52
#: lib/cannery_web/live/range_live/index.html.heex:121
#: lib/cannery_web/live/range_live/index.html.heex:64
#: lib/cannery_web/live/range_live/index.html.heex:148
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr ""
#: lib/cannery_web/components/shot_record_table_component.ex:45
#: lib/cannery_web/live/pack_live/show.ex:89
#: lib/cannery_web/live/range_live/index.html.heex:66
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.html.heex:78
#, elixir-autogen, elixir-format
msgid "Rounds shot"
msgstr ""
@ -489,7 +485,7 @@ msgstr ""
msgid "No other containers"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:57
#: lib/cannery_web/live/range_live/index.html.heex:69
#, elixir-autogen, elixir-format
msgid "Shot log"
msgstr ""
@ -497,7 +493,7 @@ msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
#: lib/cannery_web/components/pack_table_component.ex:181
#: lib/cannery_web/components/pack_table_component.ex:264
#: lib/cannery_web/components/pack_table_component.ex:263
#: lib/cannery_web/components/type_table_component.ex:273
#: lib/cannery_web/live/pack_live/show.html.heex:37
#: lib/cannery_web/live/pack_live/show.html.heex:42
@ -506,36 +502,36 @@ msgstr ""
msgid "$%{amount}"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:177
#: lib/cannery_web/live/type_live/form_component.html.heex:181
#, elixir-autogen, elixir-format
msgid "Bimetal"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:65
#: lib/cannery_web/live/type_live/form_component.html.heex:172
#: lib/cannery_web/live/type_live/form_component.html.heex:176
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:81
#: lib/cannery_web/live/type_live/form_component.html.heex:307
#: lib/cannery_web/live/type_live/form_component.html.heex:311
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:75
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: lib/cannery_web/live/type_live/form_component.html.heex:274
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:73
#: lib/cannery_web/live/type_live/form_component.html.heex:261
#: lib/cannery_web/live/type_live/form_component.html.heex:265
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:374
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@ -559,7 +555,7 @@ msgid "New password"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@ -570,13 +566,13 @@ msgid "Reconnecting..."
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:28
#: lib/cannery_web/live/container_live/show.ex:118
#: lib/cannery_web/live/container_live/show.ex:130
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr ""
#: lib/cannery_web/live/container_live/index.ex:63
#: lib/cannery_web/live/container_live/show.ex:119
#: lib/cannery_web/live/container_live/show.ex:131
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr ""
@ -589,7 +585,7 @@ msgid "Rounds:"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:178
#: lib/cannery_web/components/pack_table_component.ex:260
#: lib/cannery_web/components/pack_table_component.ex:259
#: lib/cannery_web/components/type_table_component.ex:272
#: lib/cannery_web/live/type_live/show.html.heex:154
#, elixir-autogen, elixir-format
@ -621,12 +617,12 @@ msgstr ""
msgid "Percentage left:"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:113
#: lib/cannery_web/live/pack_live/show.html.heex:107
#, elixir-autogen, elixir-format
msgid "Rounds used"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#: lib/cannery_web/controllers/user_confirmation_controller.ex:6
#, elixir-autogen, elixir-format
msgid "Confirm your account"
msgstr ""
@ -641,7 +637,7 @@ msgstr ""
msgid "Log in"
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:32
#: lib/cannery_web/controllers/user_registration_controller.ex:31
#, elixir-autogen, elixir-format
msgid "Register"
msgstr ""
@ -652,13 +648,13 @@ msgid "Reset your password"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:40
#: lib/cannery_web/live/range_live/index.ex:31
#: lib/cannery_web/live/range_live/index.ex:47
#: lib/cannery_web/live/range_live/index.ex:52
#: lib/cannery_web/live/range_live/index.ex:68
#, elixir-autogen, elixir-format
msgid "Record Shots"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:77
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr ""
@ -668,22 +664,6 @@ msgstr ""
msgid "Added on:"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:32
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:127
#, elixir-autogen, elixir-format
msgid "English"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "French"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:128
#, elixir-autogen, elixir-format
msgid "German"
msgstr ""
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Language"
@ -727,7 +707,7 @@ msgstr ""
msgid "Move Ammo"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/container_live/show.html.heex:125
#, elixir-autogen, elixir-format
msgid "No ammo in this container"
msgstr ""
@ -737,7 +717,7 @@ msgstr ""
msgid "Show Ammo"
msgstr ""
#: lib/cannery_web/live/pack_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/show.html.heex:99
#, elixir-autogen, elixir-format
msgid "This ammo is not in a container"
msgstr ""
@ -777,31 +757,31 @@ msgstr ""
msgid "Show used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:219
#: lib/cannery_web/components/pack_table_component.ex:218
#: lib/cannery_web/live/pack_live/show.html.heex:19
#, elixir-autogen, elixir-format
msgid "%{percentage}%"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:153
#: lib/cannery_web/live/range_live/index.ex:215
#, elixir-autogen, elixir-format
msgid "Rounds shot: %{count}"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:64
#: lib/cannery_web/components/container_table_component.ex:68
#: lib/cannery_web/components/type_table_component.ex:122
#, elixir-autogen, elixir-format
msgid "Packs"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:65
#: lib/cannery_web/components/container_table_component.ex:69
#: lib/cannery_web/components/type_table_component.ex:143
#, elixir-autogen, elixir-format
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:40
#: lib/cannery_web/live/container_live/show.html.heex:109
#: lib/cannery_web/live/container_live/show.html.heex:117
#: lib/cannery_web/live/type_live/show.html.heex:170
#, elixir-autogen, elixir-format
msgid "View as table"
@ -847,7 +827,7 @@ msgstr ""
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:68
#: lib/cannery_web/live/range_live/index.html.heex:80
#, elixir-autogen, elixir-format
msgid "Rounds shot chart"
msgstr ""
@ -954,7 +934,7 @@ msgid "Average CPR"
msgstr ""
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
#: lib/cannery_web/components/pack_table_component.ex:268
#: lib/cannery_web/components/pack_table_component.ex:267
#, elixir-autogen, elixir-format
msgid "Empty"
msgstr ""
@ -1000,7 +980,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:50
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1036,16 +1016,11 @@ msgstr ""
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:112
#: lib/cannery_web/live/range_live/index.html.heex:124
#, elixir-autogen, elixir-format
msgid "Search shot records"
msgstr ""
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:130
#, elixir-autogen, elixir-format
msgid "Spanish"
msgstr ""
#: lib/cannery_web/components/layouts.ex:15
#: lib/cannery_web/components/layouts/root.html.heex:9
#: lib/cannery_web/components/layouts/root.html.heex:10
@ -1134,27 +1109,27 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:288
#: lib/cannery_web/live/type_live/form_component.html.heex:292
#, elixir-autogen, elixir-format
msgid "+P"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:78
#: lib/cannery_web/live/type_live/form_component.html.heex:82
#, elixir-autogen, elixir-format
msgid ".223"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:58
#: lib/cannery_web/live/type_live/form_component.html.heex:62
#, elixir-autogen, elixir-format
msgid "5.56x46mm NATO"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:329
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#, elixir-autogen, elixir-format
msgid "Boxer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:338
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
@ -1165,12 +1140,12 @@ msgstr ""
msgid "Really great weather"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:67
#: lib/cannery_web/components/container_table_component.ex:74
#: lib/cannery_web/components/move_pack_component.ex:67
#: lib/cannery_web/components/pack_table_component.ex:62
#: lib/cannery_web/components/shot_record_table_component.ex:48
#: lib/cannery_web/components/type_table_component.ex:99
#: lib/cannery_web/live/pack_live/show.ex:92
#: lib/cannery_web/live/pack_live/show.ex:82
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
@ -1196,21 +1171,21 @@ msgstr ""
msgid "Close modal"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:97
#: lib/cannery_web/live/container_live/show.html.heex:105
#: lib/cannery_web/live/pack_live/index.html.heex:58
#: lib/cannery_web/live/range_live/index.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:103
#: lib/cannery_web/live/type_live/index.html.heex:37
#, elixir-autogen, elixir-format
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:343
#: lib/cannery_web/live/type_live/form_component.html.heex:347
#, elixir-autogen, elixir-format
msgid "Attributes"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:56
#: lib/cannery_web/live/type_live/form_component.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format
msgid "Brass height"
msgstr ""
@ -1221,7 +1196,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:103
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1231,13 +1206,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:49
#: lib/cannery_web/live/type_live/form_component.html.heex:53
#, elixir-autogen, elixir-format
msgid "Dimensions"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:80
#: lib/cannery_web/live/type_live/form_component.html.heex:293
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1248,7 +1223,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1259,7 +1234,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:231
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1279,35 +1254,37 @@ msgstr ""
msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: lib/cannery_web/live/container_live/show.html.heex:108
#: lib/cannery_web/live/pack_live/form_component.html.heex:30
#: lib/cannery_web/live/pack_live/index.html.heex:61
#: lib/cannery_web/live/range_live/index.html.heex:94
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:106
#: lib/cannery_web/live/type_live/form_component.html.heex:28
#: lib/cannery_web/live/type_live/index.html.heex:40
#: lib/cannery_web/live/type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "Pistol"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:258
#: lib/cannery_web/live/type_live/form_component.html.heex:262
#, elixir-autogen, elixir-format
msgid "Powder"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:321
#: lib/cannery_web/live/type_live/form_component.html.heex:325
#, elixir-autogen, elixir-format
msgid "Primer"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:119
#: lib/cannery_web/live/type_live/form_component.html.heex:123
#, elixir-autogen, elixir-format
msgid "Projectile"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:98
#: lib/cannery_web/live/container_live/show.html.heex:106
#: lib/cannery_web/live/pack_live/form_component.html.heex:28
#: lib/cannery_web/live/pack_live/index.html.heex:59
#: lib/cannery_web/live/range_live/index.html.heex:92
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:104
#: lib/cannery_web/live/type_live/form_component.html.heex:26
#: lib/cannery_web/live/type_live/index.html.heex:38
#: lib/cannery_web/live/type_live/show.html.heex:54
#, elixir-autogen, elixir-format
@ -1315,7 +1292,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:239
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1326,7 +1303,7 @@ msgid "Shot charge weight:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:69
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1337,7 +1314,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:223
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format
msgid "Shot size"
msgstr ""
@ -1348,7 +1325,7 @@ msgid "Shot size:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:204
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1358,10 +1335,11 @@ msgstr ""
msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/container_live/show.html.heex:107
#: lib/cannery_web/live/pack_live/form_component.html.heex:29
#: lib/cannery_web/live/pack_live/index.html.heex:60
#: lib/cannery_web/live/range_live/index.html.heex:93
#: lib/cannery_web/live/type_live/form_component.html.heex:25
#: lib/cannery_web/live/range_live/index.html.heex:105
#: lib/cannery_web/live/type_live/form_component.html.heex:27
#: lib/cannery_web/live/type_live/index.html.heex:39
#: lib/cannery_web/live/type_live/show.html.heex:52
#, elixir-autogen, elixir-format
@ -1369,12 +1347,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:162
#, elixir-autogen, elixir-format
msgid "Slug core"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1385,13 +1363,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:87
#, elixir-autogen, elixir-format
msgid "Unfired shell length"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:67
#: lib/cannery_web/live/type_live/form_component.html.heex:196
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1402,9 +1380,10 @@ msgid "Wadding:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: lib/cannery_web/live/container_live/show.html.heex:99
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/pack_live/index.html.heex:50
#: lib/cannery_web/live/range_live/index.html.heex:83
#: lib/cannery_web/live/range_live/index.html.heex:95
#: lib/cannery_web/live/type_live/form_component.html.heex:21
#: lib/cannery_web/live/type_live/index.html.heex:29
#: lib/cannery_web/live/type_live/show.html.heex:46
@ -1424,7 +1403,7 @@ msgid "Used up!"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:41
#: lib/cannery_web/live/range_live/index.ex:39
#: lib/cannery_web/live/range_live/index.ex:60
#, elixir-autogen, elixir-format
msgid "Edit Shot Record"
msgstr ""
@ -1448,7 +1427,7 @@ msgid "No Types"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:42
#: lib/cannery_web/live/pack_live/form_component.html.heex:59
#, elixir-autogen, elixir-format
msgid "Lot number"
msgstr ""
@ -1457,3 +1436,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Lot number:"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Any"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:138
#, elixir-autogen, elixir-format, fuzzy
msgid "Dates"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format, fuzzy
msgid "No containers staged"
msgstr ""

View File

@ -21,7 +21,7 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:224
#: lib/cannery/containers.ex:234
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr ""
@ -37,7 +37,7 @@ msgstr ""
msgid "Could not find that container"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:84
#: lib/cannery_web/controllers/user_settings_controller.ex:83
#, elixir-autogen, elixir-format
msgid "Email change link is invalid or it has expired."
msgstr ""
@ -78,20 +78,20 @@ msgstr ""
msgid "Reset password link is invalid or it has expired."
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:22
#: lib/cannery_web/controllers/user_registration_controller.ex:51
#: lib/cannery_web/controllers/user_registration_controller.ex:21
#: lib/cannery_web/controllers/user_registration_controller.ex:50
#, elixir-autogen, elixir-format
msgid "Sorry, public registration is disabled"
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:12
#: lib/cannery_web/controllers/user_registration_controller.ex:41
#: lib/cannery_web/controllers/user_registration_controller.ex:70
#: lib/cannery_web/controllers/user_registration_controller.ex:11
#: lib/cannery_web/controllers/user_registration_controller.ex:40
#: lib/cannery_web/controllers/user_registration_controller.ex:69
#, elixir-autogen, elixir-format
msgid "Sorry, this invite was not found or expired"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:99
#: lib/cannery_web/controllers/user_settings_controller.ex:98
#, elixir-autogen, elixir-format
msgid "Unable to delete user"
msgstr ""
@ -102,7 +102,7 @@ msgstr ""
msgid "Unauthorized"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:53
#: lib/cannery_web/controllers/user_confirmation_controller.ex:51
#, elixir-autogen, elixir-format
msgid "User confirmation link is invalid or it has expired."
msgstr ""
@ -112,22 +112,22 @@ msgstr ""
msgid "You are not authorized to view this page."
msgstr ""
#: lib/cannery/accounts/user.ex:145
#: lib/cannery/accounts/user.ex:140
#, elixir-autogen, elixir-format
msgid "did not change"
msgstr ""
#: lib/cannery/accounts/user.ex:166
#: lib/cannery/accounts/user.ex:161
#, elixir-autogen, elixir-format
msgid "does not match password"
msgstr ""
#: lib/cannery/accounts/user.ex:203
#: lib/cannery/accounts/user.ex:198
#, elixir-autogen, elixir-format
msgid "is not valid"
msgstr ""
#: lib/cannery/accounts/user.ex:100
#: lib/cannery/accounts/user.ex:95
#, elixir-autogen, elixir-format
msgid "must have the @ sign and no spaces"
msgstr ""
@ -153,56 +153,46 @@ msgstr ""
msgid "Tag could not be removed"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:152
#: lib/cannery_web/live/pack_live/form_component.ex:175
#, elixir-autogen, elixir-format
msgid "Could not parse number of copies"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:142
#: lib/cannery/ammo.ex:1026
#, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr ""
#: lib/cannery/ammo.ex:974
#, elixir-autogen, elixir-format
msgid "Invalid multiplier"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:71
#: lib/cannery_web/live/range_live/index.html.heex:83
#, elixir-autogen, elixir-format
msgid "Your browser does not support the canvas element."
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:74
#: lib/cannery/activity_log/shot_record.ex:71
#, elixir-autogen, elixir-format
msgid "Please select a valid user and ammo pack"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:88
#: lib/cannery/activity_log/shot_record.ex:85
#, elixir-autogen, elixir-format
msgid "Ammo left can be at most %{count} rounds"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:84
#: lib/cannery/activity_log/shot_record.ex:81
#, elixir-autogen, elixir-format
msgid "Ammo left must be at least 0"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:119
#: lib/cannery/activity_log/shot_record.ex:116
#, elixir-autogen, elixir-format
msgid "Count can be at most %{count} shots"
msgstr ""
#: lib/cannery/activity_log/shot_record.ex:80
#: lib/cannery/activity_log/shot_record.ex:77
#, elixir-autogen, elixir-format
msgid "can't be blank"
msgstr ""
#: lib/cannery/ammo/pack.ex:100
#, elixir-autogen, elixir-format
msgid "Please select a type and container"
msgstr ""
#: lib/cannery_web/controllers/error_html.ex:11
#: lib/cannery_web/controllers/error_json.ex:9
#, elixir-autogen, elixir-format
@ -218,3 +208,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "You must log in to access this page."
msgstr ""
#: lib/cannery/ammo/pack.ex:101
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid container"
msgstr ""
#: lib/cannery/ammo/pack.ex:99
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr ""

View File

@ -50,26 +50,26 @@ msgstr ""
msgid "%{name} updated successfully"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:29
#: lib/cannery_web/controllers/user_settings_controller.ex:28
#, elixir-autogen, elixir-format
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:110
#: lib/cannery_web/live/invite_live/index.html.heex:138
#: lib/cannery_web/live/invite_live/index.html.heex:145
#, 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:99
#: lib/cannery_web/live/container_live/index.html.heex:157
#: lib/cannery_web/live/container_live/index.html.heex:113
#: lib/cannery_web/live/container_live/index.html.heex:171
#: lib/cannery_web/live/container_live/show.html.heex:45
#: lib/cannery_web/live/tag_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:185
#: lib/cannery_web/live/pack_live/index.html.heex:174
#: lib/cannery_web/live/pack_live/show.html.heex:69
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -85,12 +85,12 @@ msgstr ""
msgid "Are you sure you want to log out?"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:77
#: lib/cannery_web/controllers/user_settings_controller.ex:76
#, elixir-autogen, elixir-format
msgid "Email changed successfully."
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
#: lib/cannery_web/controllers/user_confirmation_controller.ex:21
#, 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 ""
@ -110,12 +110,12 @@ msgstr ""
msgid "Password reset successfully."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:49
#: lib/cannery_web/controllers/user_settings_controller.ex:48
#, elixir-autogen, elixir-format
msgid "Password updated successfully."
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:65
#: lib/cannery_web/controllers/user_registration_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Please check your email to verify your account"
msgstr ""
@ -123,15 +123,15 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
#: lib/cannery_web/live/container_live/form_component.html.heex:61
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
#: lib/cannery_web/live/pack_live/form_component.html.heex:111
#: lib/cannery_web/live/range_live/form_component.html.heex:47
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
#: lib/cannery_web/live/type_live/form_component.html.heex:383
#: lib/cannery_web/live/type_live/form_component.html.heex:387
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:95
#: lib/cannery_web/controllers/user_settings_controller.ex:94
#, elixir-autogen, elixir-format
msgid "Your account has been deleted"
msgstr ""
@ -151,7 +151,7 @@ msgstr ""
msgid "%{tag_name} has been removed from %{container_name}"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "Adding..."
msgstr ""
@ -161,19 +161,14 @@ msgstr ""
msgid "Shots recorded successfully"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:157
#: lib/cannery_web/live/range_live/index.html.heex:151
#: lib/cannery_web/live/pack_live/show.ex:147
#: lib/cannery_web/live/range_live/index.html.heex:178
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.ex:78
#: lib/cannery_web/live/pack_live/show.ex:69
#: lib/cannery_web/live/range_live/index.ex:99
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
msgstr ""
@ -183,7 +178,7 @@ msgstr ""
msgid "Shot records updated successfully"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:37
#: lib/cannery_web/controllers/user_confirmation_controller.ex:35
#, elixir-autogen, elixir-format
msgid "%{email} confirmed successfully."
msgstr ""
@ -209,7 +204,7 @@ msgstr ""
msgid "You'll need to"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:86
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr ""
@ -219,7 +214,7 @@ msgstr ""
msgid "Are you sure you want to change your language?"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:65
#: lib/cannery_web/controllers/user_settings_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Language updated successfully."
msgstr ""
@ -230,17 +225,12 @@ msgstr ""
msgid "Ammo deleted succesfully"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:91
#, elixir-autogen, elixir-format
msgid "Ammo unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:118
#: lib/cannery_web/live/pack_live/form_component.ex:141
#, elixir-autogen, elixir-format
msgid "Ammo updated successfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:177
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
@ -278,7 +268,7 @@ msgstr ""
msgid "%{invite_name} updated succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:125
#: lib/cannery_web/live/invite_live/index.ex:139
#, elixir-autogen, elixir-format
msgid "%{user_email} deleted succesfully"
msgstr ""
@ -292,3 +282,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Container unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:128
#, elixir-autogen, elixir-format
msgid "Email resent to %{user_email} succesfully"
msgstr ""

View File

@ -39,26 +39,26 @@ msgstr ""
msgid "%{name} updated successfully"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:29
#: lib/cannery_web/controllers/user_settings_controller.ex:28
#, elixir-autogen, elixir-format
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
#: lib/cannery_web/live/invite_live/index.html.heex:110
#: lib/cannery_web/live/invite_live/index.html.heex:138
#: lib/cannery_web/live/invite_live/index.html.heex:145
#, 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:99
#: lib/cannery_web/live/container_live/index.html.heex:157
#: lib/cannery_web/live/container_live/index.html.heex:113
#: lib/cannery_web/live/container_live/index.html.heex:171
#: lib/cannery_web/live/container_live/show.html.heex:45
#: lib/cannery_web/live/tag_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:185
#: lib/cannery_web/live/pack_live/index.html.heex:174
#: lib/cannery_web/live/pack_live/show.html.heex:69
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
@ -74,12 +74,12 @@ msgstr ""
msgid "Are you sure you want to log out?"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:77
#: lib/cannery_web/controllers/user_settings_controller.ex:76
#, elixir-autogen, elixir-format
msgid "Email changed successfully."
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
#: lib/cannery_web/controllers/user_confirmation_controller.ex:21
#, 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 ""
@ -99,12 +99,12 @@ msgstr ""
msgid "Password reset successfully."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:49
#: lib/cannery_web/controllers/user_settings_controller.ex:48
#, elixir-autogen, elixir-format
msgid "Password updated successfully."
msgstr ""
#: lib/cannery_web/controllers/user_registration_controller.ex:65
#: lib/cannery_web/controllers/user_registration_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Please check your email to verify your account"
msgstr ""
@ -112,15 +112,15 @@ msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
#: lib/cannery_web/live/container_live/form_component.html.heex:61
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
#: lib/cannery_web/live/pack_live/form_component.html.heex:111
#: lib/cannery_web/live/range_live/form_component.html.heex:47
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
#: lib/cannery_web/live/type_live/form_component.html.heex:383
#: lib/cannery_web/live/type_live/form_component.html.heex:387
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:95
#: lib/cannery_web/controllers/user_settings_controller.ex:94
#, elixir-autogen, elixir-format
msgid "Your account has been deleted"
msgstr ""
@ -140,7 +140,7 @@ msgstr ""
msgid "%{tag_name} has been removed from %{container_name}"
msgstr ""
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "Adding..."
msgstr ""
@ -150,19 +150,14 @@ msgstr ""
msgid "Shots recorded successfully"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Are you sure you want to unstage this ammo?"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:157
#: lib/cannery_web/live/range_live/index.html.heex:151
#: lib/cannery_web/live/pack_live/show.ex:147
#: lib/cannery_web/live/range_live/index.html.heex:178
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr ""
#: lib/cannery_web/live/pack_live/show.ex:79
#: lib/cannery_web/live/range_live/index.ex:78
#: lib/cannery_web/live/pack_live/show.ex:69
#: lib/cannery_web/live/range_live/index.ex:99
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
msgstr ""
@ -172,7 +167,7 @@ msgstr ""
msgid "Shot records updated successfully"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:37
#: lib/cannery_web/controllers/user_confirmation_controller.ex:35
#, elixir-autogen, elixir-format
msgid "%{email} confirmed successfully."
msgstr ""
@ -198,7 +193,7 @@ msgstr ""
msgid "You'll need to"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:86
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr ""
@ -208,7 +203,7 @@ msgstr ""
msgid "Are you sure you want to change your language?"
msgstr ""
#: lib/cannery_web/controllers/user_settings_controller.ex:65
#: lib/cannery_web/controllers/user_settings_controller.ex:64
#, elixir-autogen, elixir-format
msgid "Language updated successfully."
msgstr ""
@ -219,17 +214,12 @@ msgstr ""
msgid "Ammo deleted succesfully"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:91
#, elixir-autogen, elixir-format
msgid "Ammo unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:118
#: lib/cannery_web/live/pack_live/form_component.ex:141
#, elixir-autogen, elixir-format
msgid "Ammo updated successfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:177
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"
@ -267,7 +257,7 @@ msgstr ""
msgid "%{invite_name} updated succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:125
#: lib/cannery_web/live/invite_live/index.ex:139
#, elixir-autogen, elixir-format
msgid "%{user_email} deleted succesfully"
msgstr ""
@ -281,3 +271,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr ""
#: lib/cannery_web/live/range_live/index.ex:114
#, elixir-autogen, elixir-format
msgid "Container unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/invite_live/index.ex:128
#, elixir-autogen, elixir-format
msgid "Email resent to %{user_email} succesfully"
msgstr ""

View File

@ -0,0 +1,13 @@
defmodule Cannery.Repo.Migrations.MoveStagedToContainers do
use Ecto.Migration
def change do
alter table(:packs) do
remove :staged
end
alter table(:containers) do
add :staged, :boolean, default: false
end
end
end

View File

@ -310,7 +310,7 @@ defmodule Cannery.AccountsTest do
test "deletes all tokens for the given user", %{user: user} do
_session_token = Accounts.generate_user_session_token(user)
{:ok, _} =
{:ok, _user} =
Accounts.update_user_password(user, valid_user_password(), %{
password: "new valid password"
})

View File

@ -860,11 +860,13 @@ defmodule Cannery.AmmoTest do
test "list_packs/2 returns all relevant packs including staged", %{
type: type,
container: container,
pack: unstaged_pack,
current_user: current_user
} do
{1, [staged_pack]} = pack_fixture(%{staged: true}, type, container, current_user)
staged_container =
container_fixture(%{name: "fantastic container", staged: true}, current_user)
{1, [staged_pack]} = pack_fixture(type, staged_container, current_user)
assert Ammo.list_packs(current_user, staged: false) == [unstaged_pack]
assert Ammo.list_packs(current_user, staged: true) == [staged_pack]

View File

@ -50,7 +50,6 @@ defmodule CanneryWeb.ExportControllerTest do
"notes" => pack.notes,
"price_paid" => pack.price_paid,
"lot_number" => pack.lot_number,
"staged" => pack.staged,
"used_count" => ActivityLog.get_used_count(current_user, pack_id: pack.id),
"original_count" => pack |> Ammo.get_original_count(current_user),
"cpr" => pack |> Ammo.get_cpr(current_user),
@ -103,6 +102,7 @@ defmodule CanneryWeb.ExportControllerTest do
"id" => container.id,
"location" => container.location,
"name" => container.name,
"staged" => container.staged,
"tags" => [
%{
"id" => tag.id,

View File

@ -57,8 +57,8 @@ defmodule Cannery.Fixtures do
|> Atom.to_string()
|> Email.generate_email(Accounts.get_user!(user_id), attrs)
[_, html_token | _] = email.html_body |> String.split("[TOKEN]")
[_, text_token | _] = email.text_body |> String.split("[TOKEN]")
[_prefix, html_token | _suffix] = email.html_body |> String.split("[TOKEN]")
[_prefix, text_token | _suffix] = email.text_body |> String.split("[TOKEN]")
^text_token = html_token
end