Compare commits

..

17 Commits
0.9.10 ... dev

Author SHA1 Message Date
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
shibao
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
e1cb46cb97 fix dockerfile
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-07-28 13:35:58 -04:00
56a49ed2e3 fix changesets
Some checks failed
continuous-integration/drone/tag Build is failing
continuous-integration/drone/push Build is failing
2024-07-28 13:17:33 -04:00
f25c151956 add debounces to more fields 2024-07-28 13:05:50 -04:00
c2ddc2ae0d update deps 2024-07-28 12:21:36 -04:00
33e4d26a3d fix emails 2024-07-28 12:21:36 -04:00
179d67a896 update versions 2024-07-28 12:21:35 -04:00
15354d6004 update versions
All checks were successful
continuous-integration/drone/push Build is passing
2024-06-18 09:14:53 -04:00
98 changed files with 4723 additions and 6732 deletions

View File

@ -17,7 +17,7 @@ steps:
- .mix
- name: test
image: elixir:1.16.3-otp-26-alpine
image: elixir:1.17.3-otp-27-alpine
environment:
TEST_DATABASE_URL: ecto://postgres:postgres@database/cannery_test
HOST: testing.example.tld
@ -26,8 +26,8 @@ steps:
MIX_ENV: test
commands:
- apk add --no-cache build-base npm git
- mix local.rebar --force --if-missing
- mix local.hex --force --if-missing
- mix local.rebar --force
- mix local.hex --force
- mix deps.get
- npm set cache .npm
- npm --prefix ./assets ci --no-audit --prefer-offline
@ -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.16.3-otp-26
erlang 26.0
nodejs 22.3.0
elixir 1.17.3-otp-27
erlang 27.1.2
nodejs 23.0.0

View File

@ -1,3 +1,15 @@
# 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
- Add debounces to more fields
- Update deps
# v0.9.10
- Fix issue with logger failing on oban exceptions
- Fix an issue with emails not being able to be sent

View File

@ -1,4 +1,4 @@
FROM elixir:1.16.3-otp-26-alpine AS build
FROM elixir:1.17.3-otp-27-alpine AS build
# install build dependencies
RUN apk add --no-cache build-base npm git python3
@ -7,8 +7,8 @@ RUN apk add --no-cache build-base npm git python3
WORKDIR /app
# install hex + rebar
RUN mix local.hex --force && \
mix local.rebar --force
RUN mix local.rebar --force && \
mix local.hex --force
# set build ENV
ENV MIX_ENV=prod

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 */
@ -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

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

@ -0,0 +1,23 @@
import SlimSelect from 'slim-select'
export default {
initalizeSlimSelect (el) {
// eslint-disable-next-line no-new
el.slimselect = new SlimSelect({ select: el })
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)
}
}

8068
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.0.0",
"npm": "10.9.0"
},
"scripts": {
"deploy": "NODE_ENV=production webpack --mode production",
@ -13,37 +13,39 @@
"test": "standard"
},
"dependencies": {
"@fortawesome/fontawesome-free": "^6.5.2",
"chart.js": "^4.4.3",
"@fortawesome/fontawesome-free": "^6.6.0",
"chart.js": "^4.4.5",
"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.9.2",
"topbar": "^3.0.0"
},
"devDependencies": {
"@babel/core": "^7.24.7",
"@babel/preset-env": "^7.24.7",
"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.38",
"glob": "^11.0.0",
"mini-css-extract-plugin": "^2.9.1",
"npm-check-updates": "^17.1.6",
"postcss": "^8.4.47",
"postcss-import": "^16.1.0",
"postcss-loader": "^8.1.1",
"postcss-preset-env": "^9.5.14",
"sass": "^1.77.5",
"sass-loader": "^14.2.1",
"standard": "^17.1.0",
"tailwindcss": "^3.4.4",
"postcss-preset-env": "^10.0.8",
"sass": "^1.80.4",
"sass-loader": "^16.0.2",
"standard": "^17.1.2",
"tailwindcss": "^3.4.14",
"terser-webpack-plugin": "^5.3.10",
"webpack": "^5.92.0",
"webpack": "^5.95.0",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^5.0.4"
"webpack-dev-server": "^5.1.0"
}
}

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.
@ -32,4 +33,4 @@ config :logger, level: :warning
config :phoenix, :plug_init_mode, :runtime
# Disable Oban
config :cannery, Oban, queues: false, plugins: false
config :cannery, Oban, queues: false, plugins: false, testing: :manual

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

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

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

View File

@ -3,10 +3,8 @@ 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}

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]
@ -959,25 +957,79 @@ 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),
Containers.get_container!(container_id, user),
user,
attrs
)
|> Changeset.add_error(:multiplier, dgettext("errors", "Invalid multiplier"))
{:error, changeset}
%Pack{}
|> Pack.create_changeset(
get_type!(type_id, user),
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
{: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,12 +6,8 @@ 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: [
@ -24,8 +20,6 @@ defmodule Cannery.Ammo.Pack do
:type_id,
:container_id
]}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "packs" do
field :count, :integer
field :notes, :string
@ -70,36 +64,45 @@ 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
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
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])
|> change(user_id: user_id)
|> cast(attrs, [:count, :lot_number, :notes, :price_paid, :purchased_on, :staged])
|> 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)
|> validate_required([:count, :staged, :purchased_on, :type_id, :container_id, :user_id])
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])
|> 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"))
end
@doc false
@spec update_changeset(t() | new_pack(), attrs :: map(), User.t()) :: changeset()
def update_changeset(pack, attrs, user) do

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,11 +3,9 @@ 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]

View File

@ -3,10 +3,8 @@ 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: [
@ -17,8 +15,6 @@ defmodule Cannery.Containers.Container do
:type,
:tags
]}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "containers" do
field :name, :string
field :desc, :string

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}
@ -26,21 +26,21 @@ defmodule Cannery.Email do
end
@spec generate_email(key :: String.t(), User.t(), attrs :: map()) :: t()
def generate_email("welcome", user, %{url: url}) do
def generate_email("welcome", user, %{"url" => url}) do
user
|> base_email(dgettext("emails", "Confirm your Cannery account"))
|> html_email(:confirm_email_html, %{user: user, url: url})
|> text_email(:confirm_email_text, %{user: user, url: url})
end
def generate_email("reset_password", user, %{url: url}) do
def generate_email("reset_password", user, %{"url" => url}) do
user
|> base_email(dgettext("emails", "Reset your Cannery password"))
|> html_email(:reset_password_html, %{user: user, url: url})
|> text_email(:reset_password_text, %{user: user, url: url})
end
def generate_email("update_email", user, %{url: url}) do
def generate_email("update_email", user, %{"url" => url}) do
user
|> base_email(dgettext("emails", "Update your Cannery email"))
|> html_email(:update_email_html, %{user: user, url: url})

View File

@ -7,7 +7,7 @@ defmodule Cannery.EmailWorker do
alias Cannery.{Accounts, Email, Mailer}
@impl Oban.Worker
def perform(%Oban.Job{args: %{email: email, user_id: user_id, attrs: attrs}}) do
def perform(%Oban.Job{args: %{"email" => email, "user_id" => user_id, "attrs" => attrs}}) do
Email.generate_email(email, user_id |> Accounts.get_user!(), attrs) |> Mailer.deliver()
end
end

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

@ -33,7 +33,9 @@ defmodule CanneryWeb.Components.AddShotRecordComponent do
) do
params = shot_record_params |> process_params(pack)
changeset = %ShotRecord{} |> ShotRecord.create_changeset(current_user, pack, params)
changeset =
%ShotRecord{}
|> ShotRecord.create_changeset(current_user, pack, params)
changeset =
case changeset |> Changeset.apply_action(:validate) do

View File

@ -37,11 +37,12 @@
<%= label(f, :notes, gettext("Notes"), class: "title text-lg text-primary-600") %>
<%= textarea(f, :notes,
id: "add-shot-record-form-notes",
class: "input input-primary col-span-2",
id: "add-shot-record-form-notes",
maxlength: 255,
placeholder: gettext("Really great weather"),
phx_update: "ignore"
phx_debounce: 300,
phx_update: "ignore",
placeholder: gettext("Really great weather")
) %>
<%= error_tag(f, :notes, "col-span-3") %>

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}

View File

@ -10,7 +10,7 @@
phx-click="lv:clear-flash"
phx-value-key="info"
>
<%= live_flash(@flash, "info") %>
<%= Phoenix.Flash.get(@flash, :info) %>
</p>
<p
@ -20,7 +20,7 @@
phx-click="lv:clear-flash"
phx-value-key="error"
>
<%= live_flash(@flash, "error") %>
<%= Phoenix.Flash.get(@flash, :error) %>
</p>
</div>
</header>

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

@ -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

@ -19,7 +19,7 @@ defmodule CanneryWeb.ContainerLive.FormComponent do
@impl true
def handle_event("validate", %{"container" => container_params}, socket) do
{:noreply, socket |> assign_changeset(container_params)}
{:noreply, socket |> assign_changeset(container_params, :validate)}
end
def handle_event(
@ -32,14 +32,9 @@ defmodule CanneryWeb.ContainerLive.FormComponent do
defp assign_changeset(
%{assigns: %{action: action, container: container, current_user: user}} = socket,
container_params
container_params,
changeset_action \\ nil
) do
changeset_action =
case action do
create when create in [:new, :clone] -> :insert
:edit -> :update
end
changeset =
case action do
create when create in [:new, :clone] ->
@ -50,9 +45,13 @@ defmodule CanneryWeb.ContainerLive.FormComponent do
end
changeset =
case changeset |> Changeset.apply_action(changeset_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
if changeset_action do
case changeset |> Changeset.apply_action(changeset_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
end
else
changeset
end
socket |> assign(:changeset, changeset)

View File

@ -21,34 +21,38 @@
<%= label(f, :name, gettext("Name"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :name,
class: "input input-primary col-span-2",
placeholder: gettext("My cool ammo can"),
maxlength: 255
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("My cool ammo can")
) %>
<%= error_tag(f, :name, "col-span-3 text-center") %>
<%= label(f, :desc, gettext("Description"), class: "title text-lg text-primary-600") %>
<%= textarea(f, :desc,
id: "container-form-desc",
class: "input input-primary col-span-2",
placeholder: gettext("Metal ammo can with the anime girl sticker"),
phx_update: "ignore"
id: "container-form-desc",
phx_debounce: 300,
phx_update: "ignore",
placeholder: gettext("Metal ammo can with the anime girl sticker")
) %>
<%= error_tag(f, :desc, "col-span-3 text-center") %>
<%= label(f, :type, gettext("Type"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :type,
class: "input input-primary col-span-2",
placeholder: gettext("Magazine, Clip, Ammo Box, etc"),
maxlength: 255
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("Magazine, Clip, Ammo Box, etc")
) %>
<%= error_tag(f, :type, "col-span-3 text-center") %>
<%= label(f, :location, gettext("Location"), class: "title text-lg text-primary-600") %>
<%= textarea(f, :location,
id: "container-form-location",
class: "input input-primary col-span-2",
placeholder: gettext("On the bookshelf"),
phx_update: "ignore"
id: "container-form-location",
phx_debounce: 300,
phx_update: "ignore",
placeholder: gettext("On the bookshelf")
) %>
<%= error_tag(f, :location, "col-span-3 text-center") %>

View File

@ -28,10 +28,10 @@
>
<%= text_input(f, :search_term,
class: "grow input input-primary",
value: @search,
role: "search",
phx_debounce: 300,
placeholder: gettext("Search containers")
placeholder: gettext("Search containers"),
role: "search",
value: @search
) %>
</.form>

View File

@ -19,7 +19,7 @@ defmodule CanneryWeb.InviteLive.FormComponent do
@impl true
def handle_event("validate", %{"invite" => invite_params}, socket) do
{:noreply, socket |> assign_changeset(invite_params)}
{:noreply, socket |> assign_changeset(invite_params, :validate)}
end
def handle_event("save", %{"invite" => invite_params}, %{assigns: %{action: action}} = socket) do
@ -28,14 +28,9 @@ defmodule CanneryWeb.InviteLive.FormComponent do
defp assign_changeset(
%{assigns: %{action: action, current_user: user, invite: invite}} = socket,
invite_params
invite_params,
changeset_action \\ nil
) do
changeset_action =
case action do
:new -> :insert
:edit -> :update
end
changeset =
case action do
:new -> Invite.create_changeset(user, "example_token", invite_params)
@ -43,9 +38,13 @@ defmodule CanneryWeb.InviteLive.FormComponent do
end
changeset =
case changeset |> Changeset.apply_action(changeset_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
if changeset_action do
case changeset |> Changeset.apply_action(changeset_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
end
else
changeset
end
socket |> assign(:changeset, changeset)

View File

@ -22,7 +22,10 @@
class: "title text-lg text-primary-600",
maxlength: 255
) %>
<%= text_input(f, :name, class: "input input-primary col-span-2") %>
<%= text_input(f, :name,
class: "input input-primary col-span-2",
phx_debounce: 300
) %>
<%= error_tag(f, :name, "col-span-3") %>
<%= label(f, :uses_left, gettext("Uses left"), class: "title text-lg text-primary-600") %>

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(
@ -22,29 +26,30 @@ defmodule CanneryWeb.PackLive.FormComponent do
@spec update(Socket.t()) :: {:ok, Socket.t()}
def update(%{assigns: %{current_user: current_user}} = socket) do
%{assigns: %{types: types, containers: containers}} =
socket =
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)
params =
if types |> List.first() |> is_nil(),
do: %{},
else: %{} |> Map.put("type_id", types |> List.first() |> Map.get(:id))
params =
if containers |> List.first() |> is_nil(),
do: params,
else: params |> Map.put("container_id", containers |> List.first() |> Map.get(:id))
{:ok, socket |> assign_changeset(params)}
{:ok, socket |> assign_changeset(%{})}
end
@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(
@ -62,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(
@ -92,9 +104,13 @@ defmodule CanneryWeb.PackLive.FormComponent do
end
changeset =
case changeset |> Changeset.apply_action(changeset_action || default_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
if changeset_action do
case changeset |> Changeset.apply_action(changeset_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
end
else
changeset
end
socket |> assign(:changeset, changeset)
@ -133,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",
@ -189,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, %Changeset{} = changeset} ->
socket |> assign(changeset: changeset)
end
: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") %>
@ -42,7 +59,8 @@
<%= label(f, :lot_number, gettext("Lot number"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :lot_number,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :price_paid, "col-span-3 text-center") %>
@ -56,15 +74,18 @@
<%= label(f, :notes, gettext("Notes"), class: "title text-lg text-primary-600") %>
<%= textarea(f, :notes,
id: "pack-form-notes",
class: "text-center col-span-2 input input-primary",
id: "pack-form-notes",
phx_debounce: 300,
phx_update: "ignore"
) %>
<%= error_tag(f, :notes, "col-span-3 text-center") %>
<%= 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") %>
@ -74,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

@ -75,10 +75,10 @@
>
<%= text_input(f, :search_term,
class: "grow input input-primary",
value: @search,
role: "search",
phx_debounce: 300,
placeholder: gettext("Search ammo")
placeholder: gettext("Search ammo"),
role: "search",
value: @search
) %>
</.form>

View File

@ -71,24 +71,25 @@ defmodule CanneryWeb.RangeLive.FormComponent do
}
} = socket,
shot_record_params,
action \\ nil
changeset_action \\ nil
) do
default_action =
changeset =
case live_action do
:add_shot_record -> :insert
editing when editing in [:edit, :edit_shot_record] -> :update
:add_shot_record ->
shot_record |> ShotRecord.create_changeset(user, pack, shot_record_params)
editing when editing in [:edit, :edit_shot_record] ->
shot_record |> ShotRecord.update_changeset(user, shot_record_params)
end
changeset =
case default_action do
:insert -> shot_record |> ShotRecord.create_changeset(user, pack, shot_record_params)
:update -> shot_record |> ShotRecord.update_changeset(user, shot_record_params)
end
changeset =
case changeset |> Changeset.apply_action(action || default_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
if changeset_action do
case changeset |> Changeset.apply_action(changeset_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
end
else
changeset
end
socket |> assign(:changeset, changeset)

View File

@ -29,11 +29,12 @@
<%= label(f, :notes, gettext("Notes"), class: "title text-lg text-primary-600") %>
<%= textarea(f, :notes,
id: "shot-record-form-notes",
class: "input input-primary col-span-2",
id: "shot-record-form-notes",
maxlength: 255,
placeholder: gettext("Really great weather"),
phx_update: "ignore"
phx_debounce: 300,
phx_update: "ignore",
placeholder: gettext("Really great weather")
) %>
<%= error_tag(f, :notes, "col-span-3") %>

View File

@ -108,10 +108,10 @@
>
<%= text_input(f, :search_term,
class: "grow input input-primary",
value: @search,
role: "search",
phx_debounce: 300,
placeholder: gettext("Search shot records")
placeholder: gettext("Search shot records"),
role: "search",
value: @search
) %>
</.form>
</div>

View File

@ -17,7 +17,7 @@ defmodule CanneryWeb.TagLive.FormComponent do
@impl true
def handle_event("validate", %{"tag" => tag_params}, socket) do
{:noreply, socket |> assign_changeset(tag_params)}
{:noreply, socket |> assign_changeset(tag_params, :validate)}
end
def handle_event("save", %{"tag" => tag_params}, %{assigns: %{action: action}} = socket) do
@ -26,14 +26,9 @@ defmodule CanneryWeb.TagLive.FormComponent do
defp assign_changeset(
%{assigns: %{action: action, current_user: user, tag: tag}} = socket,
tag_params
tag_params,
changeset_action \\ nil
) do
changeset_action =
case action do
:new -> :insert
:edit -> :update
end
changeset =
case action do
:new -> tag |> Tag.create_changeset(user, tag_params)
@ -41,9 +36,13 @@ defmodule CanneryWeb.TagLive.FormComponent do
end
changeset =
case changeset |> Changeset.apply_action(changeset_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
if changeset_action do
case changeset |> Changeset.apply_action(changeset_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
end
else
changeset
end
socket |> assign(:changeset, changeset)

View File

@ -19,7 +19,11 @@
</div>
<%= label(f, :name, gettext("Name"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :name, class: "input input-primary col-span-2", maxlength: 255) %>
<%= text_input(f, :name,
class: "input input-primary col-span-2",
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :name, "col-span-3") %>
<%= label(f, :bg_color, gettext("Background color"), class: "title text-lg text-primary-600") %>

View File

@ -30,10 +30,10 @@
>
<%= text_input(f, :search_term,
class: "grow input input-primary",
value: @search,
role: "search",
phx_debounce: 300,
placeholder: gettext("Search tags")
placeholder: gettext("Search tags"),
role: "search",
value: @search
) %>
</.form>
</div>

View File

@ -19,7 +19,7 @@ defmodule CanneryWeb.TypeLive.FormComponent do
@impl true
def handle_event("validate", %{"type" => type_params}, socket) do
{:noreply, socket |> assign_changeset(type_params)}
{:noreply, socket |> assign_changeset(type_params, :validate)}
end
def handle_event(
@ -32,14 +32,9 @@ defmodule CanneryWeb.TypeLive.FormComponent do
defp assign_changeset(
%{assigns: %{action: action, type: type, current_user: user}} = socket,
type_params
type_params,
changeset_action \\ nil
) do
changeset_action =
case action do
create when create in [:new, :clone] -> :insert
:edit -> :update
end
changeset =
case action do
create when create in [:new, :clone] ->
@ -50,9 +45,13 @@ defmodule CanneryWeb.TypeLive.FormComponent do
end
changeset =
case changeset |> Changeset.apply_action(changeset_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
if changeset_action do
case changeset |> Changeset.apply_action(changeset_action) do
{:ok, _data} -> changeset
{:error, changeset} -> changeset
end
else
changeset
end
socket |> assign(changeset: changeset)

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
) %>
@ -31,14 +35,16 @@
<%= label(f, :name, gettext("Name"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :name,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :name, "col-span-3 text-center") %>
<%= label(f, :desc, gettext("Description"), class: "title text-lg text-primary-600") %>
<%= textarea(f, :desc,
id: "type-form-desc",
class: "text-center col-span-2 input input-primary",
id: "type-form-desc",
phx_debounce: 300,
phx_update: "ignore"
) %>
<%= error_tag(f, :desc, "col-span-3 text-center") %>
@ -52,6 +58,7 @@
<%= text_input(f, :cartridge,
class: "text-center col-span-2 input input-primary",
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("5.56x46mm NATO")
) %>
<%= error_tag(f, :cartridge, "col-span-3 text-center") %>
@ -71,6 +78,7 @@
<%= text_input(f, :caliber,
class: "text-center col-span-2 input input-primary",
maxlength: 255,
phx_debounce: 300,
placeholder: gettext(".223")
) %>
<%= error_tag(f, :caliber, "col-span-3 text-center") %>
@ -81,7 +89,8 @@
) %>
<%= text_input(f, :unfired_length,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :unfired_length, "col-span-3 text-center") %>
@ -90,7 +99,8 @@
) %>
<%= text_input(f, :brass_height,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :brass_height, "col-span-3 text-center") %>
@ -99,7 +109,8 @@
) %>
<%= text_input(f, :chamber_size,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :chamber_size, "col-span-3 text-center") %>
<% else %>
@ -136,6 +147,7 @@
<%= text_input(f, :bullet_type,
class: "text-center col-span-2 input input-primary",
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("FMJ")
) %>
<%= error_tag(f, :bullet_type, "col-span-3 text-center") %>
@ -155,6 +167,7 @@
<%= text_input(f, :bullet_core,
class: "text-center col-span-2 input input-primary",
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("Steel")
) %>
<%= error_tag(f, :bullet_core, "col-span-3 text-center") %>
@ -164,6 +177,7 @@
<%= text_input(f, :jacket_type,
class: "text-center col-span-2 input input-primary",
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("Bimetal")
) %>
<%= error_tag(f, :jacket_type, "col-span-3 text-center") %>
@ -177,6 +191,7 @@
<%= text_input(f, :case_material,
class: "text-center col-span-2 input input-primary",
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("Brass")
) %>
<%= error_tag(f, :case_material, "col-span-3 text-center") %>
@ -185,7 +200,8 @@
<%= label(f, :wadding, gettext("Wadding"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :wadding,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :wadding, "col-span-3 text-center") %>
@ -193,6 +209,7 @@
<%= text_input(f, :shot_type,
class: "text-center col-span-2 input input-primary",
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("Target, bird, buck, etc")
) %>
<%= error_tag(f, :shot_type, "col-span-3 text-center") %>
@ -202,14 +219,16 @@
) %>
<%= text_input(f, :shot_material,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :shot_material, "col-span-3 text-center") %>
<%= label(f, :shot_size, gettext("Shot size"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :shot_size,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :shot_size, "col-span-3 text-center") %>
@ -226,7 +245,8 @@
) %>
<%= text_input(f, :shot_charge_weight,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :shot_charge_weight, "col-span-3 text-center") %>
<% else %>
@ -245,7 +265,8 @@
<%= label(f, :powder_type, gettext("Powder type"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :powder_type,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :powder_type, "col-span-3 text-center") %>
@ -267,6 +288,7 @@
<%= text_input(f, :pressure,
class: "text-center col-span-2 input input-primary",
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("+P")
) %>
<%= error_tag(f, :pressure, "col-span-3 text-center") %>
@ -277,7 +299,8 @@
) %>
<%= text_input(f, :dram_equivalent,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :dram_equivalent, "col-span-3 text-center") %>
<% else %>
@ -306,6 +329,7 @@
<%= text_input(f, :primer_type,
class: "text-center col-span-2 input input-primary",
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("Boxer")
) %>
<%= error_tag(f, :primer_type, "col-span-3 text-center") %>
@ -314,6 +338,7 @@
<%= text_input(f, :firing_type,
class: "text-center col-span-2 input input-primary",
maxlength: 255,
phx_debounce: 300,
placeholder: gettext("Centerfire")
) %>
<%= error_tag(f, :firing_type, "col-span-3 text-center") %>
@ -345,14 +370,16 @@
<%= label(f, :manufacturer, gettext("Manufacturer"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :manufacturer,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :manufacturer, "col-span-3 text-center") %>
<%= label(f, :upc, gettext("UPC"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :upc,
class: "text-center col-span-2 input input-primary",
maxlength: 255
maxlength: 255,
phx_debounce: 300
) %>
<%= error_tag(f, :upc, "col-span-3 text-center") %>

View File

@ -54,10 +54,10 @@
>
<%= text_input(f, :search_term,
class: "grow input input-primary",
value: @search,
role: "search",
phx_debounce: 300,
placeholder: gettext("Search catalog")
placeholder: gettext("Search catalog"),
role: "search",
value: @search
) %>
</.form>

View File

@ -4,8 +4,8 @@ defmodule Cannery.MixProject do
def project do
[
app: :cannery,
version: "0.9.10",
elixir: "1.16.3",
version: "0.9.12",
elixir: "1.17.3",
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.7", "b651241514e5f6956028147fe6637f7ac13802537e895a724f90bf3e36ddd1dd", [:mix], [], "hexpm", "da7785a4b0d2a021cd1292a60875a784b6caef71e76bf4917bdee1f390455cf5"},
"comeonin": {:hex, :comeonin, "5.4.0", "246a56ca3f41d404380fc6465650ddaa532c7f98be4bda1b4656b3a37cc13abe", [:mix], [], "hexpm", "796393a9e50d01999d56b7b8420ab0481a7538d0caf80919da493b4a6e51faf1"},
"castore": {:hex, :castore, "1.0.9", "5cc77474afadf02c7c017823f460a17daa7908e991b0cc917febc90e466a375c", [:mix], [], "hexpm", "5ea956504f1ba6f2b4eb707061d8e17870de2bee95fb59d512872c2ef06925e7"},
"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"},
"db_connection": {:hex, :db_connection, "2.6.0", "77d835c472b5b67fc4f29556dee74bf511bbafecdcaf98c27d27fa5918152086", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c2f992d15725e721ec7fbc1189d4ecdb8afef76648c746a8e1cad35e3b8a35f3"},
"credo": {:hex, :credo, "1.7.8", "9722ba1681e973025908d542ec3d95db5f9c549251ba5b028e251ad8c24ab8c5", [: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", "cb9e87cc64f152f3ed1c6e325e7b894dea8f5ef2e41123bd864e3cd5ceb44968"},
"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.39", "424642f8335b05bb9eb611aa1564c148a8ee35c9c8a8bba6e129d51a3e3c6769", [:mix], [], "hexpm", "06553a88d1f1846da9ef066b87b57c6f605552cfbe40d20bd8d59cc6bde41944"},
"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"},
"dialyxir": {:hex, :dialyxir, "1.4.4", "fb3ce8741edeaea59c9ae84d5cec75da00fa89fe401c72d6e047d11a61f65f70", [:mix], [{:erlex, ">= 0.2.7", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "cd6111e8017ccd563e65621a4d9a4a1c5cd333df30cebc7face8029cacb4eff6"},
"earmark_parser": {:hex, :earmark_parser, "1.4.41", "ab34711c9dc6212dda44fcd20ecb87ac3f3fce6f0ca2f28d4a00e4154f8cd599", [:mix], [], "hexpm", "a81a04c7e34b6617c2792e291b5a2e57ab316365c2644ddc553bb9ed863ebefa"},
"ecto": {:hex, :ecto, "3.12.4", "267c94d9f2969e6acc4dd5e3e3af5b05cdae89a4d549925f3008b2b7eb0b93c3", [: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", "ef04e4101688a67d061e1b10d7bc1fbf00d1d13c17eef08b71d070ff9188f747"},
"ecto_psql_extras": {:hex, :ecto_psql_extras, "0.8.2", "79350a53246ac5ec27326d208496aebceb77fa82a91744f66a9154560f0759d3", [: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", "6149c1c4a5ba6602a76cb09ee7a269eb60dab9694a1dbbb797f032555212de75"},
"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.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"},
"eqrcode": {:hex, :eqrcode, "0.1.10", "6294fece9d68ad64eef1c3c92cf111cfd6469f4fbf230a2d4cc905a682178f3f", [:mix], [], "hexpm", "da30e373c36a0fd37ab6f58664b16029919896d6c45a68a95cc4d713e81076f1"},
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
"ex_doc": {:hex, :ex_doc, "0.34.0", "ab95e0775db3df71d30cf8d78728dd9261c355c81382bcd4cefdc74610bef13e", [: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", "60734fb4c1353f270c3286df4a0d51e65a2c1d9fba66af3940847cc65a8066d7"},
"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"},
"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, "1.1.0", "f7b9ed7fb5745ebe1eeedf3d6f29226c5dd52897ac67c0f8af62a07e661e5c75", [:mix], [], "hexpm", "fbadf93f4700fb44c331362177bdca9eeb8097e8b0ef525c9cc501cb9917c960"},
"file_system": {:hex, :file_system, "1.0.1", "79e8ceaddb0416f8b8cd02a0127bdbababe7bf4a23d2a395b983c1f8b3f73edd", [:mix], [], "hexpm", "4414d1f38863ddf9120720cd976fce5bdde8e91d8283353f0e31850fa89feb9e"},
"floki": {:hex, :floki, "0.36.3", "1102f93b16a55bc5383b85ae3ec470f82dee056eaeff9195e8afdf0ef2a43c30", [:mix], [], "hexpm", "fe0158bff509e407735f6d40b3ee0d7deb47f3f3ee7c6c182ad28599f9f6b27a"},
"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"},
"jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"},
"gettext": {:hex, :gettext, "0.26.1", "38e14ea5dcf962d1fc9f361b63ea07c0ce715a8ef1f9e82d3dfb8e67e0416715", [:mix], [{:expo, "~> 0.5.1 or ~> 1.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "01ce56f188b9dc28780a52783d6529ad2bc7124f9744e571e1ee4ea88bf08734"},
"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_erlang": {:hex, :makeup_erlang, "1.0.0", "6f0eff9c9c489f26b69b61440bf1b238d95badae49adac77973cbacae87e3c2e", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "ea7a9307de9d1548d2a72d299058d1fd2339e3d398560a0e46c27dab4891e4d2"},
"mime": {:hex, :mime, "2.0.5", "dc34c8efd439abe6ae0343edbb8556f4d63f178594894720607772a041b04b02", [:mix], [], "hexpm", "da0d64a365c45bc9935cc5c8a7fc5e49a0e0f9932a761c55d6c52b142780a05c"},
"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.17.10", "c3e5bd739b5c3fdc38eba1d43ab270a8c6ca4463bb779b7705c69400b0d87678", [: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", "4afd027b8e2bc3c399b54318b4f46ee8c40251fb55a285cb4e38b5363f0ee7c4"},
"phoenix": {:hex, :phoenix, "1.7.12", "1cc589e0eab99f593a8aa38ec45f15d25297dd6187ee801c8de8947090b5a9d3", [: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", "d646192fbade9f485b01bc9920c139bfdd19d0f8df3d73fd8eaf2dfbe0d2837c"},
"phoenix_ecto": {:hex, :phoenix_ecto, "4.6.1", "96798325fab2fed5a824ca204e877b81f9afd2e480f581e81f7b4b64a5a477f2", [: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.17", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "0ae544ff99f3c482b0807c5cec2c8289e810ecacabc04959d82c3337f4703391"},
"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.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.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.1.1", "4c064fd3873d12ebb1388425a8f2a19348cef56e7289e1998e2d2fa758aa982e", [:mix], [], "hexpm", "f2f2df5a72bc9a2f510b21497fd7d2b86d932ec0598f0210fed4114adc546c6f"},
"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.3", "7ff51c9b6609470f681fbea20578dede0e548302b0c8bdf338b5a753a4f045bf", [: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", "f9470a0a8bae4f56430a23d42f977b5a6205fdba6559d76f932b876bfaec652d"},
"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_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.14", "70fa101aa0539e81bed4238777498f6215e9dda3461bdaa067cad6908110c364", [: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", "82f6d006c5264f979ed5eb75593d808bbe39020f20df2e78426f4f2d570e2402"},
"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.0", "1d07d50cb9bb05097fdf187b31cf087c7297aafc3fed8299aac79c128a707e47", [: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", "cbf53aa1f5c4d758a7559c0bd6d59e286c2be0c6a1fac8cc3eee2f638243b93e"},
"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": {: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.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.2", "34d6884a332c7bf1e367fc8b9a849d23b43f7da5c6e263def92784d03f9da468", [: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", "618988886ab7ae8561ebed9a3c7469034bf6a88b8995785a3378746a4b9835ec"},
"ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"},
"swoosh": {:hex, :swoosh, "1.16.9", "20c6a32ea49136a4c19f538e27739bb5070558c0fa76b8a95f4d5d5ca7d319a1", [: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.0", [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", "878b1a7a6c10ebbf725a3349363f48f79c5e3d792eb621643b0d276a38acc0a6"},
"swoosh": {:hex, :swoosh, "1.17.2", "73611f08fc7cb9fa15f4909db36eeb12b70727d5c8b6a7fa0d4a31c6575db29e", [: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", "de914359f0ddc134dc0d7735e28922d49d0503f31e4bd66b44e26039c2226d39"},
"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.7", "65fa74042530064ef0570b75b43f5c49bb8b235d6515671b3d250022cb8a1f9e", [: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", "d0f478ee64deddfec64b800673fd6e0c8888b079d9f3444dd96d2a98383bdbd1"},
}

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
@ -115,13 +115,13 @@ msgstr ""
msgid "Reset password"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:56
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:44
#: lib/cannery_web/live/tag_live/form_component.html.heex:37
#: lib/cannery_web/live/type_live/form_component.html.heex:359
#: 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: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:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
@ -136,7 +136,7 @@ msgstr ""
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 ""
@ -178,7 +178,7 @@ msgstr ""
msgid "add a container first"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:83
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
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
@ -128,13 +128,13 @@ msgstr "Bestätigungsmail erneut senden"
msgid "Reset password"
msgstr "Passwort zurücksetzen"
#: lib/cannery_web/components/add_shot_record_component.html.heex:56
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:44
#: lib/cannery_web/live/tag_live/form_component.html.heex:37
#: lib/cannery_web/live/type_live/form_component.html.heex:359
#: 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: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:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr "Speichern"
@ -149,7 +149,7 @@ msgstr "Anleitung zum Passwort zurücksetzen zusenden"
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"
@ -191,7 +191,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:83
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr "Erstellen"

View File

@ -38,55 +38,55 @@ msgstr "Admins:"
msgid "Ammo"
msgstr "Munition"
#: lib/cannery_web/live/tag_live/form_component.html.heex:25
#: lib/cannery_web/live/tag_live/form_component.html.heex:29
#, elixir-autogen, elixir-format
msgid "Background color"
msgstr "Hintergrundfarbe"
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: 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:180
#: 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:151
#: 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:125
#: 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:67
#: 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:51
#: 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:174
#: 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:65
#: 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:337
#: 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"
@ -118,8 +118,8 @@ msgid "Count:"
msgstr "Anzahl:"
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:29
#: lib/cannery_web/live/type_live/form_component.html.heex:38
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: 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:139
#: 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:115
#: 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:329
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr "Brandmunition"
@ -191,7 +191,7 @@ msgstr "Für 60 Tage eingeloggt bleiben"
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "Location"
msgstr "Standort"
@ -202,24 +202,24 @@ msgstr "Standort"
msgid "Location:"
msgstr "Standort:"
#: lib/cannery_web/live/container_live/form_component.html.heex:41
#: lib/cannery_web/live/container_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
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:342
#: lib/cannery_web/live/type_live/form_component.html.heex:345
#: 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"
#: lib/cannery_web/live/container_live/form_component.html.heex:33
#: lib/cannery_web/live/container_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Metal ammo can with the anime girl sticker"
msgstr "Metallene Munitionskiste mit Anime-Girl-Sticker"
#: lib/cannery_web/live/container_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:26
#, elixir-autogen, elixir-format
msgid "My cool ammo can"
msgstr "Meine coole Munitionskiste"
@ -229,7 +229,7 @@ msgstr "Meine coole Munitionskiste"
#: 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,7 +280,7 @@ 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:57
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
@ -293,19 +293,19 @@ msgstr "Bemerkungen"
msgid "Notes:"
msgstr "Bemerkungen:"
#: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#, elixir-autogen, elixir-format
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:266
#: 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:305
#: 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,7 +349,7 @@ msgstr "Einstellungen"
msgid "Simple:"
msgstr "Einfach:"
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr "Stahl"
@ -373,7 +373,7 @@ msgstr "Tags"
msgid "Tags can be added to your containers to help you organize"
msgstr "Tags können zur besseren Ordnung einem Behälter hinzugefügt werden"
#: lib/cannery_web/live/tag_live/form_component.html.heex:31
#: lib/cannery_web/live/tag_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Text color"
msgstr "Textfarbe"
@ -384,7 +384,7 @@ 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:325
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr "Leuchtspur"
@ -392,8 +392,8 @@ msgstr "Leuchtspur"
#: lib/cannery_web/components/container_table_component.ex:48
#: 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:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr "Art"
@ -409,7 +409,7 @@ msgstr "Art:"
msgid "Users"
msgstr "Benutzer"
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr "Verbleibende Nutzung"
@ -437,10 +437,10 @@ msgstr "Schießplatz"
msgid "Range day"
msgstr "Range Day"
#: lib/cannery_web/components/add_shot_record_component.html.heex:48
#: 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/range_live/form_component.html.heex:40
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
msgstr "Datum"
@ -501,36 +501,36 @@ msgstr "Schießkladde"
msgid "$%{amount}"
msgstr "$%{amount}"
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: 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:163
#: 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:288
#: 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:253
#: 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:245
#: 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:352
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr "UPC"
@ -554,7 +554,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:313
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr "Patronenhülsenform"
@ -621,7 +621,7 @@ msgstr "Prozent verbleibend:"
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 +636,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"
@ -653,7 +653,7 @@ msgstr "Passwort zurücksetzen"
msgid "Record Shots"
msgstr "Schüsse dokumentieren"
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr "Kopien"
@ -663,22 +663,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"
@ -755,7 +739,7 @@ msgstr ""
msgid "isn't he cute >:3"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:32
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
@ -995,7 +979,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:49
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1011,36 +995,31 @@ msgstr ""
msgid "Edit ammo"
msgstr "Munitionstyp bearbeiten"
#: lib/cannery_web/live/type_live/index.html.heex:60
#: lib/cannery_web/live/type_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:81
#: lib/cannery_web/live/pack_live/index.html.heex:79
#, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:34
#: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:34
#, elixir-autogen, elixir-format, fuzzy
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:114
#: lib/cannery_web/live/range_live/index.html.heex:112
#, 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,33 +1119,33 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: 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:74
#: 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:55
#: 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:309
#: 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:317
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:43
#: lib/cannery_web/live/range_live/form_component.html.heex:35
#: lib/cannery_web/components/add_shot_record_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
@ -1210,13 +1189,13 @@ msgstr ""
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:322
#: 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:88
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Brass height"
msgstr "Messing"
@ -1227,7 +1206,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1237,13 +1216,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:47
#: 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:275
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1254,7 +1233,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1265,7 +1244,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:216
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1286,34 +1265,36 @@ msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: 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/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:242
#: 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:302
#: 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:112
#: 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/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/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 +1302,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:224
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1332,7 +1313,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:200
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1343,7 +1324,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: 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 +1335,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:192
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1365,9 +1346,10 @@ msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: 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/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 +1357,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:150
#: 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:196
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1391,13 +1373,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:79
#: 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:185
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1409,6 +1391,7 @@ msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: 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/type_live/form_component.html.heex:21
@ -1454,7 +1437,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 +1446,8 @@ 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 ""

View File

@ -66,7 +66,7 @@ msgstr "Sie können ihr Passwort unter folgender URL zurücksetzen:"
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/accounts/email.ex:31
#: lib/cannery/email.ex:31
#, elixir-autogen, elixir-format, fuzzy
msgid "Confirm your Cannery account"
msgstr "Bestätigen Sie ihr %{name} Nutzerkonto"
@ -86,7 +86,7 @@ msgstr ""
"Falls Sie die Änderung von %{name} nicht angefragt haben, ignorieren Sie "
"diese Nachricht bitte."
#: lib/cannery/accounts/email.ex:38
#: lib/cannery/email.ex:38
#, elixir-autogen, elixir-format, fuzzy
msgid "Reset your Cannery password"
msgstr "Passwort für %{name} zurücksetzen"
@ -105,7 +105,7 @@ msgstr ""
"Diese Nachricht wurde von %{name} gesandt, einem selbst-gehosteten "
"Schusswaffenmanager."
#: lib/cannery/accounts/email.ex:45
#: lib/cannery/email.ex:45
#, elixir-autogen, elixir-format, fuzzy
msgid "Update your Cannery email"
msgstr "Aktualisieren Sie %{name} Mailadresse"

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:222
#, 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:159
#: 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:149
#: 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
#, 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:98
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid container"
msgstr ""
#: lib/cannery/ammo/pack.ex:96
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr ""

View File

@ -23,10 +23,10 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:78
#: lib/cannery_web/live/type_live/form_component.ex:88
#: lib/cannery_web/live/container_live/form_component.ex:88
#: lib/cannery_web/live/invite_live/form_component.ex:79
#: lib/cannery_web/live/tag_live/form_component.ex:77
#: lib/cannery_web/live/type_live/form_component.ex:87
#, elixir-autogen, elixir-format
msgid "%{name} created successfully"
msgstr "%{name} erfolgreich erstellt"
@ -44,15 +44,15 @@ msgstr "%{name} erfolgreich gelöscht"
msgid "%{name} has been deleted"
msgstr "%{name} wurde gelöscht"
#: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:60
#: lib/cannery_web/live/type_live/form_component.ex:69
#: lib/cannery_web/live/container_live/form_component.ex:69
#: lib/cannery_web/live/invite_live/form_component.ex:61
#: lib/cannery_web/live/tag_live/form_component.ex:59
#: lib/cannery_web/live/type_live/form_component.ex:68
#, elixir-autogen, elixir-format
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."
@ -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,28 +118,28 @@ 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"
#: lib/cannery_web/components/add_shot_record_component.html.heex:58
#: lib/cannery_web/live/container_live/form_component.html.heex:57
#: lib/cannery_web/live/invite_live/form_component.html.heex:37
#: lib/cannery_web/live/pack_live/form_component.html.heex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:46
#: lib/cannery_web/live/tag_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:360
#: 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: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: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,12 +161,12 @@ 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..."
#: lib/cannery_web/components/add_shot_record_component.ex:60
#: lib/cannery_web/components/add_shot_record_component.ex:62
#, elixir-autogen, elixir-format
msgid "Shots recorded successfully"
msgstr "Schüsse erfolgreich dokumentiert"
@ -193,7 +193,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 +219,7 @@ msgstr "%{name} erfolgreich entfernt"
msgid "You'll need to"
msgstr "Sie müssen"
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr "Erstellen..."
@ -229,7 +229,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."
@ -245,12 +245,12 @@ msgstr "Munitionsgruppe erfolgreich gelöscht"
msgid "Ammo unstaged succesfully"
msgstr "Munition erfolgreich demarkiert"
#: lib/cannery_web/live/pack_live/form_component.ex:125
#: 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:184
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"

View File

@ -34,55 +34,55 @@ msgstr ""
msgid "Ammo"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.html.heex:25
#: lib/cannery_web/live/tag_live/form_component.html.heex:29
#, elixir-autogen, elixir-format
msgid "Background color"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: 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:180
#: 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:151
#: 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:125
#: 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:67
#: 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:51
#: 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:174
#: 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:65
#: 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:337
#: 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 ""
@ -114,8 +114,8 @@ msgid "Count:"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:29
#: lib/cannery_web/live/type_live/form_component.html.heex:38
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: 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:139
#: 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:115
#: 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:329
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@ -187,7 +187,7 @@ msgstr ""
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "Location"
msgstr ""
@ -198,24 +198,24 @@ msgstr ""
msgid "Location:"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:41
#: lib/cannery_web/live/container_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
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:342
#: lib/cannery_web/live/type_live/form_component.html.heex:345
#: 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 ""
#: lib/cannery_web/live/container_live/form_component.html.heex:33
#: lib/cannery_web/live/container_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Metal ammo can with the anime girl sticker"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:26
#, elixir-autogen, elixir-format
msgid "My cool ammo can"
msgstr ""
@ -225,7 +225,7 @@ msgstr ""
#: 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,7 +276,7 @@ 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:57
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
@ -289,19 +289,19 @@ msgstr ""
msgid "Notes:"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:266
#: 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:305
#: 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,7 +343,7 @@ msgstr ""
msgid "Simple:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr ""
@ -367,7 +367,7 @@ msgstr ""
msgid "Tags can be added to your containers to help you organize"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.html.heex:31
#: lib/cannery_web/live/tag_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Text color"
msgstr ""
@ -378,7 +378,7 @@ 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:325
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
@ -386,8 +386,8 @@ msgstr ""
#: lib/cannery_web/components/container_table_component.ex:48
#: 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:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr ""
@ -403,7 +403,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr ""
@ -431,10 +431,10 @@ msgstr ""
msgid "Range day"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:48
#: 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/range_live/form_component.html.heex:40
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
msgstr ""
@ -495,36 +495,36 @@ msgstr ""
msgid "$%{amount}"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: 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:163
#: 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:288
#: 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:253
#: 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:245
#: 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:352
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@ -548,7 +548,7 @@ msgid "New password"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:313
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@ -615,7 +615,7 @@ msgstr ""
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 +630,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 ""
@ -647,7 +647,7 @@ msgstr ""
msgid "Record Shots"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr ""
@ -657,22 +657,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"
@ -749,7 +733,7 @@ msgstr ""
msgid "isn't he cute >:3"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:32
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
@ -989,7 +973,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:49
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1005,36 +989,31 @@ msgstr ""
msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/type_live/index.html.heex:60
#: lib/cannery_web/live/type_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:81
#: lib/cannery_web/live/pack_live/index.html.heex:79
#, elixir-autogen, elixir-format
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:34
#: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:114
#: lib/cannery_web/live/range_live/index.html.heex:112
#, 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,33 +1102,33 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: 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:74
#: 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:55
#: 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:309
#: 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:317
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:43
#: lib/cannery_web/live/range_live/form_component.html.heex:35
#: lib/cannery_web/components/add_shot_record_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
@ -1193,13 +1172,13 @@ msgstr ""
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:322
#: 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:88
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format
msgid "Brass height"
msgstr ""
@ -1210,7 +1189,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1220,13 +1199,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:47
#: 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:275
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1237,7 +1216,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1248,7 +1227,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:216
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1269,34 +1248,36 @@ msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: 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/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:242
#: 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:302
#: 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:112
#: 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/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/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 +1285,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:224
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1315,7 +1296,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:200
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1326,7 +1307,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format
msgid "Shot size"
msgstr ""
@ -1337,7 +1318,7 @@ msgid "Shot size:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:192
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1348,9 +1329,10 @@ msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: 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/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 +1340,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:150
#: 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:196
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1374,13 +1356,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:79
#: 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:185
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1392,6 +1374,7 @@ msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: 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/type_live/form_component.html.heex:21
@ -1437,7 +1420,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 +1429,8 @@ 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 ""

View File

@ -49,7 +49,7 @@ msgstr ""
msgid "You can reset your password by visiting the URL below:"
msgstr ""
#: lib/cannery/accounts/email.ex:31
#: lib/cannery/email.ex:31
#, elixir-autogen, elixir-format
msgid "Confirm your Cannery account"
msgstr ""
@ -65,7 +65,7 @@ msgstr ""
msgid "If you didn't request this change from Cannery, please ignore this."
msgstr ""
#: lib/cannery/accounts/email.ex:38
#: lib/cannery/email.ex:38
#, elixir-autogen, elixir-format
msgid "Reset your Cannery password"
msgstr ""
@ -80,7 +80,7 @@ msgstr ""
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
msgstr ""
#: lib/cannery/accounts/email.ex:45
#: lib/cannery/email.ex:45
#, elixir-autogen, elixir-format
msgid "Update your Cannery email"
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
@ -115,13 +115,13 @@ msgstr ""
msgid "Reset password"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:56
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:44
#: lib/cannery_web/live/tag_live/form_component.html.heex:37
#: lib/cannery_web/live/type_live/form_component.html.heex:359
#: 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: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:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
@ -136,7 +136,7 @@ msgstr ""
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 ""
@ -178,7 +178,7 @@ msgstr ""
msgid "add a container first"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:83
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format, fuzzy
msgid "Create"
msgstr ""

View File

@ -34,55 +34,55 @@ msgstr ""
msgid "Ammo"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.html.heex:25
#: lib/cannery_web/live/tag_live/form_component.html.heex:29
#, elixir-autogen, elixir-format
msgid "Background color"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: 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:180
#: 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:151
#: 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:125
#: 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:67
#: 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:51
#: 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:174
#: 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:65
#: 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:337
#: 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 ""
@ -114,8 +114,8 @@ msgid "Count:"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:29
#: lib/cannery_web/live/type_live/form_component.html.heex:38
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: 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:139
#: 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:115
#: 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:329
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@ -187,7 +187,7 @@ msgstr ""
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "Location"
msgstr ""
@ -198,24 +198,24 @@ msgstr ""
msgid "Location:"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:41
#: lib/cannery_web/live/container_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
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:342
#: lib/cannery_web/live/type_live/form_component.html.heex:345
#: 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 ""
#: lib/cannery_web/live/container_live/form_component.html.heex:33
#: lib/cannery_web/live/container_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Metal ammo can with the anime girl sticker"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:26
#, elixir-autogen, elixir-format
msgid "My cool ammo can"
msgstr ""
@ -225,7 +225,7 @@ msgstr ""
#: 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,7 +276,7 @@ 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:57
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
@ -289,19 +289,19 @@ msgstr ""
msgid "Notes:"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:266
#: 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:305
#: 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,7 +343,7 @@ msgstr ""
msgid "Simple:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr ""
@ -367,7 +367,7 @@ msgstr ""
msgid "Tags can be added to your containers to help you organize"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.html.heex:31
#: lib/cannery_web/live/tag_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Text color"
msgstr ""
@ -378,7 +378,7 @@ 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:325
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
@ -386,8 +386,8 @@ msgstr ""
#: lib/cannery_web/components/container_table_component.ex:48
#: 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:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr ""
@ -403,7 +403,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr ""
@ -431,10 +431,10 @@ msgstr ""
msgid "Range day"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:48
#: 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/range_live/form_component.html.heex:40
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
msgstr ""
@ -495,36 +495,36 @@ msgstr ""
msgid "$%{amount}"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: 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:163
#: 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:288
#: 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:253
#: 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:245
#: 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:352
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@ -548,7 +548,7 @@ msgid "New password"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:313
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@ -615,7 +615,7 @@ msgstr ""
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 +630,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 ""
@ -647,7 +647,7 @@ msgstr ""
msgid "Record Shots"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr ""
@ -657,22 +657,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"
@ -749,7 +733,7 @@ msgstr ""
msgid "isn't he cute >:3"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:32
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
@ -989,7 +973,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:49
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1005,36 +989,31 @@ msgstr ""
msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/type_live/index.html.heex:60
#: lib/cannery_web/live/type_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:81
#: lib/cannery_web/live/pack_live/index.html.heex:79
#, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:34
#: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:34
#, elixir-autogen, elixir-format, fuzzy
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:114
#: lib/cannery_web/live/range_live/index.html.heex:112
#, 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,33 +1102,33 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: 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:74
#: 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:55
#: 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:309
#: 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:317
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:43
#: lib/cannery_web/live/range_live/form_component.html.heex:35
#: lib/cannery_web/components/add_shot_record_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
@ -1193,13 +1172,13 @@ msgstr ""
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:322
#: 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:88
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Brass height"
msgstr ""
@ -1210,7 +1189,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1220,13 +1199,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:47
#: 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:275
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1237,7 +1216,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1248,7 +1227,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:216
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1269,34 +1248,36 @@ msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: 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/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:242
#: 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:302
#: 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:112
#: 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/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/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 +1285,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:224
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1315,7 +1296,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:200
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1326,7 +1307,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format, fuzzy
msgid "Shot size"
msgstr ""
@ -1337,7 +1318,7 @@ msgid "Shot size:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:192
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1348,9 +1329,10 @@ msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: 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/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 +1340,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:150
#: 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:196
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1374,13 +1356,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:79
#: 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:185
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1392,6 +1374,7 @@ msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: 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/type_live/form_component.html.heex:21
@ -1437,7 +1420,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 +1429,8 @@ 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 ""

View File

@ -49,7 +49,7 @@ msgstr ""
msgid "You can reset your password by visiting the URL below:"
msgstr ""
#: lib/cannery/accounts/email.ex:31
#: lib/cannery/email.ex:31
#, elixir-autogen, elixir-format, fuzzy
msgid "Confirm your Cannery account"
msgstr ""
@ -65,7 +65,7 @@ msgstr ""
msgid "If you didn't request this change from Cannery, please ignore this."
msgstr ""
#: lib/cannery/accounts/email.ex:38
#: lib/cannery/email.ex:38
#, elixir-autogen, elixir-format, fuzzy
msgid "Reset your Cannery password"
msgstr ""
@ -80,7 +80,7 @@ msgstr ""
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
msgstr ""
#: lib/cannery/accounts/email.ex:45
#: lib/cannery/email.ex:45
#, elixir-autogen, elixir-format, fuzzy
msgid "Update your Cannery email"
msgstr ""

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Language: en\n"
#: lib/cannery/containers.ex:224
#: lib/cannery/containers.ex:222
#, 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:159
#: 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:149
#: 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
#, 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:98
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid container"
msgstr ""
#: lib/cannery/ammo/pack.ex:96
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr ""

View File

@ -10,10 +10,10 @@ msgid ""
msgstr ""
"Language: en\n"
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:78
#: lib/cannery_web/live/type_live/form_component.ex:88
#: lib/cannery_web/live/container_live/form_component.ex:88
#: lib/cannery_web/live/invite_live/form_component.ex:79
#: lib/cannery_web/live/tag_live/form_component.ex:77
#: lib/cannery_web/live/type_live/form_component.ex:87
#, elixir-autogen, elixir-format
msgid "%{name} created successfully"
msgstr ""
@ -31,15 +31,15 @@ msgstr ""
msgid "%{name} has been deleted"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:60
#: lib/cannery_web/live/type_live/form_component.ex:69
#: lib/cannery_web/live/container_live/form_component.ex:69
#: lib/cannery_web/live/invite_live/form_component.ex:61
#: lib/cannery_web/live/tag_live/form_component.ex:59
#: lib/cannery_web/live/type_live/form_component.ex:68
#, elixir-autogen, elixir-format
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 ""
@ -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,28 +99,28 @@ 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 ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:58
#: lib/cannery_web/live/container_live/form_component.html.heex:57
#: lib/cannery_web/live/invite_live/form_component.html.heex:37
#: lib/cannery_web/live/pack_live/form_component.html.heex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:46
#: lib/cannery_web/live/tag_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:360
#: 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: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: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,12 +140,12 @@ 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 ""
#: lib/cannery_web/components/add_shot_record_component.ex:60
#: lib/cannery_web/components/add_shot_record_component.ex:62
#, elixir-autogen, elixir-format
msgid "Shots recorded successfully"
msgstr ""
@ -172,7 +172,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 +198,7 @@ msgstr ""
msgid "You'll need to"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format, fuzzy
msgid "Creating..."
msgstr ""
@ -208,7 +208,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 ""
@ -224,12 +224,12 @@ msgstr ""
msgid "Ammo unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:125
#: 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:184
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"

View File

@ -10,7 +10,7 @@
msgid ""
msgstr ""
#: lib/cannery/containers.ex:224
#: lib/cannery/containers.ex:222
#, 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:159
#: 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:149
#: 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
#, 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:98
#, elixir-autogen, elixir-format
msgid "Please select a valid container"
msgstr ""
#: lib/cannery/ammo/pack.ex:96
#, 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
@ -128,13 +128,13 @@ msgstr "Reenviar instrucciones de confirmación"
msgid "Reset password"
msgstr "Resetear contraseña"
#: lib/cannery_web/components/add_shot_record_component.html.heex:56
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:44
#: lib/cannery_web/live/tag_live/form_component.html.heex:37
#: lib/cannery_web/live/type_live/form_component.html.heex:359
#: 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: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:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr "Guardar"
@ -149,7 +149,7 @@ msgstr "Enviar instrucciones para reestablecer contraseña"
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"
@ -191,7 +191,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:83
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr "Crear"

View File

@ -38,55 +38,55 @@ msgstr "Aministradores:"
msgid "Ammo"
msgstr "Munición"
#: lib/cannery_web/live/tag_live/form_component.html.heex:25
#: lib/cannery_web/live/tag_live/form_component.html.heex:29
#, elixir-autogen, elixir-format
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:333
#: 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:180
#: 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:151
#: 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:125
#: 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:67
#: 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:51
#: 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:174
#: 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:65
#: 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:337
#: 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"
@ -118,8 +118,8 @@ msgid "Count:"
msgstr "Cantidad:"
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:29
#: lib/cannery_web/live/type_live/form_component.html.heex:38
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: 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:139
#: 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:115
#: 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:329
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr "Incendiaria"
@ -191,7 +191,7 @@ msgstr "Mantener registrado durante 60 días"
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "Location"
msgstr "Localización"
@ -202,24 +202,24 @@ msgstr "Localización"
msgid "Location:"
msgstr "Localización:"
#: lib/cannery_web/live/container_live/form_component.html.heex:41
#: lib/cannery_web/live/container_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
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:342
#: lib/cannery_web/live/type_live/form_component.html.heex:345
#: 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"
#: lib/cannery_web/live/container_live/form_component.html.heex:33
#: lib/cannery_web/live/container_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Metal ammo can with the anime girl sticker"
msgstr "Lata de munición metálica con la pegatina de chica de anime"
#: lib/cannery_web/live/container_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:26
#, elixir-autogen, elixir-format
msgid "My cool ammo can"
msgstr "Mi lata de munición guapa"
@ -229,7 +229,7 @@ msgstr "Mi lata de munición guapa"
#: 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,7 +280,7 @@ 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:57
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
@ -293,19 +293,19 @@ msgstr "Notas"
msgid "Notes:"
msgstr "Notas:"
#: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#, elixir-autogen, elixir-format
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:266
#: 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:305
#: 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,7 +349,7 @@ msgstr "Ajustes"
msgid "Simple:"
msgstr "Simple:"
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr "Acero"
@ -374,7 +374,7 @@ msgid "Tags can be added to your containers to help you organize"
msgstr ""
"Etiquetas pueden ser añadidas a tus contenedores para ayudarte a organizar"
#: lib/cannery_web/live/tag_live/form_component.html.heex:31
#: lib/cannery_web/live/tag_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Text color"
msgstr "Color del texto"
@ -385,7 +385,7 @@ 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:325
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr "Trazadora"
@ -393,8 +393,8 @@ msgstr "Trazadora"
#: lib/cannery_web/components/container_table_component.ex:48
#: 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:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr "Tipo"
@ -410,7 +410,7 @@ msgstr "Tipo:"
msgid "Users"
msgstr "Usuarios"
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr "Usos restantes"
@ -438,10 +438,10 @@ msgstr "Campo de tiro"
msgid "Range day"
msgstr "Día de disparar"
#: lib/cannery_web/components/add_shot_record_component.html.heex:48
#: 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/range_live/form_component.html.heex:40
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
msgstr "Fecha"
@ -502,36 +502,36 @@ msgstr "Registro de tiros"
msgid "$%{amount}"
msgstr "$%{amount}"
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: 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:163
#: 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:288
#: 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:253
#: 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:245
#: 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:352
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@ -555,7 +555,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:313
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr "Tipo de fuego"
@ -622,7 +622,7 @@ msgstr "Pocentaje restante:"
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 +637,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"
@ -654,7 +654,7 @@ msgstr "Reestablecer contraseña"
msgid "Record Shots"
msgstr "Tiros Récord"
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr "Copias"
@ -664,22 +664,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"
@ -756,7 +740,7 @@ msgstr "Logo de cannery"
msgid "isn't he cute >:3"
msgstr "acaso no es mono >:3"
#: lib/cannery_web/live/invite_live/form_component.html.heex:32
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
@ -997,7 +981,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:49
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr "Comprada en"
@ -1013,36 +997,31 @@ msgstr "Comprada en:"
msgid "Edit ammo"
msgstr "Editar munición"
#: lib/cannery_web/live/type_live/index.html.heex:60
#: lib/cannery_web/live/type_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:81
#: lib/cannery_web/live/pack_live/index.html.heex:79
#, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:34
#: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:34
#, elixir-autogen, elixir-format, fuzzy
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:114
#: lib/cannery_web/live/range_live/index.html.heex:112
#, 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,33 +1121,33 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: 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:74
#: 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:55
#: 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:309
#: 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:317
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:43
#: lib/cannery_web/live/range_live/form_component.html.heex:35
#: lib/cannery_web/components/add_shot_record_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
@ -1212,13 +1191,13 @@ msgstr ""
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:322
#: 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:88
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Brass height"
msgstr "Latón"
@ -1229,7 +1208,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1239,13 +1218,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:47
#: 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:275
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1256,7 +1235,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1267,7 +1246,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:216
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1288,34 +1267,36 @@ msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: 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/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:242
#: 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:302
#: 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:112
#: 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/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/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 +1304,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:224
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1334,7 +1315,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:200
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1345,7 +1326,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format, fuzzy
msgid "Shot size"
msgstr "Tiros disparados"
@ -1356,7 +1337,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:192
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1367,9 +1348,10 @@ msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: 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/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 +1359,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:150
#: 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:196
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1393,13 +1375,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:79
#: 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:185
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1411,6 +1393,7 @@ msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: 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/type_live/form_component.html.heex:21
@ -1456,7 +1439,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 +1448,8 @@ 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 ""

View File

@ -67,7 +67,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/accounts/email.ex:31
#: lib/cannery/email.ex:31
#, elixir-autogen, elixir-format, fuzzy
msgid "Confirm your Cannery account"
msgstr "Confirma el %{name} de la cuenta"
@ -85,7 +85,7 @@ msgstr ""
"Si no ha solicitado este cambio desde %{name}, por favor, ignore este "
"mensaje."
#: lib/cannery/accounts/email.ex:38
#: lib/cannery/email.ex:38
#, elixir-autogen, elixir-format, fuzzy
msgid "Reset your Cannery password"
msgstr "Reseteé su contraseña en %{name}"
@ -104,7 +104,7 @@ msgstr ""
"Este correo se mandó por %{name}, la página de seguimiento de armas "
"autogestionada."
#: lib/cannery/accounts/email.ex:45
#: lib/cannery/email.ex:45
#, elixir-autogen, elixir-format, fuzzy
msgid "Update your Cannery email"
msgstr "Actualice su correo en &{url}"

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:222
#, 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:159
#: 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:149
#: 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
#, 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:98
#, 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:96
#, 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

@ -23,10 +23,10 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:78
#: lib/cannery_web/live/type_live/form_component.ex:88
#: lib/cannery_web/live/container_live/form_component.ex:88
#: lib/cannery_web/live/invite_live/form_component.ex:79
#: lib/cannery_web/live/tag_live/form_component.ex:77
#: lib/cannery_web/live/type_live/form_component.ex:87
#, elixir-autogen, elixir-format
msgid "%{name} created successfully"
msgstr "%{name} creado exitosamente"
@ -44,15 +44,15 @@ msgstr "%{name} borrado exitosamente"
msgid "%{name} has been deleted"
msgstr "%{name} ha sido borrado"
#: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:60
#: lib/cannery_web/live/type_live/form_component.ex:69
#: lib/cannery_web/live/container_live/form_component.ex:69
#: lib/cannery_web/live/invite_live/form_component.ex:61
#: lib/cannery_web/live/tag_live/form_component.ex:59
#: lib/cannery_web/live/type_live/form_component.ex:68
#, elixir-autogen, elixir-format
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 ""
@ -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,28 +118,28 @@ 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"
#: lib/cannery_web/components/add_shot_record_component.html.heex:58
#: lib/cannery_web/live/container_live/form_component.html.heex:57
#: lib/cannery_web/live/invite_live/form_component.html.heex:37
#: lib/cannery_web/live/pack_live/form_component.html.heex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:46
#: lib/cannery_web/live/tag_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:360
#: 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: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: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,12 +160,12 @@ 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..."
#: lib/cannery_web/components/add_shot_record_component.ex:60
#: lib/cannery_web/components/add_shot_record_component.ex:62
#, elixir-autogen, elixir-format
msgid "Shots recorded successfully"
msgstr "Tiros registrados exitosamente"
@ -192,7 +192,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 +218,7 @@ msgstr "%{name} eliminado exitosamente"
msgid "You'll need to"
msgstr "Necesitará hacerlo"
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr "Creando..."
@ -228,7 +228,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."
@ -244,12 +244,12 @@ msgstr "Munición borrada exitosamente"
msgid "Ammo unstaged succesfully"
msgstr "Munición descargada exitosamente"
#: lib/cannery_web/live/pack_live/form_component.ex:125
#: 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:184
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"

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
@ -128,13 +128,13 @@ msgstr "Renvoyer les instructions de confirmation"
msgid "Reset password"
msgstr "Réinitialisé le mot de passe"
#: lib/cannery_web/components/add_shot_record_component.html.heex:56
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:44
#: lib/cannery_web/live/tag_live/form_component.html.heex:37
#: lib/cannery_web/live/type_live/form_component.html.heex:359
#: 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: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:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr "Sauvegarder"
@ -149,7 +149,7 @@ msgstr "Envoyer les instructions pour réinitialiser le mot de passe"
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"
@ -191,7 +191,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:83
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr "Créer"

View File

@ -38,55 +38,55 @@ msgstr "Administrateur·ices:"
msgid "Ammo"
msgstr "Munition"
#: lib/cannery_web/live/tag_live/form_component.html.heex:25
#: lib/cannery_web/live/tag_live/form_component.html.heex:29
#, elixir-autogen, elixir-format
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:333
#: 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:180
#: 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:151
#: 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:125
#: 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:67
#: 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:51
#: 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:174
#: 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:65
#: 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:337
#: 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é"
@ -118,8 +118,8 @@ msgid "Count:"
msgstr "Quantité:"
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:29
#: lib/cannery_web/live/type_live/form_component.html.heex:38
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: 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:139
#: 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:115
#: 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:329
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr "Incendiaire"
@ -191,7 +191,7 @@ msgstr "Me garder authentifié durant 60 jours"
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "Location"
msgstr "Localisation"
@ -202,24 +202,24 @@ msgstr "Localisation"
msgid "Location:"
msgstr "Localisation:"
#: lib/cannery_web/live/container_live/form_component.html.heex:41
#: lib/cannery_web/live/container_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
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:342
#: lib/cannery_web/live/type_live/form_component.html.heex:345
#: 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"
#: lib/cannery_web/live/container_live/form_component.html.heex:33
#: lib/cannery_web/live/container_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Metal ammo can with the anime girl sticker"
msgstr "Boite de munition avec le sticker de fille danimation"
#: lib/cannery_web/live/container_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:26
#, elixir-autogen, elixir-format
msgid "My cool ammo can"
msgstr "Ma superbe boite de munition"
@ -229,7 +229,7 @@ msgstr "Ma superbe boite de munition"
#: 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,7 +280,7 @@ 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:57
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
@ -293,19 +293,19 @@ msgstr "Notes"
msgid "Notes:"
msgstr "Notes:"
#: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#, elixir-autogen, elixir-format
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:266
#: 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:305
#: 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,7 +349,7 @@ msgstr "Paramètres"
msgid "Simple:"
msgstr "Simple:"
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr "Acier"
@ -375,7 +375,7 @@ msgstr ""
"Des tags peuvent être ajouté sur vos conteneurs pour vous aider à vous "
"organiser"
#: lib/cannery_web/live/tag_live/form_component.html.heex:31
#: lib/cannery_web/live/tag_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Text color"
msgstr "Couleur du texte"
@ -386,7 +386,7 @@ 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:325
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr "Traceuse"
@ -394,8 +394,8 @@ msgstr "Traceuse"
#: lib/cannery_web/components/container_table_component.ex:48
#: 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:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr "Type"
@ -411,7 +411,7 @@ msgstr "Type:"
msgid "Users"
msgstr "Utilisateurs"
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr "Utilisations restantes"
@ -439,10 +439,10 @@ msgstr "Portée"
msgid "Range day"
msgstr "Journée de stand"
#: lib/cannery_web/components/add_shot_record_component.html.heex:48
#: 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/range_live/form_component.html.heex:40
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
msgstr "Date"
@ -503,36 +503,36 @@ msgstr "Évènements de tir"
msgid "$%{amount}"
msgstr "%{amount}$"
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: 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:163
#: 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:288
#: 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:253
#: 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:245
#: 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:352
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr "UPC"
@ -556,7 +556,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:313
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr "Type dallumage"
@ -623,7 +623,7 @@ msgstr "Pourcentage restant:"
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 +638,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"
@ -655,7 +655,7 @@ msgstr "Réinitialiser votre mot de passe"
msgid "Record Shots"
msgstr "Enregistrer des tirs"
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr "Exemplaires"
@ -665,22 +665,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"
@ -757,7 +741,7 @@ msgstr "Logo de Cannery"
msgid "isn't he cute >:3"
msgstr "N'est-il mignon >:3"
#: lib/cannery_web/live/invite_live/form_component.html.heex:32
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
@ -998,7 +982,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:49
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1014,36 +998,31 @@ msgstr ""
msgid "Edit ammo"
msgstr "Éditer le type de munition"
#: lib/cannery_web/live/type_live/index.html.heex:60
#: lib/cannery_web/live/type_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:81
#: lib/cannery_web/live/pack_live/index.html.heex:79
#, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:34
#: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:34
#, elixir-autogen, elixir-format, fuzzy
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:114
#: lib/cannery_web/live/range_live/index.html.heex:112
#, 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,33 +1122,33 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: 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:74
#: 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:55
#: 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:309
#: 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:317
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:43
#: lib/cannery_web/live/range_live/form_component.html.heex:35
#: lib/cannery_web/components/add_shot_record_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
@ -1213,13 +1192,13 @@ msgstr ""
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:322
#: 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:88
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Brass height"
msgstr "Cuivre"
@ -1230,7 +1209,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1240,13 +1219,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:47
#: 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:275
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1257,7 +1236,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1268,7 +1247,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:216
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1289,34 +1268,36 @@ msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: 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/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:242
#: 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:302
#: 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:112
#: 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/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/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 +1305,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:224
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1335,7 +1316,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:200
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1346,7 +1327,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: 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 +1338,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:192
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1368,9 +1349,10 @@ msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: 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/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 +1360,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:150
#: 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:196
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1394,13 +1376,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:79
#: 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:185
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1412,6 +1394,7 @@ msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: 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/type_live/form_component.html.heex:21
@ -1457,7 +1440,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 +1449,8 @@ 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 ""

View File

@ -65,7 +65,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/accounts/email.ex:31
#: lib/cannery/email.ex:31
#, elixir-autogen, elixir-format, fuzzy
msgid "Confirm your Cannery account"
msgstr "Confirmer votre compte %{name}"
@ -83,7 +83,7 @@ msgstr ""
"Si vous navez pas demandé ce changement depuis %{name}, veuillez ignorer "
"ceci."
#: lib/cannery/accounts/email.ex:38
#: lib/cannery/email.ex:38
#, elixir-autogen, elixir-format, fuzzy
msgid "Reset your Cannery password"
msgstr "Réinitialiser votre mot de passe %{name}"
@ -100,7 +100,7 @@ msgstr ""
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
msgstr "Ce mél a été envoyé depuis %{name}, le site web de suivi darme à feu."
#: lib/cannery/accounts/email.ex:45
#: lib/cannery/email.ex:45
#, elixir-autogen, elixir-format, fuzzy
msgid "Update your Cannery email"
msgstr "Mettre à jour votre mél %{name}"

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:222
#, 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:159
#: 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:149
#: 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
#, 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:98
#, 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:96
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr "Veuillez choisir un utilisateur valide et un groupe de munitions"

View File

@ -23,10 +23,10 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:78
#: lib/cannery_web/live/type_live/form_component.ex:88
#: lib/cannery_web/live/container_live/form_component.ex:88
#: lib/cannery_web/live/invite_live/form_component.ex:79
#: lib/cannery_web/live/tag_live/form_component.ex:77
#: lib/cannery_web/live/type_live/form_component.ex:87
#, elixir-autogen, elixir-format
msgid "%{name} created successfully"
msgstr "%{name} créé· avec succès"
@ -44,15 +44,15 @@ msgstr "%{name} supprimé· avec succès"
msgid "%{name} has been deleted"
msgstr "%{name} a été supprimé·e"
#: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:60
#: lib/cannery_web/live/type_live/form_component.ex:69
#: lib/cannery_web/live/container_live/form_component.ex:69
#: lib/cannery_web/live/invite_live/form_component.ex:61
#: lib/cannery_web/live/tag_live/form_component.ex:59
#: lib/cannery_web/live/type_live/form_component.ex:68
#, elixir-autogen, elixir-format
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 ""
@ -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,28 +119,28 @@ 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"
#: lib/cannery_web/components/add_shot_record_component.html.heex:58
#: lib/cannery_web/live/container_live/form_component.html.heex:57
#: lib/cannery_web/live/invite_live/form_component.html.heex:37
#: lib/cannery_web/live/pack_live/form_component.html.heex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:46
#: lib/cannery_web/live/tag_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:360
#: 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: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: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,12 +162,12 @@ 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…"
#: lib/cannery_web/components/add_shot_record_component.ex:60
#: lib/cannery_web/components/add_shot_record_component.ex:62
#, elixir-autogen, elixir-format
msgid "Shots recorded successfully"
msgstr "Tirs enregistré avec succès"
@ -194,7 +194,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 +220,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:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr "Création en cours…"
@ -230,7 +230,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."
@ -246,12 +246,12 @@ msgstr "Groupe de munition supprimé avec succès"
msgid "Ammo unstaged succesfully"
msgstr "Groupe de munition désélectionner avec succès"
#: lib/cannery_web/live/pack_live/form_component.ex:125
#: 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:184
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format, fuzzy
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"

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
@ -126,13 +126,13 @@ msgstr ""
msgid "Reset password"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:56
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:44
#: lib/cannery_web/live/tag_live/form_component.html.heex:37
#: lib/cannery_web/live/type_live/form_component.html.heex:359
#: 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: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:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
@ -147,7 +147,7 @@ msgstr ""
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 ""
@ -189,7 +189,7 @@ msgstr ""
msgid "add a container first"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:83
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr ""

View File

@ -36,55 +36,55 @@ msgstr ""
msgid "Ammo"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.html.heex:25
#: lib/cannery_web/live/tag_live/form_component.html.heex:29
#, elixir-autogen, elixir-format
msgid "Background color"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: 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:180
#: 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:151
#: 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:125
#: 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:67
#: 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:51
#: 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:174
#: 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:65
#: 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:337
#: 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 ""
@ -116,8 +116,8 @@ msgid "Count:"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:29
#: lib/cannery_web/live/type_live/form_component.html.heex:38
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: 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:139
#: 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:115
#: 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:329
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@ -189,7 +189,7 @@ msgstr ""
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "Location"
msgstr ""
@ -200,24 +200,24 @@ msgstr ""
msgid "Location:"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:41
#: lib/cannery_web/live/container_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
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:342
#: lib/cannery_web/live/type_live/form_component.html.heex:345
#: 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 ""
#: lib/cannery_web/live/container_live/form_component.html.heex:33
#: lib/cannery_web/live/container_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Metal ammo can with the anime girl sticker"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:26
#, elixir-autogen, elixir-format
msgid "My cool ammo can"
msgstr ""
@ -227,7 +227,7 @@ msgstr ""
#: 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,7 +278,7 @@ 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:57
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
@ -291,19 +291,19 @@ msgstr ""
msgid "Notes:"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:266
#: 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:305
#: 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,7 +345,7 @@ msgstr ""
msgid "Simple:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr ""
@ -369,7 +369,7 @@ msgstr ""
msgid "Tags can be added to your containers to help you organize"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.html.heex:31
#: lib/cannery_web/live/tag_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Text color"
msgstr ""
@ -380,7 +380,7 @@ 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:325
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
@ -388,8 +388,8 @@ msgstr ""
#: lib/cannery_web/components/container_table_component.ex:48
#: 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:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr ""
@ -405,7 +405,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr ""
@ -433,10 +433,10 @@ msgstr ""
msgid "Range day"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:48
#: 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/range_live/form_component.html.heex:40
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
msgstr ""
@ -497,36 +497,36 @@ msgstr ""
msgid "$%{amount}"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: 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:163
#: 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:288
#: 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:253
#: 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:245
#: 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:352
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@ -550,7 +550,7 @@ msgid "New password"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:313
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@ -617,7 +617,7 @@ msgstr ""
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 +632,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 ""
@ -649,7 +649,7 @@ msgstr ""
msgid "Record Shots"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr ""
@ -659,22 +659,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"
@ -751,7 +735,7 @@ msgstr ""
msgid "isn't he cute >:3"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:32
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
@ -991,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:49
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1007,36 +991,31 @@ msgstr ""
msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/type_live/index.html.heex:60
#: lib/cannery_web/live/type_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:81
#: lib/cannery_web/live/pack_live/index.html.heex:79
#, elixir-autogen, elixir-format, fuzzy
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:34
#: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:34
#, elixir-autogen, elixir-format, fuzzy
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:114
#: lib/cannery_web/live/range_live/index.html.heex:112
#, 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,33 +1113,33 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: 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:74
#: 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:55
#: 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:309
#: 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:317
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:43
#: lib/cannery_web/live/range_live/form_component.html.heex:35
#: lib/cannery_web/components/add_shot_record_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
@ -1204,13 +1183,13 @@ msgstr ""
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:322
#: 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:88
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Brass height"
msgstr ""
@ -1221,7 +1200,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1231,13 +1210,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:47
#: 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:275
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1248,7 +1227,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1259,7 +1238,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:216
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1280,34 +1259,36 @@ msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: 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/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:242
#: 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:302
#: 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:112
#: 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/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/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 +1296,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:224
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1326,7 +1307,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:200
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1337,7 +1318,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format, fuzzy
msgid "Shot size"
msgstr ""
@ -1348,7 +1329,7 @@ msgid "Shot size:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:192
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1359,9 +1340,10 @@ msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: 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/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 +1351,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:150
#: 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:196
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1385,13 +1367,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:79
#: 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:185
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1403,6 +1385,7 @@ msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: 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/type_live/form_component.html.heex:21
@ -1448,7 +1431,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 +1440,8 @@ 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 ""

View File

@ -69,7 +69,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/accounts/email.ex:31
#: lib/cannery/email.ex:31
#, elixir-autogen, elixir-format
msgid "Confirm your Cannery account"
msgstr "Deimhnigh do chuntas Cannery"
@ -85,7 +85,7 @@ msgstr "Murar chruthaigh tú cuntas ag Cannery, déan neamhaird de seo."
msgid "If you didn't request this change from Cannery, please ignore this."
msgstr "Murar iarr tú an t-athrú seo ó Cannery, déan neamhaird de."
#: lib/cannery/accounts/email.ex:38
#: lib/cannery/email.ex:38
#, elixir-autogen, elixir-format
msgid "Reset your Cannery password"
msgstr "Athshocraigh do phasfhocal Cannery"
@ -104,7 +104,7 @@ msgstr ""
"Tá an ríomhphost seo ó Cannery, an suíomh Gréasáin féin-óstáilte rianaithe "
"airm tine."
#: lib/cannery/accounts/email.ex:45
#: lib/cannery/email.ex:45
#, elixir-autogen, elixir-format
msgid "Update your Cannery email"
msgstr "Nuashonraigh do ríomhphost Cannery"

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:222
#, 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:159
#: 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:149
#: 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
#, 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:98
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid container"
msgstr ""
#: lib/cannery/ammo/pack.ex:96
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr ""

View File

@ -21,10 +21,10 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:78
#: lib/cannery_web/live/type_live/form_component.ex:88
#: lib/cannery_web/live/container_live/form_component.ex:88
#: lib/cannery_web/live/invite_live/form_component.ex:79
#: lib/cannery_web/live/tag_live/form_component.ex:77
#: lib/cannery_web/live/type_live/form_component.ex:87
#, elixir-autogen, elixir-format
msgid "%{name} created successfully"
msgstr ""
@ -42,15 +42,15 @@ msgstr ""
msgid "%{name} has been deleted"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:60
#: lib/cannery_web/live/type_live/form_component.ex:69
#: lib/cannery_web/live/container_live/form_component.ex:69
#: lib/cannery_web/live/invite_live/form_component.ex:61
#: lib/cannery_web/live/tag_live/form_component.ex:59
#: lib/cannery_web/live/type_live/form_component.ex:68
#, elixir-autogen, elixir-format
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 ""
@ -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,28 +110,28 @@ 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 ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:58
#: lib/cannery_web/live/container_live/form_component.html.heex:57
#: lib/cannery_web/live/invite_live/form_component.html.heex:37
#: lib/cannery_web/live/pack_live/form_component.html.heex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:46
#: lib/cannery_web/live/tag_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:360
#: 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: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: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,12 +151,12 @@ 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 ""
#: lib/cannery_web/components/add_shot_record_component.ex:60
#: lib/cannery_web/components/add_shot_record_component.ex:62
#, elixir-autogen, elixir-format
msgid "Shots recorded successfully"
msgstr ""
@ -183,7 +183,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 +209,7 @@ msgstr ""
msgid "You'll need to"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr ""
@ -219,7 +219,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 ""
@ -235,12 +235,12 @@ msgstr ""
msgid "Ammo unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:125
#: 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:184
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"

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
@ -126,13 +126,13 @@ msgstr ""
msgid "Reset password"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:56
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#: lib/cannery_web/live/pack_live/form_component.html.heex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:44
#: lib/cannery_web/live/tag_live/form_component.html.heex:37
#: lib/cannery_web/live/type_live/form_component.html.heex:359
#: 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: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:386
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
@ -147,7 +147,7 @@ msgstr ""
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 ""
@ -189,7 +189,7 @@ msgstr ""
msgid "add a container first"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:83
#: lib/cannery_web/live/pack_live/form_component.html.heex:103
#, elixir-autogen, elixir-format
msgid "Create"
msgstr ""

View File

@ -45,55 +45,55 @@ msgstr ""
msgid "Ammo"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.html.heex:25
#: lib/cannery_web/live/tag_live/form_component.html.heex:29
#, elixir-autogen, elixir-format
msgid "Background color"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:86
#: lib/cannery_web/live/type_live/form_component.html.heex:333
#: 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:180
#: 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:151
#: 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:125
#: 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:67
#: 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:51
#: 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:174
#: 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:65
#: 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:337
#: 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 ""
@ -125,8 +125,8 @@ msgid "Count:"
msgstr ""
#: lib/cannery_web/components/container_table_component.ex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:29
#: lib/cannery_web/live/type_live/form_component.html.heex:38
#: lib/cannery_web/live/container_live/form_component.html.heex:30
#: 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:139
#: 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:115
#: 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:329
#: lib/cannery_web/live/type_live/form_component.html.heex:354
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr ""
@ -198,7 +198,7 @@ msgstr ""
#: lib/cannery_web/components/container_table_component.ex:47
#: lib/cannery_web/components/move_pack_component.ex:66
#: lib/cannery_web/live/container_live/form_component.html.heex:46
#: lib/cannery_web/live/container_live/form_component.html.heex:49
#, elixir-autogen, elixir-format
msgid "Location"
msgstr ""
@ -209,24 +209,24 @@ msgstr ""
msgid "Location:"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:41
#: lib/cannery_web/live/container_live/form_component.html.heex:45
#, elixir-autogen, elixir-format
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:342
#: lib/cannery_web/live/type_live/form_component.html.heex:345
#: 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 ""
#: lib/cannery_web/live/container_live/form_component.html.heex:33
#: lib/cannery_web/live/container_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Metal ammo can with the anime girl sticker"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:26
#, elixir-autogen, elixir-format
msgid "My cool ammo can"
msgstr ""
@ -236,7 +236,7 @@ msgstr ""
#: 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,7 +287,7 @@ 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:57
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:30
#, elixir-autogen, elixir-format
@ -300,19 +300,19 @@ msgstr ""
msgid "Notes:"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/container_live/form_component.html.heex:55
#, elixir-autogen, elixir-format
msgid "On the bookshelf"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:79
#: lib/cannery_web/live/type_live/form_component.html.heex:266
#: 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:305
#: 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,7 +354,7 @@ msgstr ""
msgid "Simple:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:158
#: lib/cannery_web/live/type_live/form_component.html.heex:171
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr ""
@ -378,7 +378,7 @@ msgstr ""
msgid "Tags can be added to your containers to help you organize"
msgstr ""
#: lib/cannery_web/live/tag_live/form_component.html.heex:31
#: lib/cannery_web/live/tag_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Text color"
msgstr ""
@ -389,7 +389,7 @@ 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:325
#: lib/cannery_web/live/type_live/form_component.html.heex:350
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr ""
@ -397,8 +397,8 @@ msgstr ""
#: lib/cannery_web/components/container_table_component.ex:48
#: 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:38
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
#: lib/cannery_web/live/container_live/form_component.html.heex:40
#: lib/cannery_web/live/pack_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Type"
msgstr ""
@ -414,7 +414,7 @@ msgstr ""
msgid "Users"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
#: lib/cannery_web/live/invite_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr ""
@ -442,10 +442,10 @@ msgstr ""
msgid "Range day"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:48
#: 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/range_live/form_component.html.heex:40
#: lib/cannery_web/live/range_live/form_component.html.heex:41
#, elixir-autogen, elixir-format
msgid "Date"
msgstr ""
@ -506,36 +506,36 @@ msgstr ""
msgid "$%{amount}"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:167
#: 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:163
#: 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:288
#: 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:253
#: 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:245
#: 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:352
#: lib/cannery_web/live/type_live/form_component.html.heex:378
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr ""
@ -559,7 +559,7 @@ msgid "New password"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:83
#: lib/cannery_web/live/type_live/form_component.html.heex:313
#: lib/cannery_web/live/type_live/form_component.html.heex:337
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr ""
@ -626,7 +626,7 @@ msgstr ""
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 +641,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 ""
@ -658,7 +658,7 @@ msgstr ""
msgid "Record Shots"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:75
#: lib/cannery_web/live/pack_live/form_component.html.heex:96
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr ""
@ -668,22 +668,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"
@ -760,7 +744,7 @@ msgstr ""
msgid "isn't he cute >:3"
msgstr ""
#: lib/cannery_web/live/invite_live/form_component.html.heex:32
#: lib/cannery_web/live/invite_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr ""
@ -1000,7 +984,7 @@ msgid "Never used"
msgstr ""
#: lib/cannery_web/components/pack_table_component.ex:71
#: lib/cannery_web/live/pack_live/form_component.html.heex:49
#: lib/cannery_web/live/pack_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Purchased on"
msgstr ""
@ -1016,36 +1000,31 @@ msgstr ""
msgid "Edit ammo"
msgstr ""
#: lib/cannery_web/live/type_live/index.html.heex:60
#: lib/cannery_web/live/type_live/index.html.heex:58
#, elixir-autogen, elixir-format
msgid "Search catalog"
msgstr ""
#: lib/cannery_web/live/pack_live/index.html.heex:81
#: lib/cannery_web/live/pack_live/index.html.heex:79
#, elixir-autogen, elixir-format
msgid "Search ammo"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:34
#: lib/cannery_web/live/container_live/index.html.heex:32
#, elixir-autogen, elixir-format
msgid "Search containers"
msgstr ""
#: lib/cannery_web/live/tag_live/index.html.heex:36
#: lib/cannery_web/live/tag_live/index.html.heex:34
#, elixir-autogen, elixir-format
msgid "Search tags"
msgstr ""
#: lib/cannery_web/live/range_live/index.html.heex:114
#: lib/cannery_web/live/range_live/index.html.heex:112
#, 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,33 +1113,33 @@ msgstr ""
msgid "Password"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:270
#: 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:74
#: 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:55
#: 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:309
#: 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:317
#: lib/cannery_web/live/type_live/form_component.html.heex:342
#, elixir-autogen, elixir-format
msgid "Centerfire"
msgstr ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:43
#: lib/cannery_web/live/range_live/form_component.html.heex:35
#: lib/cannery_web/components/add_shot_record_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:37
#, elixir-autogen, elixir-format
msgid "Really great weather"
msgstr ""
@ -1204,13 +1183,13 @@ msgstr ""
msgid "All"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:322
#: 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:88
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#, elixir-autogen, elixir-format
msgid "Brass height"
msgstr ""
@ -1221,7 +1200,7 @@ msgid "Brass height:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:57
#: lib/cannery_web/live/type_live/form_component.html.heex:97
#: lib/cannery_web/live/type_live/form_component.html.heex:107
#, elixir-autogen, elixir-format
msgid "Chamber size"
msgstr ""
@ -1231,13 +1210,13 @@ msgstr ""
msgid "Chamber size:"
msgstr ""
#: lib/cannery_web/live/type_live/form_component.html.heex:47
#: 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:275
#: lib/cannery_web/live/type_live/form_component.html.heex:297
#, elixir-autogen, elixir-format
msgid "Dram equivalent"
msgstr ""
@ -1248,7 +1227,7 @@ msgid "Dram equivalent:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:51
#: lib/cannery_web/live/type_live/form_component.html.heex:66
#: lib/cannery_web/live/type_live/form_component.html.heex:73
#, elixir-autogen, elixir-format
msgid "Gauge"
msgstr ""
@ -1259,7 +1238,7 @@ msgid "Gauge:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:71
#: lib/cannery_web/live/type_live/form_component.html.heex:216
#: lib/cannery_web/live/type_live/form_component.html.heex:235
#, elixir-autogen, elixir-format
msgid "Load grains"
msgstr ""
@ -1280,34 +1259,36 @@ msgid "None specified"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:100
#: 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/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:242
#: 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:302
#: 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:112
#: 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/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/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 +1296,7 @@ msgid "Rifle"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:72
#: lib/cannery_web/live/type_live/form_component.html.heex:224
#: lib/cannery_web/live/type_live/form_component.html.heex:243
#, elixir-autogen, elixir-format
msgid "Shot charge weight"
msgstr ""
@ -1326,7 +1307,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:200
#: lib/cannery_web/live/type_live/form_component.html.heex:217
#, elixir-autogen, elixir-format
msgid "Shot material"
msgstr ""
@ -1337,7 +1318,7 @@ msgid "Shot material:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:70
#: lib/cannery_web/live/type_live/form_component.html.heex:209
#: lib/cannery_web/live/type_live/form_component.html.heex:227
#, elixir-autogen, elixir-format
msgid "Shot size"
msgstr ""
@ -1348,7 +1329,7 @@ msgid "Shot size:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:68
#: lib/cannery_web/live/type_live/form_component.html.heex:192
#: lib/cannery_web/live/type_live/form_component.html.heex:208
#, elixir-autogen, elixir-format
msgid "Shot type"
msgstr ""
@ -1359,9 +1340,10 @@ msgid "Shot type:"
msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:99
#: 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/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 +1351,12 @@ msgid "Shotgun"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:61
#: lib/cannery_web/live/type_live/form_component.html.heex:150
#: 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:196
#: lib/cannery_web/live/type_live/form_component.html.heex:213
#, elixir-autogen, elixir-format
msgid "Target, bird, buck, etc"
msgstr ""
@ -1385,13 +1367,13 @@ msgid "Unfired length:"
msgstr ""
#: lib/cannery_web/components/type_table_component.ex:55
#: lib/cannery_web/live/type_live/form_component.html.heex:79
#: 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:185
#: lib/cannery_web/live/type_live/form_component.html.heex:200
#, elixir-autogen, elixir-format
msgid "Wadding"
msgstr ""
@ -1403,6 +1385,7 @@ msgstr ""
#: lib/cannery_web/components/type_table_component.ex:149
#: lib/cannery_web/live/container_live/show.html.heex:91
#: 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/type_live/form_component.html.heex:21
@ -1448,7 +1431,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 +1440,8 @@ 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 ""

View File

@ -60,7 +60,7 @@ msgstr ""
msgid "You can reset your password by visiting the URL below:"
msgstr ""
#: lib/cannery/accounts/email.ex:31
#: lib/cannery/email.ex:31
#, elixir-autogen, elixir-format
msgid "Confirm your Cannery account"
msgstr ""
@ -76,7 +76,7 @@ msgstr ""
msgid "If you didn't request this change from Cannery, please ignore this."
msgstr ""
#: lib/cannery/accounts/email.ex:38
#: lib/cannery/email.ex:38
#, elixir-autogen, elixir-format
msgid "Reset your Cannery password"
msgstr ""
@ -91,7 +91,7 @@ msgstr ""
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
msgstr ""
#: lib/cannery/accounts/email.ex:45
#: lib/cannery/email.ex:45
#, elixir-autogen, elixir-format
msgid "Update your Cannery email"
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:222
#, 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:159
#: 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:149
#: 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
#, 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:98
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid container"
msgstr ""
#: lib/cannery/ammo/pack.ex:96
#, elixir-autogen, elixir-format, fuzzy
msgid "Please select a valid type"
msgstr ""

View File

@ -21,10 +21,10 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:78
#: lib/cannery_web/live/type_live/form_component.ex:88
#: lib/cannery_web/live/container_live/form_component.ex:88
#: lib/cannery_web/live/invite_live/form_component.ex:79
#: lib/cannery_web/live/tag_live/form_component.ex:77
#: lib/cannery_web/live/type_live/form_component.ex:87
#, elixir-autogen, elixir-format
msgid "%{name} created successfully"
msgstr ""
@ -42,15 +42,15 @@ msgstr ""
msgid "%{name} has been deleted"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:60
#: lib/cannery_web/live/type_live/form_component.ex:69
#: lib/cannery_web/live/container_live/form_component.ex:69
#: lib/cannery_web/live/invite_live/form_component.ex:61
#: lib/cannery_web/live/tag_live/form_component.ex:59
#: lib/cannery_web/live/type_live/form_component.ex:68
#, elixir-autogen, elixir-format
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 ""
@ -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,28 +110,28 @@ 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 ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:58
#: lib/cannery_web/live/container_live/form_component.html.heex:57
#: lib/cannery_web/live/invite_live/form_component.html.heex:37
#: lib/cannery_web/live/pack_live/form_component.html.heex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:46
#: lib/cannery_web/live/tag_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:360
#: 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: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: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,12 +151,12 @@ 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 ""
#: lib/cannery_web/components/add_shot_record_component.ex:60
#: lib/cannery_web/components/add_shot_record_component.ex:62
#, elixir-autogen, elixir-format
msgid "Shots recorded successfully"
msgstr ""
@ -183,7 +183,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 +209,7 @@ msgstr ""
msgid "You'll need to"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr ""
@ -219,7 +219,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 ""
@ -235,12 +235,12 @@ msgstr ""
msgid "Ammo unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:125
#: 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:184
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"

View File

@ -10,10 +10,10 @@
msgid ""
msgstr ""
#: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:78
#: lib/cannery_web/live/type_live/form_component.ex:88
#: lib/cannery_web/live/container_live/form_component.ex:88
#: lib/cannery_web/live/invite_live/form_component.ex:79
#: lib/cannery_web/live/tag_live/form_component.ex:77
#: lib/cannery_web/live/type_live/form_component.ex:87
#, elixir-autogen, elixir-format
msgid "%{name} created successfully"
msgstr ""
@ -31,15 +31,15 @@ msgstr ""
msgid "%{name} has been deleted"
msgstr ""
#: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:60
#: lib/cannery_web/live/type_live/form_component.ex:69
#: lib/cannery_web/live/container_live/form_component.ex:69
#: lib/cannery_web/live/invite_live/form_component.ex:61
#: lib/cannery_web/live/tag_live/form_component.ex:59
#: lib/cannery_web/live/type_live/form_component.ex:68
#, elixir-autogen, elixir-format
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 ""
@ -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,28 +99,28 @@ 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 ""
#: lib/cannery_web/components/add_shot_record_component.html.heex:58
#: lib/cannery_web/live/container_live/form_component.html.heex:57
#: lib/cannery_web/live/invite_live/form_component.html.heex:37
#: lib/cannery_web/live/pack_live/form_component.html.heex:91
#: lib/cannery_web/live/range_live/form_component.html.heex:46
#: lib/cannery_web/live/tag_live/form_component.html.heex:39
#: lib/cannery_web/live/type_live/form_component.html.heex:360
#: 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: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: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,12 +140,12 @@ 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 ""
#: lib/cannery_web/components/add_shot_record_component.ex:60
#: lib/cannery_web/components/add_shot_record_component.ex:62
#, elixir-autogen, elixir-format
msgid "Shots recorded successfully"
msgstr ""
@ -172,7 +172,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 +198,7 @@ msgstr ""
msgid "You'll need to"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.html.heex:84
#: lib/cannery_web/live/pack_live/form_component.html.heex:104
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr ""
@ -208,7 +208,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 ""
@ -224,12 +224,12 @@ msgstr ""
msgid "Ammo unstaged succesfully"
msgstr ""
#: lib/cannery_web/live/pack_live/form_component.ex:125
#: 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:184
#: lib/cannery_web/live/pack_live/form_component.ex:162
#, elixir-autogen, elixir-format
msgid "Ammo added successfully"
msgid_plural "Ammo added successfully"

View File

@ -0,0 +1,40 @@
defmodule Cannery.EmailWorkerTest do
use Cannery.DataCase, async: true
def perform_job(worker, args) do
Oban.Testing.perform_job(worker, args, [])
end
test "sending welcome email" do
user = user_fixture()
{:ok, _user} =
perform_job(Cannery.EmailWorker, %{
"email" => "welcome",
"user_id" => user.id,
"attrs" => %{"url" => "test_url"}
})
end
test "sending reset password email" do
user = user_fixture()
{:ok, _user} =
perform_job(Cannery.EmailWorker, %{
"email" => "reset_password",
"user_id" => user.id,
"attrs" => %{"url" => "test_url"}
})
end
test "sending update email email" do
user = user_fixture()
{:ok, _user} =
perform_job(Cannery.EmailWorker, %{
"email" => "update_email",
"user_id" => user.id,
"attrs" => %{"url" => "test_url"}
})
end
end

View File

@ -48,6 +48,10 @@ defmodule Cannery.Fixtures do
def extract_user_token(fun) do
%{args: %{attrs: attrs, email: email_key, user_id: user_id}} = fun.(&"[TOKEN]#{&1}[TOKEN]")
attrs =
attrs
|> Map.new(fn {key, value} -> {Atom.to_string(key), value} end)
email =
email_key
|> Atom.to_string()