Compare commits
	
		
			64 Commits
		
	
	
		
			0.9.3
			...
			56a49ed2e3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 56a49ed2e3 | |||
| f25c151956 | |||
| c2ddc2ae0d | |||
| 33e4d26a3d | |||
| 179d67a896 | |||
| 15354d6004 | |||
| e358cd6e4e | |||
| 202b70dc66 | |||
| b963baa49d | |||
| 70701a27d3 | |||
| 67dc16d222 | |||
| fa35038426 | |||
| d896257602 | |||
| 4ca51a3f53 | |||
| 96b05e8332 | |||
| 557a2cac3d | |||
| e16e04c114 | |||
| bbe4d82303 | |||
| c69d7843ab | |||
| c18f59050c | |||
| 67d688fc1e | |||
| 
						 | 
					28e5fa56c3 | ||
| 
						 | 
					e301d3dd17 | ||
| 
						 | 
					4881cf6edb | ||
| 
						 | 
					6b61c45889 | ||
| 
						 | 
					4a674a0504 | ||
| 7e6959fb3b | |||
| 22f13b0c57 | |||
| 31024dcc0d | |||
| e843014502 | |||
| 5d146ce6af | |||
| 27cda3733e | |||
| 1965ecba32 | |||
| 69e40c6d18 | |||
| 34b4b24e67 | |||
| 7ebed8d4c0 | |||
| b5619b8606 | |||
| ef28de53a1 | |||
| fcd5dbc605 | |||
| 7738e68292 | |||
| df645a6188 | |||
| bed4fbaf54 | |||
| f94ef0a2ca | |||
| 7cdb8af690 | |||
| 52c4ab45d5 | |||
| a35f43d6df | |||
| 9edeb1e803 | |||
| 7e55446b3e | |||
| 9643e9f46d | |||
| 8466fcd1f9 | |||
| e713a2e108 | |||
| a8fa321040 | |||
| f0536f3030 | |||
| a94d2eebf4 | |||
| cfc56519f5 | |||
| e80c2018be | |||
| 71fdd42d96 | |||
| 8e99a57994 | |||
| 7c42dd8a3a | |||
| 79c97d7502 | |||
| 2e488fa26c | |||
| 2179bd5d86 | |||
| 49628cb9bb | |||
| 8a58d53dc1 | 
@@ -17,7 +17,7 @@ steps:
 | 
			
		||||
      - .mix
 | 
			
		||||
 | 
			
		||||
- name: test
 | 
			
		||||
  image: elixir:1.14.4-alpine
 | 
			
		||||
  image: elixir:1.17.0-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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
elixir 1.14.4-otp-25
 | 
			
		||||
erlang 25.3
 | 
			
		||||
nodejs 18.15.0
 | 
			
		||||
elixir 1.17.0-otp-27
 | 
			
		||||
erlang 27.0
 | 
			
		||||
nodejs 22.3.0
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -1,3 +1,39 @@
 | 
			
		||||
# 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
 | 
			
		||||
- Update deps
 | 
			
		||||
 | 
			
		||||
# v0.9.9
 | 
			
		||||
- Actually fix bar graph
 | 
			
		||||
 | 
			
		||||
# v0.9.8
 | 
			
		||||
- Make bar graph ignore empty days
 | 
			
		||||
- Update dependencies
 | 
			
		||||
 | 
			
		||||
# v0.9.7
 | 
			
		||||
- Fix margin on bottom of page
 | 
			
		||||
- Use bar graph instead of line graph
 | 
			
		||||
- Improve login page autocomplete behavior
 | 
			
		||||
 | 
			
		||||
# v0.9.6
 | 
			
		||||
- Make ammo packs in containers directly navigable in table view
 | 
			
		||||
- Update dependencies
 | 
			
		||||
 | 
			
		||||
# v0.9.5
 | 
			
		||||
- Update dependencies
 | 
			
		||||
 | 
			
		||||
# v0.9.4
 | 
			
		||||
- Code quality fixes
 | 
			
		||||
- Fix error/404 pages not rendering properly
 | 
			
		||||
- Update dependencies
 | 
			
		||||
- Fix Range page title
 | 
			
		||||
 | 
			
		||||
# v0.9.3
 | 
			
		||||
- Update dependencies
 | 
			
		||||
- Add pack lot number to search
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
FROM elixir:1.14.4-alpine AS build
 | 
			
		||||
FROM elixir:1.17.0-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
 | 
			
		||||
@@ -37,7 +37,7 @@ RUN mix do compile, release
 | 
			
		||||
FROM alpine:latest AS app
 | 
			
		||||
 | 
			
		||||
RUN apk upgrade --no-cache && \
 | 
			
		||||
    apk add --no-cache bash openssl libssl1.1 libcrypto1.1 libgcc libstdc++ ncurses-libs
 | 
			
		||||
    apk add --no-cache bash openssl libssl3 libcrypto3 libgcc libstdc++ ncurses-libs
 | 
			
		||||
 | 
			
		||||
WORKDIR /app
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,12 @@
 | 
			
		||||
import { Chart, Title, Tooltip, Legend, LineController, LineElement, PointElement, TimeScale, LinearScale } from 'chart.js'
 | 
			
		||||
import Chart from 'chart.js/auto'
 | 
			
		||||
import 'chartjs-adapter-date-fns'
 | 
			
		||||
Chart.register(Title, Tooltip, Legend, LineController, LineElement, PointElement, TimeScale, LinearScale)
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  initalizeChart (el) {
 | 
			
		||||
    const data = JSON.parse(el.dataset.chartData)
 | 
			
		||||
 | 
			
		||||
    this.el.chart = new Chart(el, {
 | 
			
		||||
      type: 'line',
 | 
			
		||||
      type: 'bar',
 | 
			
		||||
      data: {
 | 
			
		||||
        datasets: [{
 | 
			
		||||
          label: el.dataset.label,
 | 
			
		||||
@@ -51,13 +50,17 @@ export default {
 | 
			
		||||
            stacked: true,
 | 
			
		||||
            grace: '15%',
 | 
			
		||||
            ticks: {
 | 
			
		||||
              padding: 15
 | 
			
		||||
              padding: 15,
 | 
			
		||||
              precision: 0
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          x: {
 | 
			
		||||
            type: 'time',
 | 
			
		||||
            type: 'timeseries',
 | 
			
		||||
            time: {
 | 
			
		||||
              unit: 'day'
 | 
			
		||||
            },
 | 
			
		||||
            ticks: {
 | 
			
		||||
              source: 'data'
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19471
									
								
								assets/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										19471
									
								
								assets/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -3,8 +3,8 @@
 | 
			
		||||
  "description": " ",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "engines": {
 | 
			
		||||
    "node": "v18.15.0",
 | 
			
		||||
    "npm": "9.5.0"
 | 
			
		||||
    "node": "v22.3.0",
 | 
			
		||||
    "npm": "10.8.1"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "deploy": "NODE_ENV=production webpack --mode production",
 | 
			
		||||
@@ -13,37 +13,37 @@
 | 
			
		||||
    "test": "standard"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@fortawesome/fontawesome-free": "^6.4.0",
 | 
			
		||||
    "chart.js": "^4.2.1",
 | 
			
		||||
    "@fortawesome/fontawesome-free": "^6.6.0",
 | 
			
		||||
    "chart.js": "^4.4.3",
 | 
			
		||||
    "chartjs-adapter-date-fns": "^3.0.0",
 | 
			
		||||
    "date-fns": "^2.29.3",
 | 
			
		||||
    "date-fns": "^3.6.0",
 | 
			
		||||
    "phoenix": "file:../deps/phoenix",
 | 
			
		||||
    "phoenix_html": "file:../deps/phoenix_html",
 | 
			
		||||
    "phoenix_live_view": "file:../deps/phoenix_live_view",
 | 
			
		||||
    "topbar": "^2.0.1"
 | 
			
		||||
    "topbar": "^3.0.0"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@babel/core": "^7.21.4",
 | 
			
		||||
    "@babel/preset-env": "^7.21.4",
 | 
			
		||||
    "autoprefixer": "^10.4.14",
 | 
			
		||||
    "babel-loader": "^9.1.2",
 | 
			
		||||
    "copy-webpack-plugin": "^11.0.0",
 | 
			
		||||
    "css-loader": "^6.7.3",
 | 
			
		||||
    "css-minimizer-webpack-plugin": "^5.0.0",
 | 
			
		||||
    "@babel/core": "^7.24.9",
 | 
			
		||||
    "@babel/preset-env": "^7.25.0",
 | 
			
		||||
    "autoprefixer": "^10.4.19",
 | 
			
		||||
    "babel-loader": "^9.1.3",
 | 
			
		||||
    "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.7.5",
 | 
			
		||||
    "npm-check-updates": "^16.10.8",
 | 
			
		||||
    "postcss": "^8.4.21",
 | 
			
		||||
    "postcss-import": "^15.1.0",
 | 
			
		||||
    "postcss-loader": "^7.2.4",
 | 
			
		||||
    "postcss-preset-env": "^8.3.1",
 | 
			
		||||
    "sass": "^1.62.0",
 | 
			
		||||
    "sass-loader": "^13.2.2",
 | 
			
		||||
    "standard": "^17.0.0",
 | 
			
		||||
    "tailwindcss": "^3.3.1",
 | 
			
		||||
    "terser-webpack-plugin": "^5.3.7",
 | 
			
		||||
    "webpack": "^5.79.0",
 | 
			
		||||
    "webpack-cli": "^5.0.1",
 | 
			
		||||
    "webpack-dev-server": "^4.13.2"
 | 
			
		||||
    "mini-css-extract-plugin": "^2.9.0",
 | 
			
		||||
    "npm-check-updates": "^16.14.20",
 | 
			
		||||
    "postcss": "^8.4.40",
 | 
			
		||||
    "postcss-import": "^16.1.0",
 | 
			
		||||
    "postcss-loader": "^8.1.1",
 | 
			
		||||
    "postcss-preset-env": "^9.6.0",
 | 
			
		||||
    "sass": "^1.77.8",
 | 
			
		||||
    "sass-loader": "^16.0.0",
 | 
			
		||||
    "standard": "^17.1.0",
 | 
			
		||||
    "tailwindcss": "^3.4.7",
 | 
			
		||||
    "terser-webpack-plugin": "^5.3.10",
 | 
			
		||||
    "webpack": "^5.93.0",
 | 
			
		||||
    "webpack-cli": "^5.1.4",
 | 
			
		||||
    "webpack-dev-server": "^5.0.4"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,10 @@ config :cannery, CanneryWeb.Endpoint,
 | 
			
		||||
  url: [scheme: "https", host: System.get_env("HOST") || "localhost", port: "443"],
 | 
			
		||||
  http: [port: String.to_integer(System.get_env("PORT") || "4000")],
 | 
			
		||||
  secret_key_base: "KH59P0iZixX5gP/u+zkxxG8vAAj6vgt0YqnwEB5JP5K+E567SsqkCz69uWShjE7I",
 | 
			
		||||
  render_errors: [view: CanneryWeb.ErrorView, accepts: ~w(html json), layout: false],
 | 
			
		||||
  render_errors: [
 | 
			
		||||
    formats: [html: CanneryWeb.ErrorHTML, json: CanneryWeb.ErrorJSON],
 | 
			
		||||
    layout: false
 | 
			
		||||
  ],
 | 
			
		||||
  pubsub_server: Cannery.PubSub,
 | 
			
		||||
  live_view: [signing_salt: "zOLgd3lr"]
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -26,10 +26,10 @@ config :cannery, Cannery.Mailer, adapter: Swoosh.Adapters.Test
 | 
			
		||||
config :cannery, Cannery.Accounts, registration: "public"
 | 
			
		||||
 | 
			
		||||
# Print only warnings and errors during test
 | 
			
		||||
config :logger, level: :warn
 | 
			
		||||
config :logger, level: :warning
 | 
			
		||||
 | 
			
		||||
# Initialize plugs at runtime for faster test compilation
 | 
			
		||||
config :phoenix, :plug_init_mode, :runtime
 | 
			
		||||
 | 
			
		||||
# Disable Oban
 | 
			
		||||
config :cannery, Oban, queues: false, plugins: false
 | 
			
		||||
config :cannery, Oban, queues: false, plugins: false, testing: :manual
 | 
			
		||||
 
 | 
			
		||||
@@ -404,15 +404,15 @@ defmodule Cannery.Accounts do
 | 
			
		||||
 | 
			
		||||
  ## Examples
 | 
			
		||||
 | 
			
		||||
      iex> is_admin?(%User{role: :admin})
 | 
			
		||||
      iex> admin?(%User{role: :admin})
 | 
			
		||||
      true
 | 
			
		||||
 | 
			
		||||
      iex> is_admin?(%User{})
 | 
			
		||||
      iex> admin?(%User{})
 | 
			
		||||
      false
 | 
			
		||||
 | 
			
		||||
  """
 | 
			
		||||
  @spec is_admin?(User.t()) :: boolean()
 | 
			
		||||
  def is_admin?(%User{id: user_id}) do
 | 
			
		||||
  @spec admin?(User.t()) :: boolean()
 | 
			
		||||
  def admin?(%User{id: user_id}) do
 | 
			
		||||
    Repo.exists?(from u in User, where: u.id == ^user_id, where: u.role == :admin)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@@ -421,16 +421,16 @@ defmodule Cannery.Accounts do
 | 
			
		||||
 | 
			
		||||
  ## Examples
 | 
			
		||||
 | 
			
		||||
      iex> is_already_admin?(%User{role: :admin})
 | 
			
		||||
      iex> already_admin?(%User{role: :admin})
 | 
			
		||||
      true
 | 
			
		||||
 | 
			
		||||
      iex> is_already_admin?(%User{})
 | 
			
		||||
      iex> already_admin?(%User{})
 | 
			
		||||
      false
 | 
			
		||||
 | 
			
		||||
  """
 | 
			
		||||
  @spec is_already_admin?(User.t() | nil) :: boolean()
 | 
			
		||||
  def is_already_admin?(%User{role: :admin}), do: true
 | 
			
		||||
  def is_already_admin?(_invalid_user), do: false
 | 
			
		||||
  @spec already_admin?(User.t() | nil) :: boolean()
 | 
			
		||||
  def already_admin?(%User{role: :admin}), do: true
 | 
			
		||||
  def already_admin?(_invalid_user), do: false
 | 
			
		||||
 | 
			
		||||
  ## Confirmation
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,38 +8,49 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
  alias Cannery.{Accounts.User, ActivityLog.ShotRecord, Repo}
 | 
			
		||||
  alias Ecto.{Multi, Queryable}
 | 
			
		||||
 | 
			
		||||
  @type list_shot_records_option ::
 | 
			
		||||
          {:search, String.t() | nil}
 | 
			
		||||
          | {:class, Type.class() | :all | nil}
 | 
			
		||||
          | {:pack_id, Pack.id() | nil}
 | 
			
		||||
  @type list_shot_records_options :: [list_shot_records_option()]
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Returns the list of shot_records.
 | 
			
		||||
 | 
			
		||||
  ## Examples
 | 
			
		||||
 | 
			
		||||
      iex> list_shot_records(:all, %User{id: 123})
 | 
			
		||||
      iex> list_shot_records(%User{id: 123})
 | 
			
		||||
      [%ShotRecord{}, ...]
 | 
			
		||||
 | 
			
		||||
      iex> list_shot_records("cool", :all, %User{id: 123})
 | 
			
		||||
      iex> list_shot_records(%User{id: 123}, search: "cool")
 | 
			
		||||
      [%ShotRecord{notes: "My cool shot record"}, ...]
 | 
			
		||||
 | 
			
		||||
      iex> list_shot_records("cool", :rifle, %User{id: 123})
 | 
			
		||||
      iex> list_shot_records(%User{id: 123}, search: "cool", class: :rifle)
 | 
			
		||||
      [%ShotRecord{notes: "Shot some rifle rounds"}, ...]
 | 
			
		||||
 | 
			
		||||
      iex> list_shot_records(%User{id: 123}, pack_id: 456)
 | 
			
		||||
      [%ShotRecord{pack_id: 456}, ...]
 | 
			
		||||
 | 
			
		||||
  """
 | 
			
		||||
  @spec list_shot_records(Type.class() | :all, User.t()) :: [ShotRecord.t()]
 | 
			
		||||
  @spec list_shot_records(search :: nil | String.t(), Type.class() | :all, User.t()) ::
 | 
			
		||||
          [ShotRecord.t()]
 | 
			
		||||
  def list_shot_records(search \\ nil, type, %{id: user_id}) do
 | 
			
		||||
    from(sg in ShotRecord,
 | 
			
		||||
      as: :sg,
 | 
			
		||||
      left_join: ag in Pack,
 | 
			
		||||
      as: :ag,
 | 
			
		||||
      on: sg.pack_id == ag.id,
 | 
			
		||||
      left_join: at in Type,
 | 
			
		||||
      as: :at,
 | 
			
		||||
      on: ag.type_id == at.id,
 | 
			
		||||
      where: sg.user_id == ^user_id,
 | 
			
		||||
      distinct: sg.id
 | 
			
		||||
  @spec list_shot_records(User.t()) :: [ShotRecord.t()]
 | 
			
		||||
  @spec list_shot_records(User.t(), list_shot_records_options()) :: [ShotRecord.t()]
 | 
			
		||||
  def list_shot_records(%User{id: user_id}, opts \\ []) do
 | 
			
		||||
    from(sr in ShotRecord,
 | 
			
		||||
      as: :sr,
 | 
			
		||||
      left_join: p in Pack,
 | 
			
		||||
      as: :p,
 | 
			
		||||
      on: sr.pack_id == p.id,
 | 
			
		||||
      on: p.user_id == ^user_id,
 | 
			
		||||
      left_join: t in Type,
 | 
			
		||||
      as: :t,
 | 
			
		||||
      on: p.type_id == t.id,
 | 
			
		||||
      on: t.user_id == ^user_id,
 | 
			
		||||
      where: sr.user_id == ^user_id,
 | 
			
		||||
      distinct: sr.id
 | 
			
		||||
    )
 | 
			
		||||
    |> list_shot_records_search(search)
 | 
			
		||||
    |> list_shot_records_filter_type(type)
 | 
			
		||||
    |> list_shot_records_search(Keyword.get(opts, :search))
 | 
			
		||||
    |> list_shot_records_class(Keyword.get(opts, :class))
 | 
			
		||||
    |> list_shot_records_pack_id(Keyword.get(opts, :pack_id))
 | 
			
		||||
    |> Repo.all()
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@@ -52,45 +63,44 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
 | 
			
		||||
    query
 | 
			
		||||
    |> where(
 | 
			
		||||
      [sg: sg, ag: ag, at: at],
 | 
			
		||||
      [sr: sr, p: p, t: t],
 | 
			
		||||
      fragment(
 | 
			
		||||
        "? @@ websearch_to_tsquery('english', ?)",
 | 
			
		||||
        sg.search,
 | 
			
		||||
        sr.search,
 | 
			
		||||
        ^trimmed_search
 | 
			
		||||
      ) or
 | 
			
		||||
        fragment(
 | 
			
		||||
          "? @@ websearch_to_tsquery('english', ?)",
 | 
			
		||||
          ag.search,
 | 
			
		||||
          p.search,
 | 
			
		||||
          ^trimmed_search
 | 
			
		||||
        ) or
 | 
			
		||||
        fragment(
 | 
			
		||||
          "? @@ websearch_to_tsquery('english', ?)",
 | 
			
		||||
          at.search,
 | 
			
		||||
          t.search,
 | 
			
		||||
          ^trimmed_search
 | 
			
		||||
        )
 | 
			
		||||
    )
 | 
			
		||||
    |> order_by([sg: sg], {
 | 
			
		||||
    |> order_by([sr: sr], {
 | 
			
		||||
      :desc,
 | 
			
		||||
      fragment(
 | 
			
		||||
        "ts_rank_cd(?, websearch_to_tsquery('english', ?), 4)",
 | 
			
		||||
        sg.search,
 | 
			
		||||
        sr.search,
 | 
			
		||||
        ^trimmed_search
 | 
			
		||||
      )
 | 
			
		||||
    })
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @spec list_shot_records_filter_type(Queryable.t(), Type.class() | :all) ::
 | 
			
		||||
          Queryable.t()
 | 
			
		||||
  defp list_shot_records_filter_type(query, :rifle),
 | 
			
		||||
    do: query |> where([at: at], at.class == :rifle)
 | 
			
		||||
  @spec list_shot_records_class(Queryable.t(), Type.class() | :all | nil) :: Queryable.t()
 | 
			
		||||
  defp list_shot_records_class(query, class) when class in [:rifle, :pistol, :shotgun],
 | 
			
		||||
    do: query |> where([t: t], t.class == ^class)
 | 
			
		||||
 | 
			
		||||
  defp list_shot_records_filter_type(query, :pistol),
 | 
			
		||||
    do: query |> where([at: at], at.class == :pistol)
 | 
			
		||||
  defp list_shot_records_class(query, _all), do: query
 | 
			
		||||
 | 
			
		||||
  defp list_shot_records_filter_type(query, :shotgun),
 | 
			
		||||
    do: query |> where([at: at], at.class == :shotgun)
 | 
			
		||||
  @spec list_shot_records_pack_id(Queryable.t(), Pack.id() | nil) :: Queryable.t()
 | 
			
		||||
  defp list_shot_records_pack_id(query, pack_id) when pack_id |> is_binary(),
 | 
			
		||||
    do: query |> where([sr: sr], sr.pack_id == ^pack_id)
 | 
			
		||||
 | 
			
		||||
  defp list_shot_records_filter_type(query, _all), do: query
 | 
			
		||||
  defp list_shot_records_pack_id(query, _all), do: query
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Returns a count of shot records.
 | 
			
		||||
@@ -104,25 +114,13 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
  @spec get_shot_record_count!(User.t()) :: integer()
 | 
			
		||||
  def get_shot_record_count!(%User{id: user_id}) do
 | 
			
		||||
    Repo.one(
 | 
			
		||||
      from sg in ShotRecord,
 | 
			
		||||
        where: sg.user_id == ^user_id,
 | 
			
		||||
        select: count(sg.id),
 | 
			
		||||
      from sr in ShotRecord,
 | 
			
		||||
        where: sr.user_id == ^user_id,
 | 
			
		||||
        select: count(sr.id),
 | 
			
		||||
        distinct: true
 | 
			
		||||
    ) || 0
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @spec list_shot_records_for_pack(Pack.t(), User.t()) :: [ShotRecord.t()]
 | 
			
		||||
  def list_shot_records_for_pack(
 | 
			
		||||
        %Pack{id: pack_id, user_id: user_id},
 | 
			
		||||
        %User{id: user_id}
 | 
			
		||||
      ) do
 | 
			
		||||
    Repo.all(
 | 
			
		||||
      from sg in ShotRecord,
 | 
			
		||||
        where: sg.pack_id == ^pack_id,
 | 
			
		||||
        where: sg.user_id == ^user_id
 | 
			
		||||
    )
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Gets a single shot_record.
 | 
			
		||||
 | 
			
		||||
@@ -140,10 +138,10 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
  @spec get_shot_record!(ShotRecord.id(), User.t()) :: ShotRecord.t()
 | 
			
		||||
  def get_shot_record!(id, %User{id: user_id}) do
 | 
			
		||||
    Repo.one!(
 | 
			
		||||
      from sg in ShotRecord,
 | 
			
		||||
        where: sg.id == ^id,
 | 
			
		||||
        where: sg.user_id == ^user_id,
 | 
			
		||||
        order_by: sg.date
 | 
			
		||||
      from sr in ShotRecord,
 | 
			
		||||
        where: sr.id == ^id,
 | 
			
		||||
        where: sr.user_id == ^user_id,
 | 
			
		||||
        order_by: sr.date
 | 
			
		||||
    )
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@@ -172,9 +170,9 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
      fn _repo, %{create_shot_record: %{pack_id: pack_id, user_id: user_id}} ->
 | 
			
		||||
        pack =
 | 
			
		||||
          Repo.one(
 | 
			
		||||
            from ag in Pack,
 | 
			
		||||
              where: ag.id == ^pack_id,
 | 
			
		||||
              where: ag.user_id == ^user_id
 | 
			
		||||
            from p in Pack,
 | 
			
		||||
              where: p.id == ^pack_id,
 | 
			
		||||
              where: p.user_id == ^user_id
 | 
			
		||||
          )
 | 
			
		||||
 | 
			
		||||
        {:ok, pack}
 | 
			
		||||
@@ -221,7 +219,7 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
    |> Multi.run(
 | 
			
		||||
      :pack,
 | 
			
		||||
      fn repo, %{update_shot_record: %{pack_id: pack_id, user_id: user_id}} ->
 | 
			
		||||
        {:ok, repo.one(from ag in Pack, where: ag.id == ^pack_id and ag.user_id == ^user_id)}
 | 
			
		||||
        {:ok, repo.one(from p in Pack, where: p.id == ^pack_id and p.user_id == ^user_id)}
 | 
			
		||||
      end
 | 
			
		||||
    )
 | 
			
		||||
    |> Multi.update(
 | 
			
		||||
@@ -266,7 +264,7 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
    |> Multi.run(
 | 
			
		||||
      :pack,
 | 
			
		||||
      fn repo, %{delete_shot_record: %{pack_id: pack_id, user_id: user_id}} ->
 | 
			
		||||
        {:ok, repo.one(from ag in Pack, where: ag.id == ^pack_id and ag.user_id == ^user_id)}
 | 
			
		||||
        {:ok, repo.one(from p in Pack, where: p.id == ^pack_id and p.user_id == ^user_id)}
 | 
			
		||||
      end
 | 
			
		||||
    )
 | 
			
		||||
    |> Multi.update(
 | 
			
		||||
@@ -287,36 +285,6 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Returns the number of shot rounds for a pack
 | 
			
		||||
  """
 | 
			
		||||
  @spec get_used_count(Pack.t(), User.t()) :: non_neg_integer()
 | 
			
		||||
  def get_used_count(%Pack{id: pack_id} = pack, user) do
 | 
			
		||||
    [pack]
 | 
			
		||||
    |> get_used_counts(user)
 | 
			
		||||
    |> Map.get(pack_id, 0)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Returns the number of shot rounds for multiple packs
 | 
			
		||||
  """
 | 
			
		||||
  @spec get_used_counts([Pack.t()], User.t()) ::
 | 
			
		||||
          %{optional(Pack.id()) => non_neg_integer()}
 | 
			
		||||
  def get_used_counts(packs, %User{id: user_id}) do
 | 
			
		||||
    pack_ids =
 | 
			
		||||
      packs
 | 
			
		||||
      |> Enum.map(fn %{id: pack_id} -> pack_id end)
 | 
			
		||||
 | 
			
		||||
    Repo.all(
 | 
			
		||||
      from sg in ShotRecord,
 | 
			
		||||
        where: sg.pack_id in ^pack_ids,
 | 
			
		||||
        where: sg.user_id == ^user_id,
 | 
			
		||||
        group_by: sg.pack_id,
 | 
			
		||||
        select: {sg.pack_id, sum(sg.count)}
 | 
			
		||||
    )
 | 
			
		||||
    |> Map.new()
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Returns the last entered shot record date for a pack
 | 
			
		||||
  """
 | 
			
		||||
@@ -337,15 +305,18 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
      |> Enum.map(fn %Pack{id: pack_id, user_id: ^user_id} -> pack_id end)
 | 
			
		||||
 | 
			
		||||
    Repo.all(
 | 
			
		||||
      from sg in ShotRecord,
 | 
			
		||||
        where: sg.pack_id in ^pack_ids,
 | 
			
		||||
        where: sg.user_id == ^user_id,
 | 
			
		||||
        group_by: sg.pack_id,
 | 
			
		||||
        select: {sg.pack_id, max(sg.date)}
 | 
			
		||||
      from sr in ShotRecord,
 | 
			
		||||
        where: sr.pack_id in ^pack_ids,
 | 
			
		||||
        where: sr.user_id == ^user_id,
 | 
			
		||||
        group_by: sr.pack_id,
 | 
			
		||||
        select: {sr.pack_id, max(sr.date)}
 | 
			
		||||
    )
 | 
			
		||||
    |> Map.new()
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @type get_used_count_option :: {:pack_id, Pack.id() | nil} | {:type_id, Type.id() | nil}
 | 
			
		||||
  @type get_used_count_options :: [get_used_count_option()]
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Gets the total number of rounds shot for a type
 | 
			
		||||
 | 
			
		||||
@@ -353,45 +324,116 @@ defmodule Cannery.ActivityLog do
 | 
			
		||||
 | 
			
		||||
  ## Examples
 | 
			
		||||
 | 
			
		||||
      iex> get_used_count_for_type(123, %User{id: 123})
 | 
			
		||||
      iex> get_used_count(%User{id: 123}, type_id: 123)
 | 
			
		||||
      35
 | 
			
		||||
 | 
			
		||||
      iex> get_used_count_for_type(456, %User{id: 123})
 | 
			
		||||
      ** (Ecto.NoResultsError)
 | 
			
		||||
      iex> get_used_count(%User{id: 123}, pack_id: 456)
 | 
			
		||||
      50
 | 
			
		||||
 | 
			
		||||
  """
 | 
			
		||||
  @spec get_used_count_for_type(Type.t(), User.t()) :: non_neg_integer()
 | 
			
		||||
  def get_used_count_for_type(%Type{id: type_id} = type, user) do
 | 
			
		||||
    [type]
 | 
			
		||||
    |> get_used_count_for_types(user)
 | 
			
		||||
    |> Map.get(type_id, 0)
 | 
			
		||||
  @spec get_used_count(User.t(), get_used_count_options()) :: non_neg_integer()
 | 
			
		||||
  def get_used_count(%User{id: user_id}, opts) do
 | 
			
		||||
    from(sr in ShotRecord,
 | 
			
		||||
      as: :sr,
 | 
			
		||||
      left_join: p in Pack,
 | 
			
		||||
      on: sr.pack_id == p.id,
 | 
			
		||||
      on: p.user_id == ^user_id,
 | 
			
		||||
      as: :p,
 | 
			
		||||
      where: sr.user_id == ^user_id,
 | 
			
		||||
      where: not (sr.count |> is_nil()),
 | 
			
		||||
      select: sum(sr.count),
 | 
			
		||||
      distinct: true
 | 
			
		||||
    )
 | 
			
		||||
    |> get_used_count_type_id(Keyword.get(opts, :type_id))
 | 
			
		||||
    |> get_used_count_pack_id(Keyword.get(opts, :pack_id))
 | 
			
		||||
    |> Repo.one() || 0
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @spec get_used_count_pack_id(Queryable.t(), Pack.id() | nil) :: Queryable.t()
 | 
			
		||||
  defp get_used_count_pack_id(query, pack_id) when pack_id |> is_binary() do
 | 
			
		||||
    query |> where([sr: sr], sr.pack_id == ^pack_id)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp get_used_count_pack_id(query, _nil), do: query
 | 
			
		||||
 | 
			
		||||
  @spec get_used_count_type_id(Queryable.t(), Type.id() | nil) :: Queryable.t()
 | 
			
		||||
  defp get_used_count_type_id(query, type_id) when type_id |> is_binary() do
 | 
			
		||||
    query |> where([p: p], p.type_id == ^type_id)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp get_used_count_type_id(query, _nil), do: query
 | 
			
		||||
 | 
			
		||||
  @type get_grouped_used_counts_option ::
 | 
			
		||||
          {:packs, [Pack.t()] | nil}
 | 
			
		||||
          | {:types, [Type.t()] | nil}
 | 
			
		||||
          | {:group_by, :type_id | :pack_id}
 | 
			
		||||
  @type get_grouped_used_counts_options :: [get_grouped_used_counts_option()]
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Gets the total number of rounds shot for multiple types
 | 
			
		||||
  Gets the total number of rounds shot for multiple types or packs
 | 
			
		||||
 | 
			
		||||
  ## Examples
 | 
			
		||||
 | 
			
		||||
      iex> get_used_count_for_types(123, %User{id: 123})
 | 
			
		||||
      iex> get_grouped_used_counts(
 | 
			
		||||
      ...>   %User{id: 123},
 | 
			
		||||
      ...>   group_by: :type_id,
 | 
			
		||||
      ...>   types: [%Type{id: 456, user_id: 123}]
 | 
			
		||||
      ...> )
 | 
			
		||||
      35
 | 
			
		||||
 | 
			
		||||
  """
 | 
			
		||||
  @spec get_used_count_for_types([Type.t()], User.t()) ::
 | 
			
		||||
          %{optional(Type.id()) => non_neg_integer()}
 | 
			
		||||
  def get_used_count_for_types(types, %User{id: user_id}) do
 | 
			
		||||
    type_ids =
 | 
			
		||||
      types
 | 
			
		||||
      |> Enum.map(fn %Type{id: type_id, user_id: ^user_id} -> type_id end)
 | 
			
		||||
      iex> get_grouped_used_counts(
 | 
			
		||||
      ...>   %User{id: 123},
 | 
			
		||||
      ...>   group_by: :pack_id,
 | 
			
		||||
      ...>   packs: [%Pack{id: 456, user_id: 123}]
 | 
			
		||||
      ...> )
 | 
			
		||||
      22
 | 
			
		||||
 | 
			
		||||
    Repo.all(
 | 
			
		||||
      from ag in Pack,
 | 
			
		||||
        left_join: sg in ShotRecord,
 | 
			
		||||
        on: ag.id == sg.pack_id,
 | 
			
		||||
        where: ag.type_id in ^type_ids,
 | 
			
		||||
        where: not (sg.count |> is_nil()),
 | 
			
		||||
        group_by: ag.type_id,
 | 
			
		||||
        select: {ag.type_id, sum(sg.count)}
 | 
			
		||||
  """
 | 
			
		||||
  @spec get_grouped_used_counts(User.t(), get_grouped_used_counts_options()) ::
 | 
			
		||||
          %{optional(Type.id() | Pack.id()) => non_neg_integer()}
 | 
			
		||||
  def get_grouped_used_counts(%User{id: user_id}, opts) do
 | 
			
		||||
    from(p in Pack,
 | 
			
		||||
      as: :p,
 | 
			
		||||
      left_join: sr in ShotRecord,
 | 
			
		||||
      on: p.id == sr.pack_id,
 | 
			
		||||
      on: p.user_id == ^user_id,
 | 
			
		||||
      as: :sr,
 | 
			
		||||
      where: sr.user_id == ^user_id,
 | 
			
		||||
      where: not (sr.count |> is_nil())
 | 
			
		||||
    )
 | 
			
		||||
    |> get_grouped_used_counts_group_by(Keyword.fetch!(opts, :group_by))
 | 
			
		||||
    |> get_grouped_used_counts_types(Keyword.get(opts, :types))
 | 
			
		||||
    |> get_grouped_used_counts_packs(Keyword.get(opts, :packs))
 | 
			
		||||
    |> Repo.all()
 | 
			
		||||
    |> Map.new()
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @spec get_grouped_used_counts_group_by(Queryable.t(), :type_id | :pack_id) :: Queryable.t()
 | 
			
		||||
  defp get_grouped_used_counts_group_by(query, :type_id) do
 | 
			
		||||
    query
 | 
			
		||||
    |> group_by([p: p], p.type_id)
 | 
			
		||||
    |> select([sr: sr, p: p], {p.type_id, sum(sr.count)})
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp get_grouped_used_counts_group_by(query, :pack_id) do
 | 
			
		||||
    query
 | 
			
		||||
    |> group_by([sr: sr], sr.pack_id)
 | 
			
		||||
    |> select([sr: sr], {sr.pack_id, sum(sr.count)})
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @spec get_grouped_used_counts_types(Queryable.t(), [Type.t()] | nil) :: Queryable.t()
 | 
			
		||||
  defp get_grouped_used_counts_types(query, types) when types |> is_list() do
 | 
			
		||||
    type_ids = types |> Enum.map(fn %Type{id: type_id} -> type_id end)
 | 
			
		||||
    query |> where([p: p], p.type_id in ^type_ids)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp get_grouped_used_counts_types(query, _nil), do: query
 | 
			
		||||
 | 
			
		||||
  @spec get_grouped_used_counts_packs(Queryable.t(), [Pack.t()] | nil) :: Queryable.t()
 | 
			
		||||
  defp get_grouped_used_counts_packs(query, packs) when packs |> is_list() do
 | 
			
		||||
    pack_ids = packs |> Enum.map(fn %Pack{id: pack_id} -> pack_id end)
 | 
			
		||||
    query |> where([p: p], p.id in ^pack_ids)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp get_grouped_used_counts_packs(query, _nil), do: query
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -7,10 +7,13 @@ defmodule Cannery.Containers do
 | 
			
		||||
  import Ecto.Query, warn: false
 | 
			
		||||
  alias Cannery.{Accounts.User, Ammo.Pack, Repo}
 | 
			
		||||
  alias Cannery.Containers.{Container, ContainerTag, Tag}
 | 
			
		||||
  alias Ecto.Changeset
 | 
			
		||||
  alias Ecto.{Changeset, Queryable}
 | 
			
		||||
 | 
			
		||||
  @container_preloads [:tags]
 | 
			
		||||
 | 
			
		||||
  @type list_containers_option :: {:search, String.t() | nil}
 | 
			
		||||
  @type list_containers_options :: [list_containers_option()]
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Returns the list of containers.
 | 
			
		||||
 | 
			
		||||
@@ -19,30 +22,31 @@ defmodule Cannery.Containers do
 | 
			
		||||
      iex> list_containers(%User{id: 123})
 | 
			
		||||
      [%Container{}, ...]
 | 
			
		||||
 | 
			
		||||
      iex> list_containers("cool", %User{id: 123})
 | 
			
		||||
      iex> list_containers(%User{id: 123}, search: "cool")
 | 
			
		||||
      [%Container{name: "my cool container"}, ...]
 | 
			
		||||
 | 
			
		||||
  """
 | 
			
		||||
  @spec list_containers(User.t()) :: [Container.t()]
 | 
			
		||||
  @spec list_containers(search :: nil | String.t(), User.t()) :: [Container.t()]
 | 
			
		||||
  def list_containers(search \\ nil, %User{id: user_id}) do
 | 
			
		||||
  @spec list_containers(User.t(), list_containers_options()) :: [Container.t()]
 | 
			
		||||
  def list_containers(%User{id: user_id}, opts \\ []) do
 | 
			
		||||
    from(c in Container,
 | 
			
		||||
      as: :c,
 | 
			
		||||
      left_join: t in assoc(c, :tags),
 | 
			
		||||
      on: c.user_id == t.user_id,
 | 
			
		||||
      as: :t,
 | 
			
		||||
      where: c.user_id == ^user_id,
 | 
			
		||||
      order_by: c.name,
 | 
			
		||||
      distinct: c.id,
 | 
			
		||||
      preload: ^@container_preloads
 | 
			
		||||
    )
 | 
			
		||||
    |> list_containers_search(search)
 | 
			
		||||
    |> list_containers_search(Keyword.get(opts, :search))
 | 
			
		||||
    |> Repo.all()
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp list_containers_search(query, nil), do: query
 | 
			
		||||
  defp list_containers_search(query, ""), do: query
 | 
			
		||||
  @spec list_containers_search(Queryable.t(), search :: String.t() | nil) :: Queryable.t()
 | 
			
		||||
  defp list_containers_search(query, search) when search in ["", nil],
 | 
			
		||||
    do: query |> order_by([c: c], c.name)
 | 
			
		||||
 | 
			
		||||
  defp list_containers_search(query, search) do
 | 
			
		||||
  defp list_containers_search(query, search) when search |> is_binary() do
 | 
			
		||||
    trimmed_search = String.trim(search)
 | 
			
		||||
 | 
			
		||||
    query
 | 
			
		||||
@@ -203,9 +207,9 @@ defmodule Cannery.Containers do
 | 
			
		||||
          {:ok, Container.t()} | {:error, Container.changeset()}
 | 
			
		||||
  def delete_container(%Container{user_id: user_id} = container, %User{id: user_id}) do
 | 
			
		||||
    Repo.one(
 | 
			
		||||
      from ag in Pack,
 | 
			
		||||
        where: ag.container_id == ^container.id,
 | 
			
		||||
        select: count(ag.id)
 | 
			
		||||
      from p in Pack,
 | 
			
		||||
        where: p.container_id == ^container.id,
 | 
			
		||||
        select: count(p.id)
 | 
			
		||||
    )
 | 
			
		||||
    |> case do
 | 
			
		||||
      0 ->
 | 
			
		||||
@@ -289,6 +293,9 @@ defmodule Cannery.Containers do
 | 
			
		||||
 | 
			
		||||
  # Container Tags
 | 
			
		||||
 | 
			
		||||
  @type list_tags_option :: {:search, String.t() | nil}
 | 
			
		||||
  @type list_tags_options :: [list_tags_option()]
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
  Returns the list of tags.
 | 
			
		||||
 | 
			
		||||
@@ -297,38 +304,42 @@ defmodule Cannery.Containers do
 | 
			
		||||
      iex> list_tags(%User{id: 123})
 | 
			
		||||
      [%Tag{}, ...]
 | 
			
		||||
 | 
			
		||||
      iex> list_tags("cool", %User{id: 123})
 | 
			
		||||
      iex> list_tags(%User{id: 123}, search: "cool")
 | 
			
		||||
      [%Tag{name: "my cool tag"}, ...]
 | 
			
		||||
 | 
			
		||||
  """
 | 
			
		||||
  @spec list_tags(User.t()) :: [Tag.t()]
 | 
			
		||||
  @spec list_tags(search :: nil | String.t(), User.t()) :: [Tag.t()]
 | 
			
		||||
  def list_tags(search \\ nil, user)
 | 
			
		||||
  @spec list_tags(User.t(), list_tags_options()) :: [Tag.t()]
 | 
			
		||||
  def list_tags(%User{id: user_id}, opts \\ []) do
 | 
			
		||||
    from(t in Tag, as: :t, where: t.user_id == ^user_id)
 | 
			
		||||
    |> list_tags_search(Keyword.get(opts, :search))
 | 
			
		||||
    |> Repo.all()
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def list_tags(search, %{id: user_id}) when search |> is_nil() or search == "",
 | 
			
		||||
    do: Repo.all(from t in Tag, where: t.user_id == ^user_id, order_by: t.name)
 | 
			
		||||
  @spec list_tags_search(Queryable.t(), search :: String.t() | nil) :: Queryable.t()
 | 
			
		||||
  defp list_tags_search(query, search) when search in ["", nil],
 | 
			
		||||
    do: query |> order_by([t: t], t.name)
 | 
			
		||||
 | 
			
		||||
  def list_tags(search, %{id: user_id}) when search |> is_binary() do
 | 
			
		||||
  defp list_tags_search(query, search) when search |> is_binary() do
 | 
			
		||||
    trimmed_search = String.trim(search)
 | 
			
		||||
 | 
			
		||||
    Repo.all(
 | 
			
		||||
      from t in Tag,
 | 
			
		||||
        where: t.user_id == ^user_id,
 | 
			
		||||
        where:
 | 
			
		||||
    query
 | 
			
		||||
    |> where(
 | 
			
		||||
      [t: t],
 | 
			
		||||
      fragment(
 | 
			
		||||
        "? @@ websearch_to_tsquery('english', ?)",
 | 
			
		||||
        t.search,
 | 
			
		||||
        ^trimmed_search
 | 
			
		||||
          ),
 | 
			
		||||
        order_by: {
 | 
			
		||||
      )
 | 
			
		||||
    )
 | 
			
		||||
    |> order_by([t: t], {
 | 
			
		||||
      :desc,
 | 
			
		||||
      fragment(
 | 
			
		||||
        "ts_rank_cd(?, websearch_to_tsquery('english', ?), 4)",
 | 
			
		||||
        t.search,
 | 
			
		||||
        ^trimmed_search
 | 
			
		||||
      )
 | 
			
		||||
        }
 | 
			
		||||
    )
 | 
			
		||||
    })
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @doc """
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ defmodule Cannery.Logger do
 | 
			
		||||
      |> Map.put(:stacktrace, Exception.format_stacktrace(stacktrace))
 | 
			
		||||
      |> pretty_encode()
 | 
			
		||||
 | 
			
		||||
    Logger.error("#{meta.reason}: #{data}")
 | 
			
		||||
    Logger.error("Oban exception: #{data}")
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle_event([:oban, :job, :start], measure, meta, _config) do
 | 
			
		||||
 
 | 
			
		||||
@@ -69,6 +69,7 @@ defmodule CanneryWeb do
 | 
			
		||||
 | 
			
		||||
  def html do
 | 
			
		||||
    quote do
 | 
			
		||||
      # credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse
 | 
			
		||||
      use Phoenix.Component
 | 
			
		||||
 | 
			
		||||
      # Import convenience functions from controllers
 | 
			
		||||
@@ -82,11 +83,8 @@ defmodule CanneryWeb do
 | 
			
		||||
 | 
			
		||||
  defp html_helpers do
 | 
			
		||||
    quote do
 | 
			
		||||
      # credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse
 | 
			
		||||
      use Phoenix.HTML
 | 
			
		||||
 | 
			
		||||
      # credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse
 | 
			
		||||
      import Phoenix.Component
 | 
			
		||||
      use PhoenixHTMLHelpers
 | 
			
		||||
      import Phoenix.{Component, HTML, HTML.Form}
 | 
			
		||||
      import CanneryWeb.{ErrorHelpers, Gettext, CoreComponents, HTMLHelpers}
 | 
			
		||||
 | 
			
		||||
      # Shortcut for generating JS commands
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
    phx-submit="save"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?()}
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?}
 | 
			
		||||
      class="invalid-feedback col-span-3 text-center"
 | 
			
		||||
    >
 | 
			
		||||
      <%= changeset_errors(@changeset) %>
 | 
			
		||||
@@ -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") %>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -71,8 +71,16 @@ defmodule CanneryWeb.Components.ContainerTableComponent do
 | 
			
		||||
      current_user: current_user,
 | 
			
		||||
      tag_actions: tag_actions,
 | 
			
		||||
      actions: actions,
 | 
			
		||||
      pack_count: Ammo.get_packs_count_for_containers(containers, current_user),
 | 
			
		||||
      round_count: Ammo.get_round_count_for_containers(containers, current_user)
 | 
			
		||||
      pack_count:
 | 
			
		||||
        Ammo.get_grouped_packs_count(current_user,
 | 
			
		||||
          containers: containers,
 | 
			
		||||
          group_by: :container_id
 | 
			
		||||
        ),
 | 
			
		||||
      round_count:
 | 
			
		||||
        Ammo.get_grouped_round_count(current_user,
 | 
			
		||||
          containers: containers,
 | 
			
		||||
          group_by: :container_id
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rows =
 | 
			
		||||
 
 | 
			
		||||
@@ -27,15 +27,15 @@
 | 
			
		||||
      <%= @container.location %>
 | 
			
		||||
    </span>
 | 
			
		||||
 | 
			
		||||
    <%= if @container |> Ammo.get_packs_count_for_container!(@current_user) != 0 do %>
 | 
			
		||||
    <%= if Ammo.get_packs_count(@current_user, container_id: @container.id) != 0 do %>
 | 
			
		||||
      <span class="rounded-lg title text-lg">
 | 
			
		||||
        <%= gettext("Packs:") %>
 | 
			
		||||
        <%= @container |> Ammo.get_packs_count_for_container!(@current_user) %>
 | 
			
		||||
        <%= Ammo.get_packs_count(@current_user, container_id: @container.id) %>
 | 
			
		||||
      </span>
 | 
			
		||||
 | 
			
		||||
      <span class="rounded-lg title text-lg">
 | 
			
		||||
        <%= gettext("Rounds:") %>
 | 
			
		||||
        <%= @container |> Ammo.get_round_count_for_container!(@current_user) %>
 | 
			
		||||
        <%= Ammo.get_round_count(@current_user, container_id: @container.id) %>
 | 
			
		||||
      </span>
 | 
			
		||||
    <% end %>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@
 | 
			
		||||
            <%= gettext("Range") %>
 | 
			
		||||
          </.link>
 | 
			
		||||
        </li>
 | 
			
		||||
        <li :if={@current_user |> Accounts.is_already_admin?()} class="mx-2 my-1">
 | 
			
		||||
        <li :if={@current_user |> Accounts.already_admin?()} class="mx-2 my-1">
 | 
			
		||||
          <.link navigate={~p"/invites"} class="text-white hover:underline">
 | 
			
		||||
            <%= gettext("Invites") %>
 | 
			
		||||
          </.link>
 | 
			
		||||
@@ -70,7 +70,7 @@
 | 
			
		||||
        </li>
 | 
			
		||||
        <li
 | 
			
		||||
          :if={
 | 
			
		||||
            @current_user |> Accounts.is_already_admin?() and
 | 
			
		||||
            @current_user |> Accounts.already_admin?() and
 | 
			
		||||
              function_exported?(Routes, :live_dashboard_path, 2)
 | 
			
		||||
          }
 | 
			
		||||
          class="mx-2 my-1"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,45 @@
 | 
			
		||||
<main role="main" class="min-h-full min-w-full">
 | 
			
		||||
<main class="pb-8 min-w-full">
 | 
			
		||||
  <header>
 | 
			
		||||
    <.topbar current_user={assigns[:current_user]} />
 | 
			
		||||
 | 
			
		||||
    <div class="mx-8 my-2 flex flex-col space-y-4 text-center">
 | 
			
		||||
      <p :if={@flash["info"]} class="alert alert-info" role="alert">
 | 
			
		||||
        <%= @flash["info"] %>
 | 
			
		||||
      <p
 | 
			
		||||
        :if={@flash && @flash |> Map.has_key?("info")}
 | 
			
		||||
        class="alert alert-info"
 | 
			
		||||
        role="alert"
 | 
			
		||||
        phx-click="lv:clear-flash"
 | 
			
		||||
        phx-value-key="info"
 | 
			
		||||
      >
 | 
			
		||||
        <%= Phoenix.Flash.get(@flash, :info) %>
 | 
			
		||||
      </p>
 | 
			
		||||
      <p :if={@flash["error"]} class="alert alert-danger" role="alert">
 | 
			
		||||
        <%= @flash["error"] %>
 | 
			
		||||
 | 
			
		||||
      <p
 | 
			
		||||
        :if={@flash && @flash |> Map.has_key?("error")}
 | 
			
		||||
        class="alert alert-danger"
 | 
			
		||||
        role="alert"
 | 
			
		||||
        phx-click="lv:clear-flash"
 | 
			
		||||
        phx-value-key="error"
 | 
			
		||||
      >
 | 
			
		||||
        <%= Phoenix.Flash.get(@flash, :error) %>
 | 
			
		||||
      </p>
 | 
			
		||||
    </div>
 | 
			
		||||
  </header>
 | 
			
		||||
 | 
			
		||||
  <div class="mx-4 sm:mx-8 md:mx-16">
 | 
			
		||||
  <div class="mx-4 sm:mx-8 md:mx-16 flex flex-col justify-center items-stretch">
 | 
			
		||||
    <%= @inner_content %>
 | 
			
		||||
  </div>
 | 
			
		||||
</main>
 | 
			
		||||
 | 
			
		||||
<div
 | 
			
		||||
  id="disconnect"
 | 
			
		||||
  class="z-50 fixed opacity-0 bottom-12 right-12 px-8 py-4 w-max h-max
 | 
			
		||||
  border border-primary-200 shadow-lg rounded-lg bg-white
 | 
			
		||||
  flex justify-center items-center space-x-4
 | 
			
		||||
  transition-opacity ease-in-out duration-500 delay-[2000ms]"
 | 
			
		||||
>
 | 
			
		||||
  <i class="fas fa-fade text-md fa-satellite-dish"></i>
 | 
			
		||||
 | 
			
		||||
  <h1 class="title text-md title-primary-500">
 | 
			
		||||
    <%= gettext("Reconnecting...") %>
 | 
			
		||||
  </h1>
 | 
			
		||||
</div>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								lib/cannery_web/components/layouts/empty.html.heex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								lib/cannery_web/components/layouts/empty.html.heex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
<%= @inner_block %>
 | 
			
		||||
@@ -1,45 +0,0 @@
 | 
			
		||||
<main class="pb-8 min-w-full">
 | 
			
		||||
  <header>
 | 
			
		||||
    <.topbar current_user={assigns[:current_user]} />
 | 
			
		||||
 | 
			
		||||
    <div class="mx-8 my-2 flex flex-col space-y-4 text-center">
 | 
			
		||||
      <p
 | 
			
		||||
        :if={@flash && @flash |> Map.has_key?("info")}
 | 
			
		||||
        class="alert alert-info"
 | 
			
		||||
        role="alert"
 | 
			
		||||
        phx-click="lv:clear-flash"
 | 
			
		||||
        phx-value-key="info"
 | 
			
		||||
      >
 | 
			
		||||
        <%= live_flash(@flash, "info") %>
 | 
			
		||||
      </p>
 | 
			
		||||
 | 
			
		||||
      <p
 | 
			
		||||
        :if={@flash && @flash |> Map.has_key?("error")}
 | 
			
		||||
        class="alert alert-danger"
 | 
			
		||||
        role="alert"
 | 
			
		||||
        phx-click="lv:clear-flash"
 | 
			
		||||
        phx-value-key="error"
 | 
			
		||||
      >
 | 
			
		||||
        <%= live_flash(@flash, "error") %>
 | 
			
		||||
      </p>
 | 
			
		||||
    </div>
 | 
			
		||||
  </header>
 | 
			
		||||
 | 
			
		||||
  <div class="mx-4 sm:mx-8 md:mx-16 flex flex-col justify-center items-stretch">
 | 
			
		||||
    <%= @inner_content %>
 | 
			
		||||
  </div>
 | 
			
		||||
</main>
 | 
			
		||||
 | 
			
		||||
<div
 | 
			
		||||
  id="disconnect"
 | 
			
		||||
  class="z-50 fixed opacity-0 bottom-12 right-12 px-8 py-4 w-max h-max
 | 
			
		||||
  border border-primary-200 shadow-lg rounded-lg bg-white
 | 
			
		||||
  flex justify-center items-center space-x-4
 | 
			
		||||
  transition-opacity ease-in-out duration-500 delay-[2000ms]"
 | 
			
		||||
>
 | 
			
		||||
  <i class="fas fa-fade text-md fa-satellite-dish"></i>
 | 
			
		||||
 | 
			
		||||
  <h1 class="title text-md title-primary-500">
 | 
			
		||||
    <%= gettext("Reconnecting...") %>
 | 
			
		||||
  </h1>
 | 
			
		||||
</div>
 | 
			
		||||
@@ -89,7 +89,7 @@ defmodule CanneryWeb.Components.MovePackComponent do
 | 
			
		||||
      <% else %>
 | 
			
		||||
        <.live_component
 | 
			
		||||
          module={CanneryWeb.Components.TableComponent}
 | 
			
		||||
          id="move_pack_table"
 | 
			
		||||
          id="move-pack-table"
 | 
			
		||||
          columns={@columns}
 | 
			
		||||
          rows={@rows}
 | 
			
		||||
        />
 | 
			
		||||
 
 | 
			
		||||
@@ -141,7 +141,12 @@ defmodule CanneryWeb.Components.PackTableComponent do
 | 
			
		||||
  def render(assigns) do
 | 
			
		||||
    ~H"""
 | 
			
		||||
    <div id={@id} class="w-full">
 | 
			
		||||
      <.live_component module={TableComponent} id={"table-#{@id}"} columns={@columns} rows={@rows} />
 | 
			
		||||
      <.live_component
 | 
			
		||||
        module={TableComponent}
 | 
			
		||||
        id={"pack-table-#{@id}"}
 | 
			
		||||
        columns={@columns}
 | 
			
		||||
        rows={@rows}
 | 
			
		||||
      />
 | 
			
		||||
    </div>
 | 
			
		||||
    """
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ defmodule CanneryWeb.Components.ShotRecordTableComponent do
 | 
			
		||||
    <div id={@id} class="w-full">
 | 
			
		||||
      <.live_component
 | 
			
		||||
        module={CanneryWeb.Components.TableComponent}
 | 
			
		||||
        id={"table-#{@id}"}
 | 
			
		||||
        id={"shot-record-table-#{@id}"}
 | 
			
		||||
        columns={@columns}
 | 
			
		||||
        rows={@rows}
 | 
			
		||||
        initial_key={:date}
 | 
			
		||||
 
 | 
			
		||||
@@ -151,17 +151,25 @@ defmodule CanneryWeb.Components.TypeTableComponent do
 | 
			
		||||
      )
 | 
			
		||||
      |> TableComponent.maybe_compose_columns(%{label: gettext("Name"), key: :name, type: :name})
 | 
			
		||||
 | 
			
		||||
    round_counts = types |> Ammo.get_round_count_for_types(current_user)
 | 
			
		||||
    packs_count = types |> Ammo.get_packs_count_for_types(current_user)
 | 
			
		||||
    average_costs = types |> Ammo.get_average_cost_for_types(current_user)
 | 
			
		||||
    round_counts = Ammo.get_grouped_round_count(current_user, types: types, group_by: :type_id)
 | 
			
		||||
    packs_count = Ammo.get_grouped_packs_count(current_user, types: types, group_by: :type_id)
 | 
			
		||||
    average_costs = Ammo.get_average_costs(types, current_user)
 | 
			
		||||
 | 
			
		||||
    [used_counts, historical_round_counts, historical_pack_counts, used_pack_counts] =
 | 
			
		||||
      if show_used do
 | 
			
		||||
        [
 | 
			
		||||
          types |> ActivityLog.get_used_count_for_types(current_user),
 | 
			
		||||
          types |> Ammo.get_historical_count_for_types(current_user),
 | 
			
		||||
          types |> Ammo.get_packs_count_for_types(current_user, true),
 | 
			
		||||
          types |> Ammo.get_used_packs_count_for_types(current_user)
 | 
			
		||||
          ActivityLog.get_grouped_used_counts(current_user, types: types, group_by: :type_id),
 | 
			
		||||
          Ammo.get_historical_counts(types, current_user),
 | 
			
		||||
          Ammo.get_grouped_packs_count(current_user,
 | 
			
		||||
            types: types,
 | 
			
		||||
            group_by: :type_id,
 | 
			
		||||
            show_used: true
 | 
			
		||||
          ),
 | 
			
		||||
          Ammo.get_grouped_packs_count(current_user,
 | 
			
		||||
            types: types,
 | 
			
		||||
            group_by: :type_id,
 | 
			
		||||
            show_used: :only_used
 | 
			
		||||
          )
 | 
			
		||||
        ]
 | 
			
		||||
      else
 | 
			
		||||
        [nil, nil, nil, nil]
 | 
			
		||||
@@ -192,7 +200,12 @@ defmodule CanneryWeb.Components.TypeTableComponent do
 | 
			
		||||
  def render(assigns) do
 | 
			
		||||
    ~H"""
 | 
			
		||||
    <div id={@id} class="w-full">
 | 
			
		||||
      <.live_component module={TableComponent} id={"table-#{@id}"} columns={@columns} rows={@rows} />
 | 
			
		||||
      <.live_component
 | 
			
		||||
        module={TableComponent}
 | 
			
		||||
        id={"type-table-#{@id}"}
 | 
			
		||||
        columns={@columns}
 | 
			
		||||
        rows={@rows}
 | 
			
		||||
      />
 | 
			
		||||
    </div>
 | 
			
		||||
    """
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -3,14 +3,22 @@ defmodule CanneryWeb.ExportController do
 | 
			
		||||
  alias Cannery.{ActivityLog, Ammo, Containers}
 | 
			
		||||
 | 
			
		||||
  def export(%{assigns: %{current_user: current_user}} = conn, %{"mode" => "json"}) do
 | 
			
		||||
    types = Ammo.list_types(current_user, :all)
 | 
			
		||||
    used_counts = types |> ActivityLog.get_used_count_for_types(current_user)
 | 
			
		||||
    round_counts = types |> Ammo.get_round_count_for_types(current_user)
 | 
			
		||||
    pack_counts = types |> Ammo.get_packs_count_for_types(current_user)
 | 
			
		||||
    types = Ammo.list_types(current_user)
 | 
			
		||||
 | 
			
		||||
    total_pack_counts = types |> Ammo.get_packs_count_for_types(current_user, true)
 | 
			
		||||
    used_counts =
 | 
			
		||||
      ActivityLog.get_grouped_used_counts(current_user, types: types, group_by: :type_id)
 | 
			
		||||
 | 
			
		||||
    average_costs = types |> Ammo.get_average_cost_for_types(current_user)
 | 
			
		||||
    round_counts = Ammo.get_grouped_round_count(current_user, types: types, group_by: :type_id)
 | 
			
		||||
    pack_counts = Ammo.get_grouped_packs_count(current_user, types: types, group_by: :type_id)
 | 
			
		||||
 | 
			
		||||
    total_pack_counts =
 | 
			
		||||
      Ammo.get_grouped_packs_count(current_user,
 | 
			
		||||
        types: types,
 | 
			
		||||
        group_by: :type_id,
 | 
			
		||||
        show_used: true
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
    average_costs = Ammo.get_average_costs(types, current_user)
 | 
			
		||||
 | 
			
		||||
    types =
 | 
			
		||||
      types
 | 
			
		||||
@@ -27,8 +35,11 @@ defmodule CanneryWeb.ExportController do
 | 
			
		||||
        })
 | 
			
		||||
      end)
 | 
			
		||||
 | 
			
		||||
    packs = Ammo.list_packs(nil, :all, current_user, true)
 | 
			
		||||
    used_counts = packs |> ActivityLog.get_used_counts(current_user)
 | 
			
		||||
    packs = Ammo.list_packs(current_user, show_used: true)
 | 
			
		||||
 | 
			
		||||
    used_counts =
 | 
			
		||||
      ActivityLog.get_grouped_used_counts(current_user, packs: packs, group_by: :pack_id)
 | 
			
		||||
 | 
			
		||||
    original_counts = packs |> Ammo.get_original_counts(current_user)
 | 
			
		||||
    cprs = packs |> Ammo.get_cprs(current_user)
 | 
			
		||||
    percentages_remaining = packs |> Ammo.get_percentages_remaining(current_user)
 | 
			
		||||
@@ -47,20 +58,17 @@ defmodule CanneryWeb.ExportController do
 | 
			
		||||
        })
 | 
			
		||||
      end)
 | 
			
		||||
 | 
			
		||||
    shot_records = ActivityLog.list_shot_records(:all, current_user)
 | 
			
		||||
    shot_records = ActivityLog.list_shot_records(current_user)
 | 
			
		||||
 | 
			
		||||
    containers =
 | 
			
		||||
      Containers.list_containers(current_user)
 | 
			
		||||
      |> Enum.map(fn container ->
 | 
			
		||||
        pack_count = container |> Ammo.get_packs_count_for_container!(current_user)
 | 
			
		||||
        round_count = container |> Ammo.get_round_count_for_container!(current_user)
 | 
			
		||||
 | 
			
		||||
        container
 | 
			
		||||
        |> Jason.encode!()
 | 
			
		||||
        |> Jason.decode!()
 | 
			
		||||
        |> Map.merge(%{
 | 
			
		||||
          "pack_count" => pack_count,
 | 
			
		||||
          "round_count" => round_count
 | 
			
		||||
          "pack_count" => Ammo.get_packs_count(current_user, container_id: container.id),
 | 
			
		||||
          "round_count" => Ammo.get_round_count(current_user, container_id: container.id)
 | 
			
		||||
        })
 | 
			
		||||
      end)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -71,7 +71,7 @@ defmodule CanneryWeb.UserRegistrationController do
 | 
			
		||||
        |> redirect(to: ~p"/")
 | 
			
		||||
 | 
			
		||||
      {:error, %Changeset{} = changeset} ->
 | 
			
		||||
        conn |> render("new.html", changeset: changeset, invite_token: invite_token)
 | 
			
		||||
        conn |> render(:new, changeset: changeset, invite_token: invite_token)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
    action={~p"/users/register"}
 | 
			
		||||
    class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
 | 
			
		||||
  >
 | 
			
		||||
    <p :if={@changeset.action && not @changeset.valid?()} class="alert alert-danger col-span-3">
 | 
			
		||||
    <p :if={@changeset.action && not @changeset.valid?} class="alert alert-danger col-span-3">
 | 
			
		||||
      <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
 | 
			
		||||
    </p>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
    action={~p"/users/reset_password/#{@token}"}
 | 
			
		||||
    class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
 | 
			
		||||
  >
 | 
			
		||||
    <p :if={@changeset.action && not @changeset.valid?()} class="alert alert-danger col-span-3">
 | 
			
		||||
    <p :if={@changeset.action && not @changeset.valid?} class="alert alert-danger col-span-3">
 | 
			
		||||
      <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
 | 
			
		||||
    </p>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,10 +15,18 @@
 | 
			
		||||
    </p>
 | 
			
		||||
 | 
			
		||||
    <%= label(f, :email, gettext("Email"), class: "title text-lg text-primary-600") %>
 | 
			
		||||
    <%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
 | 
			
		||||
    <%= email_input(f, :email,
 | 
			
		||||
      autocomplete: :email,
 | 
			
		||||
      class: "input input-primary col-span-2",
 | 
			
		||||
      required: true
 | 
			
		||||
    ) %>
 | 
			
		||||
 | 
			
		||||
    <%= label(f, :password, gettext("Password"), class: "title text-lg text-primary-600") %>
 | 
			
		||||
    <%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %>
 | 
			
		||||
    <%= password_input(f, :password,
 | 
			
		||||
      autocomplete: "current-password",
 | 
			
		||||
      class: "input input-primary col-span-2",
 | 
			
		||||
      required: true
 | 
			
		||||
    ) %>
 | 
			
		||||
 | 
			
		||||
    <%= label(f, :remember_me, gettext("Keep me logged in for 60 days"),
 | 
			
		||||
      class: "title text-lg text-primary-600"
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
    </h3>
 | 
			
		||||
 | 
			
		||||
    <div
 | 
			
		||||
      :if={@email_changeset.action && not @email_changeset.valid?()}
 | 
			
		||||
      :if={@email_changeset.action && not @email_changeset.valid?}
 | 
			
		||||
      class="alert alert-danger col-span-3"
 | 
			
		||||
    >
 | 
			
		||||
      <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
 | 
			
		||||
@@ -58,7 +58,7 @@
 | 
			
		||||
    </h3>
 | 
			
		||||
 | 
			
		||||
    <div
 | 
			
		||||
      :if={@password_changeset.action && not @password_changeset.valid?()}
 | 
			
		||||
      :if={@password_changeset.action && not @password_changeset.valid?}
 | 
			
		||||
      class="alert alert-danger col-span-3"
 | 
			
		||||
    >
 | 
			
		||||
      <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
 | 
			
		||||
@@ -112,7 +112,7 @@
 | 
			
		||||
    ) %>
 | 
			
		||||
 | 
			
		||||
    <div
 | 
			
		||||
      :if={@locale_changeset.action && not @locale_changeset.valid?()}
 | 
			
		||||
      :if={@locale_changeset.action && not @locale_changeset.valid?}
 | 
			
		||||
      class="alert alert-danger col-span-3"
 | 
			
		||||
    >
 | 
			
		||||
      <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,8 +3,8 @@ defmodule CanneryWeb.ErrorHelpers do
 | 
			
		||||
  Conveniences for translating and building error messages.
 | 
			
		||||
  """
 | 
			
		||||
 | 
			
		||||
  use Phoenix.HTML
 | 
			
		||||
  import Phoenix.Component
 | 
			
		||||
  use PhoenixHTMLHelpers
 | 
			
		||||
  import Phoenix.{Component, HTML.Form}
 | 
			
		||||
  alias Ecto.Changeset
 | 
			
		||||
  alias Phoenix.{HTML.Form, LiveView.Rendered}
 | 
			
		||||
 | 
			
		||||
@@ -65,7 +65,7 @@ defmodule CanneryWeb.ErrorHelpers do
 | 
			
		||||
    changeset
 | 
			
		||||
    |> changeset_error_map()
 | 
			
		||||
    |> Enum.map_join(". ", fn {key, errors} ->
 | 
			
		||||
      "#{key |> humanize()}: #{errors |> Enum.join(", ")}"
 | 
			
		||||
      "#{key |> Phoenix.Naming.humanize()}: #{errors |> Enum.join(", ")}"
 | 
			
		||||
    end)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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,10 +45,14 @@ defmodule CanneryWeb.ContainerLive.FormComponent do
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    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)
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
    phx-submit="save"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?()}
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?}
 | 
			
		||||
      class="invalid-feedback col-span-3 text-center"
 | 
			
		||||
    >
 | 
			
		||||
      <%= changeset_errors(@changeset) %>
 | 
			
		||||
@@ -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") %>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -113,6 +113,6 @@ defmodule CanneryWeb.ContainerLive.Index do
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp display_containers(%{assigns: %{search: search, current_user: current_user}} = socket) do
 | 
			
		||||
    socket |> assign(:containers, Containers.list_containers(search, current_user))
 | 
			
		||||
    socket |> assign(:containers, Containers.list_containers(current_user, search: search))
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 | 
			
		||||
@@ -51,7 +51,7 @@
 | 
			
		||||
      <%= if @view_table do %>
 | 
			
		||||
        <.live_component
 | 
			
		||||
          module={CanneryWeb.Components.ContainerTableComponent}
 | 
			
		||||
          id="containers_index_table"
 | 
			
		||||
          id="containers-index-table"
 | 
			
		||||
          action={@live_action}
 | 
			
		||||
          containers={@containers}
 | 
			
		||||
          current_user={@current_user}
 | 
			
		||||
 
 | 
			
		||||
@@ -104,8 +104,10 @@ defmodule CanneryWeb.ContainerLive.Show do
 | 
			
		||||
         id,
 | 
			
		||||
         current_user
 | 
			
		||||
       ) do
 | 
			
		||||
    %{name: container_name} = container = Containers.get_container!(id, current_user)
 | 
			
		||||
    packs = Ammo.list_packs_for_container(container, class, current_user)
 | 
			
		||||
    %{id: container_id, name: container_name} =
 | 
			
		||||
      container = Containers.get_container!(id, current_user)
 | 
			
		||||
 | 
			
		||||
    packs = Ammo.list_packs(current_user, container_id: container_id, class: class)
 | 
			
		||||
    original_counts = packs |> Ammo.get_original_counts(current_user)
 | 
			
		||||
    cprs = packs |> Ammo.get_cprs(current_user)
 | 
			
		||||
    last_used_dates = packs |> ActivityLog.get_last_used_dates(current_user)
 | 
			
		||||
@@ -120,8 +122,8 @@ defmodule CanneryWeb.ContainerLive.Show do
 | 
			
		||||
    socket
 | 
			
		||||
    |> assign(
 | 
			
		||||
      container: container,
 | 
			
		||||
      round_count: Ammo.get_round_count_for_container!(container, current_user),
 | 
			
		||||
      packs_count: Ammo.get_packs_count_for_container!(container, current_user),
 | 
			
		||||
      round_count: Ammo.get_round_count(current_user, container_id: container.id),
 | 
			
		||||
      packs_count: Ammo.get_packs_count(current_user, container_id: container.id),
 | 
			
		||||
      packs: packs,
 | 
			
		||||
      original_counts: original_counts,
 | 
			
		||||
      cprs: cprs,
 | 
			
		||||
 
 | 
			
		||||
@@ -120,7 +120,7 @@
 | 
			
		||||
      <%= if @view_table do %>
 | 
			
		||||
        <.live_component
 | 
			
		||||
          module={CanneryWeb.Components.PackTableComponent}
 | 
			
		||||
          id="type-show-table"
 | 
			
		||||
          id="pack-show-table"
 | 
			
		||||
          packs={@packs}
 | 
			
		||||
          current_user={@current_user}
 | 
			
		||||
          show_used={false}
 | 
			
		||||
@@ -130,6 +130,21 @@
 | 
			
		||||
              <%= type_name %>
 | 
			
		||||
            </.link>
 | 
			
		||||
          </:type>
 | 
			
		||||
          <:actions :let={%{count: pack_count} = pack}>
 | 
			
		||||
            <div class="py-2 px-4 h-full space-x-4 flex justify-center items-center">
 | 
			
		||||
              <.link
 | 
			
		||||
                navigate={~p"/ammo/show/#{pack}"}
 | 
			
		||||
                class="text-primary-600 link"
 | 
			
		||||
                aria-label={
 | 
			
		||||
                  dgettext("actions", "View pack of %{pack_count} bullets",
 | 
			
		||||
                    pack_count: pack_count
 | 
			
		||||
                  )
 | 
			
		||||
                }
 | 
			
		||||
              >
 | 
			
		||||
                <i class="fa-fw fa-lg fas fa-eye"></i>
 | 
			
		||||
              </.link>
 | 
			
		||||
            </div>
 | 
			
		||||
          </:actions>
 | 
			
		||||
        </.live_component>
 | 
			
		||||
      <% else %>
 | 
			
		||||
        <div class="flex flex-wrap justify-center items-stretch">
 | 
			
		||||
 
 | 
			
		||||
@@ -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,10 +38,14 @@ defmodule CanneryWeb.InviteLive.FormComponent do
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    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)
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
    phx-submit="save"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?()}
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?}
 | 
			
		||||
      class="invalid-feedback col-span-3 text-center"
 | 
			
		||||
    >
 | 
			
		||||
      <%= changeset_errors(@changeset) %>
 | 
			
		||||
@@ -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") %>
 | 
			
		||||
 
 | 
			
		||||
@@ -22,24 +22,13 @@ 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
 | 
			
		||||
      |> assign(:pack_create_limit, @pack_create_limit)
 | 
			
		||||
      |> assign(:types, Ammo.list_types(current_user, :all))
 | 
			
		||||
      |> 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
 | 
			
		||||
@@ -92,10 +81,14 @@ defmodule CanneryWeb.PackLive.FormComponent do
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    changeset =
 | 
			
		||||
      case changeset |> Changeset.apply_action(changeset_action || default_action) do
 | 
			
		||||
      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)
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
    class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?()}
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?}
 | 
			
		||||
      class="invalid-feedback col-span-3 text-center"
 | 
			
		||||
    >
 | 
			
		||||
      <%= changeset_errors(@changeset) %>
 | 
			
		||||
@@ -42,7 +42,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,8 +57,9 @@
 | 
			
		||||
 | 
			
		||||
    <%= 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") %>
 | 
			
		||||
 
 | 
			
		||||
@@ -148,8 +148,8 @@ defmodule CanneryWeb.PackLive.Index do
 | 
			
		||||
       ) do
 | 
			
		||||
    # get total number of packs to determine whether to display onboarding
 | 
			
		||||
    # prompts
 | 
			
		||||
    packs_count = Ammo.get_packs_count!(current_user, true)
 | 
			
		||||
    packs = Ammo.list_packs(search, class, current_user, show_used)
 | 
			
		||||
    packs_count = Ammo.get_packs_count(current_user, show_used: true)
 | 
			
		||||
    packs = Ammo.list_packs(current_user, search: search, class: class, show_used: show_used)
 | 
			
		||||
    types_count = Ammo.get_types_count!(current_user)
 | 
			
		||||
    containers_count = Containers.get_containers_count!(current_user)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 | 
			
		||||
@@ -145,7 +145,9 @@
 | 
			
		||||
                navigate={~p"/ammo/show/#{pack}"}
 | 
			
		||||
                class="text-primary-600 link"
 | 
			
		||||
                aria-label={
 | 
			
		||||
                  dgettext("actions", "View pack of %{pack_count} bullets", pack_count: pack_count)
 | 
			
		||||
                  dgettext("actions", "View pack of %{pack_count} bullets",
 | 
			
		||||
                    pack_count: pack_count
 | 
			
		||||
                  )
 | 
			
		||||
                }
 | 
			
		||||
              >
 | 
			
		||||
                <i class="fa-fw fa-lg fas fa-eye"></i>
 | 
			
		||||
@@ -155,7 +157,9 @@
 | 
			
		||||
                patch={~p"/ammo/edit/#{pack}"}
 | 
			
		||||
                class="text-primary-600 link"
 | 
			
		||||
                aria-label={
 | 
			
		||||
                  dgettext("actions", "Edit pack of %{pack_count} bullets", pack_count: pack_count)
 | 
			
		||||
                  dgettext("actions", "Edit pack of %{pack_count} bullets",
 | 
			
		||||
                    pack_count: pack_count
 | 
			
		||||
                  )
 | 
			
		||||
                }
 | 
			
		||||
              >
 | 
			
		||||
                <i class="fa-fw fa-lg fas fa-edit"></i>
 | 
			
		||||
 
 | 
			
		||||
@@ -92,7 +92,7 @@ defmodule CanneryWeb.PackLive.Show do
 | 
			
		||||
      %{label: gettext("Actions"), key: :actions, sortable: false}
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    shot_records = ActivityLog.list_shot_records_for_pack(pack, current_user)
 | 
			
		||||
    shot_records = ActivityLog.list_shot_records(current_user, pack_id: pack.id)
 | 
			
		||||
 | 
			
		||||
    rows =
 | 
			
		||||
      shot_records
 | 
			
		||||
 
 | 
			
		||||
@@ -115,7 +115,7 @@
 | 
			
		||||
 | 
			
		||||
    <.live_component
 | 
			
		||||
      module={CanneryWeb.Components.TableComponent}
 | 
			
		||||
      id="pack_shot_records_table"
 | 
			
		||||
      id="pack-shot-records-table"
 | 
			
		||||
      columns={@columns}
 | 
			
		||||
      rows={@rows}
 | 
			
		||||
    />
 | 
			
		||||
 
 | 
			
		||||
@@ -71,25 +71,26 @@ 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
 | 
			
		||||
      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)
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
    phx-submit="save"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?()}
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?}
 | 
			
		||||
      class="invalid-feedback col-span-3 text-center"
 | 
			
		||||
    >
 | 
			
		||||
      <%= changeset_errors(@changeset) %>
 | 
			
		||||
@@ -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") %>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ defmodule CanneryWeb.RangeLive.Index do
 | 
			
		||||
  defp apply_action(socket, :new, _params) do
 | 
			
		||||
    socket
 | 
			
		||||
    |> assign(
 | 
			
		||||
      page_title: gettext("New Shot Records"),
 | 
			
		||||
      page_title: gettext("Record Shots"),
 | 
			
		||||
      shot_record: %ShotRecord{}
 | 
			
		||||
    )
 | 
			
		||||
  end
 | 
			
		||||
@@ -52,7 +52,7 @@ defmodule CanneryWeb.RangeLive.Index do
 | 
			
		||||
  defp apply_action(socket, :index, _params) do
 | 
			
		||||
    socket
 | 
			
		||||
    |> assign(
 | 
			
		||||
      page_title: gettext("Shot Records"),
 | 
			
		||||
      page_title: gettext("Range"),
 | 
			
		||||
      search: nil,
 | 
			
		||||
      shot_record: nil
 | 
			
		||||
    )
 | 
			
		||||
@@ -62,7 +62,7 @@ defmodule CanneryWeb.RangeLive.Index do
 | 
			
		||||
  defp apply_action(socket, :search, %{"search" => search}) do
 | 
			
		||||
    socket
 | 
			
		||||
    |> assign(
 | 
			
		||||
      page_title: gettext("Shot Records"),
 | 
			
		||||
      page_title: gettext("Range"),
 | 
			
		||||
      search: search,
 | 
			
		||||
      shot_record: nil
 | 
			
		||||
    )
 | 
			
		||||
@@ -120,8 +120,8 @@ defmodule CanneryWeb.RangeLive.Index do
 | 
			
		||||
  defp display_shot_records(
 | 
			
		||||
         %{assigns: %{class: class, search: search, current_user: current_user}} = socket
 | 
			
		||||
       ) do
 | 
			
		||||
    shot_records = ActivityLog.list_shot_records(search, class, current_user)
 | 
			
		||||
    packs = Ammo.list_staged_packs(current_user)
 | 
			
		||||
    shot_records = ActivityLog.list_shot_records(current_user, search: search, class: class)
 | 
			
		||||
    packs = Ammo.list_packs(current_user, staged: true)
 | 
			
		||||
    chart_data = shot_records |> get_chart_data_for_shot_record()
 | 
			
		||||
    original_counts = packs |> Ammo.get_original_counts(current_user)
 | 
			
		||||
    cprs = packs |> Ammo.get_cprs(current_user)
 | 
			
		||||
 
 | 
			
		||||
@@ -80,7 +80,9 @@
 | 
			
		||||
        phx-submit="change_class"
 | 
			
		||||
        class="flex items-center"
 | 
			
		||||
      >
 | 
			
		||||
        <%= label(f, :class, gettext("Class"), class: "title text-primary-600 text-lg text-center") %>
 | 
			
		||||
        <%= label(f, :class, gettext("Class"),
 | 
			
		||||
          class: "title text-primary-600 text-lg text-center"
 | 
			
		||||
        ) %>
 | 
			
		||||
 | 
			
		||||
        <%= select(
 | 
			
		||||
          f,
 | 
			
		||||
@@ -106,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>
 | 
			
		||||
@@ -122,7 +124,7 @@
 | 
			
		||||
    <% else %>
 | 
			
		||||
      <.live_component
 | 
			
		||||
        module={CanneryWeb.Components.ShotRecordTableComponent}
 | 
			
		||||
        id="shot_records_index_table"
 | 
			
		||||
        id="shot-records-index-table"
 | 
			
		||||
        shot_records={@shot_records}
 | 
			
		||||
        current_user={@current_user}
 | 
			
		||||
      >
 | 
			
		||||
 
 | 
			
		||||
@@ -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,10 +36,14 @@ defmodule CanneryWeb.TagLive.FormComponent do
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    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)
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -12,14 +12,18 @@
 | 
			
		||||
    phx-submit="save"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?()}
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?}
 | 
			
		||||
      class="invalid-feedback col-span-3 text-center"
 | 
			
		||||
    >
 | 
			
		||||
      <%= changeset_errors(@changeset) %>
 | 
			
		||||
    </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") %>
 | 
			
		||||
 
 | 
			
		||||
@@ -75,6 +75,6 @@ defmodule CanneryWeb.TagLive.Index do
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp display_tags(%{assigns: %{search: search, current_user: current_user}} = socket) do
 | 
			
		||||
    socket |> assign(tags: Containers.list_tags(search, current_user))
 | 
			
		||||
    socket |> assign(tags: Containers.list_tags(current_user, search: search))
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
@@ -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,10 +45,14 @@ defmodule CanneryWeb.TypeLive.FormComponent do
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    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)
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
    class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?()}
 | 
			
		||||
      :if={@changeset.action && not @changeset.valid?}
 | 
			
		||||
      class="invalid-feedback col-span-3 text-center"
 | 
			
		||||
    >
 | 
			
		||||
      <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
 | 
			
		||||
@@ -31,14 +31,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 +54,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 +74,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,21 +85,28 @@
 | 
			
		||||
      ) %>
 | 
			
		||||
      <%= 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") %>
 | 
			
		||||
 | 
			
		||||
      <%= label(f, :brass_height, gettext("Brass height"), class: "title text-lg text-primary-600") %>
 | 
			
		||||
      <%= label(f, :brass_height, gettext("Brass height"),
 | 
			
		||||
        class: "title text-lg text-primary-600"
 | 
			
		||||
      ) %>
 | 
			
		||||
      <%= 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") %>
 | 
			
		||||
 | 
			
		||||
      <%= label(f, :chamber_size, gettext("Chamber size"), class: "title text-lg text-primary-600") %>
 | 
			
		||||
      <%= label(f, :chamber_size, gettext("Chamber size"),
 | 
			
		||||
        class: "title text-lg text-primary-600"
 | 
			
		||||
      ) %>
 | 
			
		||||
      <%= 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 %>
 | 
			
		||||
@@ -132,6 +143,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") %>
 | 
			
		||||
@@ -151,6 +163,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") %>
 | 
			
		||||
@@ -160,6 +173,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") %>
 | 
			
		||||
@@ -167,10 +181,13 @@
 | 
			
		||||
      <%= hidden_input(f, :jacket_type, value: nil) %>
 | 
			
		||||
    <% end %>
 | 
			
		||||
 | 
			
		||||
    <%= label(f, :case_material, gettext("Case material"), class: "title text-lg text-primary-600") %>
 | 
			
		||||
    <%= label(f, :case_material, gettext("Case material"),
 | 
			
		||||
      class: "title text-lg text-primary-600"
 | 
			
		||||
    ) %>
 | 
			
		||||
    <%= 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") %>
 | 
			
		||||
@@ -179,7 +196,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") %>
 | 
			
		||||
 | 
			
		||||
@@ -187,6 +205,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") %>
 | 
			
		||||
@@ -196,14 +215,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") %>
 | 
			
		||||
 | 
			
		||||
@@ -220,7 +241,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 %>
 | 
			
		||||
@@ -239,7 +261,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") %>
 | 
			
		||||
 | 
			
		||||
@@ -261,6 +284,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") %>
 | 
			
		||||
@@ -271,7 +295,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 %>
 | 
			
		||||
@@ -300,6 +325,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") %>
 | 
			
		||||
@@ -308,6 +334,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") %>
 | 
			
		||||
@@ -339,14 +366,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") %>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -106,7 +106,7 @@ defmodule CanneryWeb.TypeLive.Index do
 | 
			
		||||
       ) do
 | 
			
		||||
    socket
 | 
			
		||||
    |> assign(
 | 
			
		||||
      types: Ammo.list_types(search, current_user, class),
 | 
			
		||||
      types: Ammo.list_types(current_user, class: class, search: search),
 | 
			
		||||
      types_count: Ammo.get_types_count!(current_user)
 | 
			
		||||
    )
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,9 @@
 | 
			
		||||
        phx-submit="change_class"
 | 
			
		||||
        class="flex items-center"
 | 
			
		||||
      >
 | 
			
		||||
        <%= label(f, :class, gettext("Class"), class: "title text-primary-600 text-lg text-center") %>
 | 
			
		||||
        <%= label(f, :class, gettext("Class"),
 | 
			
		||||
          class: "title text-primary-600 text-lg text-center"
 | 
			
		||||
        ) %>
 | 
			
		||||
 | 
			
		||||
        <%= select(
 | 
			
		||||
          f,
 | 
			
		||||
@@ -52,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>
 | 
			
		||||
 | 
			
		||||
@@ -74,7 +76,7 @@
 | 
			
		||||
    <% else %>
 | 
			
		||||
      <.live_component
 | 
			
		||||
        module={CanneryWeb.Components.TypeTableComponent}
 | 
			
		||||
        id="types_index_table"
 | 
			
		||||
        id="types-index-table"
 | 
			
		||||
        action={@live_action}
 | 
			
		||||
        types={@types}
 | 
			
		||||
        current_user={@current_user}
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,7 @@ defmodule CanneryWeb.TypeLive.Show do
 | 
			
		||||
  defp display_type(
 | 
			
		||||
         %{assigns: %{live_action: live_action, current_user: current_user, show_used: show_used}} =
 | 
			
		||||
           socket,
 | 
			
		||||
         %Type{name: type_name} = type
 | 
			
		||||
         %Type{id: type_id, name: type_name} = type
 | 
			
		||||
       ) do
 | 
			
		||||
    custom_fields? =
 | 
			
		||||
      fields_to_display(type)
 | 
			
		||||
@@ -54,7 +54,7 @@ defmodule CanneryWeb.TypeLive.Show do
 | 
			
		||||
        type |> Map.get(field) != default_value
 | 
			
		||||
      end)
 | 
			
		||||
 | 
			
		||||
    packs = type |> Ammo.list_packs_for_type(current_user, show_used)
 | 
			
		||||
    packs = Ammo.list_packs(current_user, type_id: type_id, show_used: show_used)
 | 
			
		||||
 | 
			
		||||
    [
 | 
			
		||||
      original_counts,
 | 
			
		||||
@@ -66,10 +66,10 @@ defmodule CanneryWeb.TypeLive.Show do
 | 
			
		||||
      if show_used do
 | 
			
		||||
        [
 | 
			
		||||
          packs |> Ammo.get_original_counts(current_user),
 | 
			
		||||
          type |> Ammo.get_used_packs_count_for_type(current_user),
 | 
			
		||||
          type |> Ammo.get_packs_count_for_type(current_user, true),
 | 
			
		||||
          type |> ActivityLog.get_used_count_for_type(current_user),
 | 
			
		||||
          type |> Ammo.get_historical_count_for_type(current_user)
 | 
			
		||||
          Ammo.get_packs_count(current_user, type_id: type.id, show_used: :only_used),
 | 
			
		||||
          Ammo.get_packs_count(current_user, type_id: type.id, show_used: true),
 | 
			
		||||
          ActivityLog.get_used_count(current_user, type_id: type.id),
 | 
			
		||||
          Ammo.get_historical_count(type, current_user)
 | 
			
		||||
        ]
 | 
			
		||||
      else
 | 
			
		||||
        [nil, nil, nil, nil, nil]
 | 
			
		||||
@@ -94,12 +94,12 @@ defmodule CanneryWeb.TypeLive.Show do
 | 
			
		||||
      containers: containers,
 | 
			
		||||
      cprs: packs |> Ammo.get_cprs(current_user),
 | 
			
		||||
      last_used_dates: packs |> ActivityLog.get_last_used_dates(current_user),
 | 
			
		||||
      avg_cost_per_round: type |> Ammo.get_average_cost_for_type(current_user),
 | 
			
		||||
      rounds: type |> Ammo.get_round_count_for_type(current_user),
 | 
			
		||||
      avg_cost_per_round: Ammo.get_average_cost(type, current_user),
 | 
			
		||||
      rounds: Ammo.get_round_count(current_user, type_id: type.id),
 | 
			
		||||
      original_counts: original_counts,
 | 
			
		||||
      used_rounds: used_rounds,
 | 
			
		||||
      historical_round_count: historical_round_count,
 | 
			
		||||
      packs_count: type |> Ammo.get_packs_count_for_type(current_user),
 | 
			
		||||
      packs_count: Ammo.get_packs_count(current_user, type_id: type.id),
 | 
			
		||||
      used_packs_count: used_packs_count,
 | 
			
		||||
      historical_packs_count: historical_packs_count,
 | 
			
		||||
      fields_to_display: fields_to_display(type),
 | 
			
		||||
 
 | 
			
		||||
@@ -198,7 +198,9 @@
 | 
			
		||||
                navigate={~p"/ammo/show/#{pack}"}
 | 
			
		||||
                class="text-primary-600 link"
 | 
			
		||||
                aria-label={
 | 
			
		||||
                  dgettext("actions", "View pack of %{pack_count} bullets", pack_count: pack_count)
 | 
			
		||||
                  dgettext("actions", "View pack of %{pack_count} bullets",
 | 
			
		||||
                    pack_count: pack_count
 | 
			
		||||
                  )
 | 
			
		||||
                }
 | 
			
		||||
              >
 | 
			
		||||
                <i class="fa-fw fa-lg fas fa-eye"></i>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								mix.exs
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								mix.exs
									
									
									
									
									
								
							@@ -4,8 +4,8 @@ defmodule Cannery.MixProject do
 | 
			
		||||
  def project do
 | 
			
		||||
    [
 | 
			
		||||
      app: :cannery,
 | 
			
		||||
      version: "0.9.3",
 | 
			
		||||
      elixir: "1.14.4",
 | 
			
		||||
      version: "0.9.11",
 | 
			
		||||
      elixir: "1.17.0",
 | 
			
		||||
      elixirc_paths: elixirc_paths(Mix.env()),
 | 
			
		||||
      start_permanent: Mix.env() == :prod,
 | 
			
		||||
      aliases: aliases(),
 | 
			
		||||
@@ -47,29 +47,30 @@ defmodule Cannery.MixProject do
 | 
			
		||||
  defp deps do
 | 
			
		||||
    [
 | 
			
		||||
      {:bcrypt_elixir, "~> 3.0"},
 | 
			
		||||
      {:phoenix, "~> 1.7.0"},
 | 
			
		||||
      {:phoenix_ecto, "~> 4.4"},
 | 
			
		||||
      {:phoenix_html, "~> 3.0"},
 | 
			
		||||
      {:phoenix_live_reload, "~> 1.2", only: :dev},
 | 
			
		||||
      {:phoenix_live_view, "~> 0.18.0"},
 | 
			
		||||
      {:phoenix_live_dashboard, "~> 0.6"},
 | 
			
		||||
      {:credo, "~> 1.5", only: [:dev, :test], runtime: false},
 | 
			
		||||
      {:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false},
 | 
			
		||||
      {:ecto_psql_extras, "~> 0.6"},
 | 
			
		||||
      {:ecto_sql, "~> 3.6"},
 | 
			
		||||
      {:postgrex, ">= 0.0.0"},
 | 
			
		||||
      {:floki, ">= 0.30.0", only: :test},
 | 
			
		||||
      {:eqrcode, "~> 0.1.10"},
 | 
			
		||||
      # {:esbuild, "~> 0.3", runtime: Mix.env() == :dev},
 | 
			
		||||
      {:ex_doc, "~> 0.27", only: :dev, runtime: false},
 | 
			
		||||
      {:swoosh, "~> 1.6"},
 | 
			
		||||
      {:floki, ">= 0.30.0", only: :test},
 | 
			
		||||
      {:gen_smtp, "~> 1.0"},
 | 
			
		||||
      {:oban, "~> 2.10"},
 | 
			
		||||
      {:telemetry_metrics, "~> 0.6"},
 | 
			
		||||
      {:telemetry_poller, "~> 1.0"},
 | 
			
		||||
      {:gettext, "~> 0.18"},
 | 
			
		||||
      {:jason, "~> 1.2"},
 | 
			
		||||
      {:plug_cowboy, "~> 2.5"},
 | 
			
		||||
      {:ecto_psql_extras, "~> 0.6"},
 | 
			
		||||
      {:eqrcode, "~> 0.1.10"},
 | 
			
		||||
      {:credo, "~> 1.5", only: [:dev, :test], runtime: false},
 | 
			
		||||
      {:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false}
 | 
			
		||||
      {:oban, "~> 2.10"},
 | 
			
		||||
      {:phoenix_ecto, "~> 4.4"},
 | 
			
		||||
      {:phoenix_html_helpers, "~> 1.0"},
 | 
			
		||||
      {:phoenix_html, "~> 4.0"},
 | 
			
		||||
      {:phoenix_live_dashboard, "~> 0.8"},
 | 
			
		||||
      {:phoenix_live_reload, "~> 1.2", only: :dev},
 | 
			
		||||
      {:phoenix_live_view, "~> 0.20.0"},
 | 
			
		||||
      {:phoenix, "~> 1.7.11"},
 | 
			
		||||
      {:plug_cowboy, "~> 2.7"},
 | 
			
		||||
      {:postgrex, ">= 0.0.0"},
 | 
			
		||||
      {:swoosh, "~> 1.6"},
 | 
			
		||||
      {:telemetry_metrics, "~> 0.6"},
 | 
			
		||||
      {:telemetry_poller, "~> 1.0"}
 | 
			
		||||
    ]
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										94
									
								
								mix.lock
									
									
									
									
									
								
							
							
						
						
									
										94
									
								
								mix.lock
									
									
									
									
									
								
							@@ -1,54 +1,54 @@
 | 
			
		||||
%{
 | 
			
		||||
  "bcrypt_elixir": {:hex, :bcrypt_elixir, "3.0.1", "9be815469e6bfefec40fa74658ecbbe6897acfb57614df1416eeccd4903f602c", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "486bb95efb645d1efc6794c1ddd776a186a9a713abf06f45708a6ce324fb96cf"},
 | 
			
		||||
  "bunt": {:hex, :bunt, "0.2.1", "e2d4792f7bc0ced7583ab54922808919518d0e57ee162901a16a1b6664ef3b14", [:mix], [], "hexpm", "a330bfb4245239787b15005e66ae6845c9cd524a288f0d141c148b02603777a5"},
 | 
			
		||||
  "castore": {:hex, :castore, "1.0.1", "240b9edb4e9e94f8f56ab39d8d2d0a57f49e46c56aced8f873892df8ff64ff5a", [:mix], [], "hexpm", "b4951de93c224d44fac71614beabd88b71932d0b1dea80d2f80fb9044e01bbb3"},
 | 
			
		||||
  "comeonin": {:hex, :comeonin, "5.3.3", "2c564dac95a35650e9b6acfe6d2952083d8a08e4a89b93a481acb552b325892e", [:mix], [], "hexpm", "3e38c9c2cb080828116597ca8807bb482618a315bfafd98c90bc22a821cc84df"},
 | 
			
		||||
  "connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"},
 | 
			
		||||
  "cowboy": {:hex, :cowboy, "2.9.0", "865dd8b6607e14cf03282e10e934023a1bd8be6f6bacf921a7e2a96d800cd452", [:make, :rebar3], [{:cowlib, "2.11.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "2c729f934b4e1aa149aff882f57c6372c15399a20d54f65c8d67bef583021bde"},
 | 
			
		||||
  "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"},
 | 
			
		||||
  "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"},
 | 
			
		||||
  "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"},
 | 
			
		||||
  "comeonin": {:hex, :comeonin, "5.4.0", "246a56ca3f41d404380fc6465650ddaa532c7f98be4bda1b4656b3a37cc13abe", [:mix], [], "hexpm", "796393a9e50d01999d56b7b8420ab0481a7538d0caf80919da493b4a6e51faf1"},
 | 
			
		||||
  "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.11.0", "0b9ff9c346629256c42ebe1eeb769a83c6cb771a6ee5960bd110ab0b9b872063", [:make, :rebar3], [], "hexpm", "2b3e9da0b21c4565751a6d4901c20d1b4cc25cbb7fd50d91d2ab6dd287bc86a9"},
 | 
			
		||||
  "credo": {:hex, :credo, "1.7.0", "6119bee47272e85995598ee04f2ebbed3e947678dee048d10b5feca139435f75", [:mix], [{:bunt, "~> 0.2.1", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "6839fcf63d1f0d1c0f450abc8564a57c43d644077ab96f2934563e68b8a769d7"},
 | 
			
		||||
  "db_connection": {:hex, :db_connection, "2.5.0", "bb6d4f30d35ded97b29fe80d8bd6f928a1912ca1ff110831edcd238a1973652c", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c92d5ba26cd69ead1ff7582dbb860adeedfff39774105a4f1c92cbb654b55aa2"},
 | 
			
		||||
  "decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"},
 | 
			
		||||
  "dialyxir": {:hex, :dialyxir, "1.3.0", "fd1672f0922b7648ff9ce7b1b26fcf0ef56dda964a459892ad15f6b4410b5284", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "00b2a4bcd6aa8db9dcb0b38c1225b7277dca9bc370b6438715667071a304696f"},
 | 
			
		||||
  "earmark_parser": {:hex, :earmark_parser, "1.4.31", "a93921cdc6b9b869f519213d5bc79d9e218ba768d7270d46fdcf1c01bacff9e2", [:mix], [], "hexpm", "317d367ee0335ef037a87e46c91a2269fef6306413f731e8ec11fc45a7efd059"},
 | 
			
		||||
  "ecto": {:hex, :ecto, "3.10.1", "c6757101880e90acc6125b095853176a02da8f1afe056f91f1f90b80c9389822", [:mix], [{:decimal, "~> 1.6 or ~> 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", "d2ac4255f1601bdf7ac74c0ed971102c6829dc158719b94bd30041bbad77f87a"},
 | 
			
		||||
  "ecto_psql_extras": {:hex, :ecto_psql_extras, "0.7.10", "e14d400930f401ca9f541b3349212634e44027d7f919bbb71224d7ac0d0e8acd", [:mix], [{:ecto_sql, "~> 3.4", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.15.7 or ~> 0.16.0", [hex: :postgrex, repo: "hexpm", optional: false]}, {:table_rex, "~> 3.1.1", [hex: :table_rex, repo: "hexpm", optional: false]}], "hexpm", "505e8cd81e4f17c090be0f99e92b1b3f0fd915f98e76965130b8ccfb891e7088"},
 | 
			
		||||
  "ecto_sql": {:hex, :ecto_sql, "3.10.1", "6ea6b3036a0b0ca94c2a02613fd9f742614b5cfe494c41af2e6571bb034dd94c", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.10.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16.0 or ~> 0.17.0 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", "f6a25bdbbd695f12c8171eaff0851fa4c8e72eec1e98c7364402dda9ce11c56b"},
 | 
			
		||||
  "elixir_make": {:hex, :elixir_make, "0.7.6", "67716309dc5d43e16b5abbd00c01b8df6a0c2ab54a8f595468035a50189f9169", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5a0569756b0f7873a77687800c164cca6dfc03a09418e6fcf853d78991f49940"},
 | 
			
		||||
  "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.7.0", "b99faa9291bb09892c7da373bb82cba59aefa9b36300f6145c5f201c7adf48ec", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "dcf08f31b2701f857dfc787fbad78223d61a32204f217f15e881dd93e4bdd3ff"},
 | 
			
		||||
  "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"},
 | 
			
		||||
  "dialyxir": {:hex, :dialyxir, "1.4.3", "edd0124f358f0b9e95bfe53a9fcf806d615d8f838e2202a9f430d59566b6b53b", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986"},
 | 
			
		||||
  "earmark_parser": {:hex, :earmark_parser, "1.4.41", "ab34711c9dc6212dda44fcd20ecb87ac3f3fce6f0ca2f28d4a00e4154f8cd599", [:mix], [], "hexpm", "a81a04c7e34b6617c2792e291b5a2e57ab316365c2644ddc553bb9ed863ebefa"},
 | 
			
		||||
  "ecto": {:hex, :ecto, "3.11.2", "e1d26be989db350a633667c5cda9c3d115ae779b66da567c68c80cfb26a8c9ee", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "3c38bca2c6f8d8023f2145326cc8a80100c3ffe4dcbd9842ff867f7fc6156c65"},
 | 
			
		||||
  "ecto_psql_extras": {:hex, :ecto_psql_extras, "0.8.0", "440719cd74f09b3f01c84455707a2c3972b725c513808e68eb6c5b0ab82bf523", [:mix], [{:ecto_sql, "~> 3.7", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16.0 or ~> 0.17.0 or ~> 0.18.0", [hex: :postgrex, repo: "hexpm", optional: false]}, {:table_rex, "~> 3.1.1 or ~> 4.0.0", [hex: :table_rex, repo: "hexpm", optional: false]}], "hexpm", "f1512812dc196bcb932a96c82e55f69b543dc125e9d39f5e3631a9c4ec65ef12"},
 | 
			
		||||
  "ecto_sql": {:hex, :ecto_sql, "3.11.3", "4eb7348ff8101fbc4e6bbc5a4404a24fecbe73a3372d16569526b0cf34ebc195", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.11.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "e5f36e3d736b99c7fee3e631333b8394ade4bafe9d96d35669fca2d81c2be928"},
 | 
			
		||||
  "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"},
 | 
			
		||||
  "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.29.4", "6257ecbb20c7396b1fe5accd55b7b0d23f44b6aa18017b415cb4c2b91d997729", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "2c6699a737ae46cb61e4ed012af931b57b699643b24dabe2400a8168414bc4f5"},
 | 
			
		||||
  "expo": {:hex, :expo, "0.4.1", "1c61d18a5df197dfda38861673d392e642649a9cef7694d2f97a587b2cfb319b", [:mix], [], "hexpm", "2ff7ba7a798c8c543c12550fa0e2cbc81b95d4974c65855d8d15ba7b37a1ce47"},
 | 
			
		||||
  "file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
 | 
			
		||||
  "floki": {:hex, :floki, "0.34.2", "5fad07ef153b3b8ec110b6b155ec3780c4b2c4906297d0b4be1a7162d04a7e02", [:mix], [], "hexpm", "26b9d50f0f01796bc6be611ca815c5e0de034d2128e39cc9702eee6b66a4d1c8"},
 | 
			
		||||
  "erlex": {:hex, :erlex, "0.2.7", "810e8725f96ab74d17aac676e748627a07bc87eb950d2b83acd29dc047a30595", [:mix], [], "hexpm", "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"},
 | 
			
		||||
  "ex_doc": {:hex, :ex_doc, "0.34.2", "13eedf3844ccdce25cfd837b99bea9ad92c4e511233199440488d217c92571e8", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "5ce5f16b41208a50106afed3de6a2ed34f4acfd65715b82a0b84b49d995f95c1"},
 | 
			
		||||
  "expo": {:hex, :expo, "0.5.2", "beba786aab8e3c5431813d7a44b828e7b922bfa431d6bfbada0904535342efe2", [:mix], [], "hexpm", "8c9bfa06ca017c9cb4020fabe980bc7fdb1aaec059fd004c2ab3bff03b1c599c"},
 | 
			
		||||
  "file_system": {:hex, :file_system, "1.0.0", "b689cc7dcee665f774de94b5a832e578bd7963c8e637ef940cd44327db7de2cd", [:mix], [], "hexpm", "6752092d66aec5a10e662aefeed8ddb9531d79db0bc145bb8c40325ca1d8536d"},
 | 
			
		||||
  "floki": {:hex, :floki, "0.36.2", "a7da0193538c93f937714a6704369711998a51a6164a222d710ebd54020aa7a3", [:mix], [], "hexpm", "a8766c0bc92f074e5cb36c4f9961982eda84c5d2b8e979ca67f5c268ec8ed580"},
 | 
			
		||||
  "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.22.1", "e7942988383c3d9eed4bdc22fc63e712b655ae94a672a27e4900e3d4a2c43581", [:mix], [{:expo, "~> 0.4.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "ad105b8dab668ee3f90c0d3d94ba75e9aead27a62495c101d94f2657a190ac5d"},
 | 
			
		||||
  "jason": {:hex, :jason, "1.4.0", "e855647bc964a44e2f67df589ccf49105ae039d4179db7f6271dfd3843dc27e6", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "79a3791085b2a0f743ca04cec0f7be26443738779d09302e01318f97bdb82121"},
 | 
			
		||||
  "makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"},
 | 
			
		||||
  "makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [: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", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"},
 | 
			
		||||
  "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"},
 | 
			
		||||
  "mime": {:hex, :mime, "2.0.3", "3676436d3d1f7b81b5a2d2bd8405f412c677558c81b1c92be58c00562bb59095", [:mix], [], "hexpm", "27a30bf0db44d25eecba73755acf4068cbfe26a4372f9eb3e4ea3a45956bff6b"},
 | 
			
		||||
  "nimble_parsec": {:hex, :nimble_parsec, "1.3.0", "9e18a119d9efc3370a3ef2a937bf0b24c088d9c4bf0ba9d7c3751d49d347d035", [:mix], [], "hexpm", "7977f183127a7cbe9346981e2f480dc04c55ffddaef746bd58debd566070eef8"},
 | 
			
		||||
  "oban": {:hex, :oban, "2.15.0", "27b9c2845cdff30c98c8060b11a64318e79bbc1bd32b8dc95fa59a1580a8d90c", [:mix], [{:ecto_sql, "~> 3.6", [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", "22e181c540335d1dd5c995be00435927075519207d62b3de32477d95dbf9dfd3"},
 | 
			
		||||
  "phoenix": {:hex, :phoenix, "1.7.2", "c375ffb482beb4e3d20894f84dd7920442884f5f5b70b9f4528cbe0cedefec63", [: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.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.4", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "1ebca94b32b4d0e097ab2444a9742ed8ff3361acad17365e4e6b2e79b4792159"},
 | 
			
		||||
  "phoenix_ecto": {:hex, :phoenix_ecto, "4.4.0", "0672ed4e4808b3fbed494dded89958e22fb882de47a97634c0b13e7b0b5f7720", [:mix], [{:ecto, "~> 3.3", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "09864e558ed31ee00bd48fcc1d4fc58ae9678c9e81649075431e69dbabb43cc1"},
 | 
			
		||||
  "phoenix_html": {:hex, :phoenix_html, "3.3.1", "4788757e804a30baac6b3fc9695bf5562465dd3f1da8eb8460ad5b404d9a2178", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "bed1906edd4906a15fd7b412b85b05e521e1f67c9a85418c55999277e553d0d3"},
 | 
			
		||||
  "phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.7.2", "97cc4ff2dba1ebe504db72cb45098cb8e91f11160528b980bd282cc45c73b29c", [: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]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.18.3", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "0e5fdf063c7a3b620c566a30fcf68b7ee02e5e46fe48ee46a6ec3ba382dc05b7"},
 | 
			
		||||
  "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.4.1", "2aff698f5e47369decde4357ba91fc9c37c6487a512b41732818f2204a8ef1d3", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "9bffb834e7ddf08467fe54ae58b5785507aaba6255568ae22b4d46e2bb3615ab"},
 | 
			
		||||
  "phoenix_live_view": {:hex, :phoenix_live_view, "0.18.18", "1f38fbd7c363723f19aad1a04b5490ff3a178e37daaf6999594d5f34796c47fc", [:mix], [{: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", [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]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a5810d0472f3189ede6d2a95bda7f31c6113156b91784a3426cb0ab6a6d85214"},
 | 
			
		||||
  "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.1", "ba04e489ef03763bf28a17eb2eaddc2c20c6d217e2150a61e3298b0f4c2012b5", [:mix], [], "hexpm", "81367c6d1eea5878ad726be80808eb5a787a23dee699f96e72b1109c57cdd8d9"},
 | 
			
		||||
  "phoenix_template": {:hex, :phoenix_template, "1.0.1", "85f79e3ad1b0180abb43f9725973e3b8c2c3354a87245f91431eec60553ed3ef", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "157dc078f6226334c91cb32c1865bf3911686f8bcd6bcff86736f6253e6993ee"},
 | 
			
		||||
  "plug": {:hex, :plug, "1.14.2", "cff7d4ec45b4ae176a227acd94a7ab536d9b37b942c8e8fa6dfc0fff98ff4d80", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "842fc50187e13cf4ac3b253d47d9474ed6c296a8732752835ce4a86acdf68d13"},
 | 
			
		||||
  "plug_cowboy": {:hex, :plug_cowboy, "2.6.1", "9a3bbfceeb65eff5f39dab529e5cd79137ac36e913c02067dba3963a26efe9b2", [: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", "de36e1a21f451a18b790f37765db198075c25875c64834bcc82d90b309eb6613"},
 | 
			
		||||
  "plug_crypto": {:hex, :plug_crypto, "1.2.5", "918772575e48e81e455818229bf719d4ab4181fcbf7f85b68a35620f78d89ced", [:mix], [], "hexpm", "26549a1d6345e2172eb1c233866756ae44a9609bd33ee6f99147ab3fd87fd842"},
 | 
			
		||||
  "postgrex": {:hex, :postgrex, "0.16.5", "fcc4035cc90e23933c5d69a9cd686e329469446ef7abba2cf70f08e2c4b69810", [:mix], [{:connection, "~> 1.1", [hex: :connection, repo: "hexpm", optional: false]}, {: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", "edead639dc6e882618c01d8fc891214c481ab9a3788dfe38dd5e37fd1d5fb2e8"},
 | 
			
		||||
  "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.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.1", "c7f58c120b2b5aa5fd80d540a89fdf866ed42f1f3994e4fe189abebeab610839", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "8a89a1eeccc2d798d6ea15496a6e4870b75e014d1af514b1b71fa33134f57814"},
 | 
			
		||||
  "mime": {:hex, :mime, "2.0.6", "8f18486773d9b15f95f4f4f1e39b710045fa1de891fada4516559967276e4dc2", [:mix], [], "hexpm", "c9945363a6b26d747389aac3643f8e0e09d30499a138ad64fe8fd1d13d9b153e"},
 | 
			
		||||
  "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"},
 | 
			
		||||
  "oban": {:hex, :oban, "2.18.0", "092d20bfd3d70c7ecb70960f8548d300b54bb9937c7f2e56b388f3a9ed02ec68", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "aace1eff6f8227ae38d4274af967d96f051c2f0a5152f2ef9809dd1f97866745"},
 | 
			
		||||
  "phoenix": {:hex, :phoenix, "1.7.14", "a7d0b3f1bc95987044ddada111e77bd7f75646a08518942c72a8440278ae7825", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "c7859bc56cc5dfef19ecfc240775dae358cbaa530231118a9e014df392ace61a"},
 | 
			
		||||
  "phoenix_ecto": {:hex, :phoenix_ecto, "4.6.2", "3b83b24ab5a2eb071a20372f740d7118767c272db386831b2e77638c4dcc606d", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "3f94d025f59de86be00f5f8c5dd7b5965a3298458d21ab1c328488be3b5fcd59"},
 | 
			
		||||
  "phoenix_html": {:hex, :phoenix_html, "4.1.1", "4c064fd3873d12ebb1388425a8f2a19348cef56e7289e1998e2d2fa758aa982e", [:mix], [], "hexpm", "f2f2df5a72bc9a2f510b21497fd7d2b86d932ec0598f0210fed4114adc546c6f"},
 | 
			
		||||
  "phoenix_html_helpers": {:hex, :phoenix_html_helpers, "1.0.1", "7eed85c52eff80a179391036931791ee5d2f713d76a81d0d2c6ebafe1e11e5ec", [:mix], [{:phoenix_html, "~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "cffd2385d1fa4f78b04432df69ab8da63dc5cf63e07b713a4dcf36a3740e3090"},
 | 
			
		||||
  "phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.8.4", "4508e481f791ce62ec6a096e13b061387158cbeefacca68c6c1928e1305e23ed", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:ecto_sqlite3_extras, "~> 1.1.7 or ~> 1.2.0", [hex: :ecto_sqlite3_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.19 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "2984aae96994fbc5c61795a73b8fb58153b41ff934019cfb522343d2d3817d59"},
 | 
			
		||||
  "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.5.3", "f2161c207fda0e4fb55165f650f7f8db23f02b29e3bff00ff7ef161d6ac1f09d", [:mix], [{:file_system, "~> 0.3 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "b4ec9cd73cb01ff1bd1cac92e045d13e7030330b74164297d1aee3907b54803c"},
 | 
			
		||||
  "phoenix_live_view": {:hex, :phoenix_live_view, "0.20.17", "f396bbdaf4ba227b82251eb75ac0afa6b3da5e509bc0d030206374237dfc9450", [:mix], [{:floki, "~> 0.36", [hex: :floki, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a61d741ffb78c85fdbca0de084da6a48f8ceb5261a79165b5a0b59e5f65ce98b"},
 | 
			
		||||
  "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"},
 | 
			
		||||
  "phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"},
 | 
			
		||||
  "plug": {:hex, :plug, "1.16.1", "40c74619c12f82736d2214557dedec2e9762029b2438d6d175c5074c933edc9d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a13ff6b9006b03d7e33874945b2755253841b238c34071ed85b0e86057f8cddc"},
 | 
			
		||||
  "plug_cowboy": {:hex, :plug_cowboy, "2.7.1", "87677ffe3b765bc96a89be7960f81703223fe2e21efa42c125fcd0127dd9d6b2", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "02dbd5f9ab571b864ae39418db7811618506256f6d13b4a45037e5fe78dc5de3"},
 | 
			
		||||
  "plug_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"},
 | 
			
		||||
  "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"},
 | 
			
		||||
  "swoosh": {:hex, :swoosh, "1.9.1", "0a5d7bf9954eb41d7e55525bc0940379982b090abbaef67cd8e1fd2ed7f8ca1a", [:mix], [{: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]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "76dffff3ffcab80f249d5937a592eaef7cc49ac6f4cdd27e622868326ed6371e"},
 | 
			
		||||
  "table_rex": {:hex, :table_rex, "3.1.1", "0c67164d1714b5e806d5067c1e96ff098ba7ae79413cc075973e17c38a587caa", [:mix], [], "hexpm", "678a23aba4d670419c23c17790f9dcd635a4a89022040df7d5d772cb21012490"},
 | 
			
		||||
  "swoosh": {:hex, :swoosh, "1.16.10", "04be6e2eb1a31aa0aa21a731175c81cc3998189456a92daf13d44a5c754afcf5", [:mix], [{:bandit, ">= 1.0.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mua, "~> 0.2.3", [hex: :mua, repo: "hexpm", optional: true]}, {:multipart, "~> 0.4", [hex: :multipart, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:req, "~> 0.5 or ~> 1.0", [hex: :req, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "756be04db173c0cbe318f1dfe2bcc88aa63aed78cf5a4b02b61b36ee11fc716a"},
 | 
			
		||||
  "table_rex": {:hex, :table_rex, "4.0.0", "3c613a68ebdc6d4d1e731bc973c233500974ec3993c99fcdabb210407b90959b", [:mix], [], "hexpm", "c35c4d5612ca49ebb0344ea10387da4d2afe278387d4019e4d8111e815df8f55"},
 | 
			
		||||
  "telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"},
 | 
			
		||||
  "telemetry_metrics": {:hex, :telemetry_metrics, "0.6.1", "315d9163a1d4660aedc3fee73f33f1d355dcc76c5c3ab3d59e76e3edf80eef1f", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7be9e0871c41732c233be71e4be11b96e56177bf15dde64a8ac9ce72ac9834c6"},
 | 
			
		||||
  "telemetry_poller": {:hex, :telemetry_poller, "1.0.0", "db91bb424e07f2bb6e73926fcafbfcbcb295f0193e0a00e825e589a0a47e8453", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b3a24eafd66c3f42da30fc3ca7dda1e9d546c12250a2d60d7b81d264fbec4f6e"},
 | 
			
		||||
  "websock": {:hex, :websock, "0.5.0", "f6bbce90226121d62a0715bca7c986c5e43de0ccc9475d79c55381d1796368cc", [:mix], [], "hexpm", "b51ac706df8a7a48a2c622ee02d09d68be8c40418698ffa909d73ae207eb5fb8"},
 | 
			
		||||
  "websock_adapter": {:hex, :websock_adapter, "0.5.0", "cea35d8bbf1a6964e32d4b02ceb561dfb769c04f16d60d743885587e7d2ca55b", [:mix], [{:bandit, "~> 0.6", [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", "16318b124effab8209b1eb7906c636374f623dc9511a8278ad09c083cea5bb83"},
 | 
			
		||||
  "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"},
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,7 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:38
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Forgot your password?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -72,7 +72,7 @@ msgstr ""
 | 
			
		||||
#: 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
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:28
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:36
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Log in"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -98,7 +98,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
 | 
			
		||||
#: 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:35
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Register"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -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:353
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:382
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Save"
 | 
			
		||||
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:85
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Create"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -288,23 +288,24 @@ msgstr ""
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:168
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:183
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:158
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
@@ -312,29 +313,29 @@ msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:152
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:122
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{type_name}"
 | 
			
		||||
@@ -345,7 +346,7 @@ msgstr ""
 | 
			
		||||
msgid "New Type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:91
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ msgstr "Benutzer löschen"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:38
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Forgot your password?"
 | 
			
		||||
msgstr "Passwort vergessen?"
 | 
			
		||||
@@ -85,7 +85,7 @@ msgstr "Laden Sie jemanden ein!"
 | 
			
		||||
#: 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
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:28
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:36
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Log in"
 | 
			
		||||
msgstr "Einloggen"
 | 
			
		||||
@@ -111,7 +111,7 @@ msgstr "Neuer Tag"
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
 | 
			
		||||
#: 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:35
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Register"
 | 
			
		||||
msgstr "Registrieren"
 | 
			
		||||
@@ -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:353
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:382
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Save"
 | 
			
		||||
msgstr "Speichern"
 | 
			
		||||
@@ -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:85
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Create"
 | 
			
		||||
msgstr "Erstellen"
 | 
			
		||||
@@ -301,23 +301,24 @@ msgstr ""
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:168
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:183
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:158
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
@@ -325,29 +326,29 @@ msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:152
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:122
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit %{type_name}"
 | 
			
		||||
@@ -358,7 +359,7 @@ msgstr ""
 | 
			
		||||
msgid "New Type"
 | 
			
		||||
msgstr "Neue Munitionsart"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:91
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "View %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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:327
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:354
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Blank"
 | 
			
		||||
msgstr "Knallpatrone"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:191
 | 
			
		||||
#, 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:147
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:159
 | 
			
		||||
#, 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:121
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:132
 | 
			
		||||
#, 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:70
 | 
			
		||||
#, 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:53
 | 
			
		||||
#, 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:170
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:184
 | 
			
		||||
#, 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:67
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container"
 | 
			
		||||
msgstr "Behälter"
 | 
			
		||||
@@ -100,7 +100,7 @@ msgid "Containers"
 | 
			
		||||
msgstr "Behälter"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:331
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:358
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Corrosive"
 | 
			
		||||
msgstr "Korrosiv"
 | 
			
		||||
@@ -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:39
 | 
			
		||||
#, 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:135
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:147
 | 
			
		||||
#, 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:111
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:122
 | 
			
		||||
#, 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:323
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:350
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Incendiary"
 | 
			
		||||
msgstr "Brandmunition"
 | 
			
		||||
@@ -184,14 +184,14 @@ msgstr "Nur mit Einladung"
 | 
			
		||||
msgid "Invites"
 | 
			
		||||
msgstr "Einladungen"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:23
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:31
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
msgstr "Für 60 Tage eingeloggt bleiben"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/components/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:336
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:339
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:363
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:366
 | 
			
		||||
#, 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"
 | 
			
		||||
@@ -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:58
 | 
			
		||||
#: 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,13 +293,13 @@ 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:260
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:283
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Pressure"
 | 
			
		||||
msgstr "Druck"
 | 
			
		||||
@@ -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:299
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:324
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Primer type"
 | 
			
		||||
msgstr "Zündertyp"
 | 
			
		||||
@@ -349,7 +349,7 @@ msgstr "Einstellungen"
 | 
			
		||||
msgid "Simple:"
 | 
			
		||||
msgstr "Einfach:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:167
 | 
			
		||||
#, 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:319
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr "Leuchtspur"
 | 
			
		||||
@@ -392,7 +392,7 @@ 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/container_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Type"
 | 
			
		||||
@@ -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"
 | 
			
		||||
@@ -426,6 +426,8 @@ msgstr "Keine Tags für diesen Behälter"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr "Schießplatz"
 | 
			
		||||
@@ -435,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"
 | 
			
		||||
@@ -459,13 +461,8 @@ msgstr "Keine Munition selektiert"
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr "Schüsse dokumentieren"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "New Shot Records"
 | 
			
		||||
msgstr "Neue Schießkladde"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr "Keine Schüsse dokumentiert"
 | 
			
		||||
@@ -477,12 +474,6 @@ msgstr "Keine Schüsse dokumentiert"
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr "Patronen abgefeuert"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot Records"
 | 
			
		||||
msgstr "Schießkladde"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
@@ -500,9 +491,9 @@ msgstr "Schießkladde"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:176
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:150
 | 
			
		||||
@@ -510,36 +501,36 @@ msgstr "Schießkladde"
 | 
			
		||||
msgid "$%{amount}"
 | 
			
		||||
msgstr "$%{amount}"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:163
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:177
 | 
			
		||||
#, 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:159
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:172
 | 
			
		||||
#, 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:282
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:307
 | 
			
		||||
#, 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:247
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:270
 | 
			
		||||
#, 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:239
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:261
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Powder type"
 | 
			
		||||
msgstr "Pulverart"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:374
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "UPC"
 | 
			
		||||
msgstr "UPC"
 | 
			
		||||
@@ -563,24 +554,24 @@ 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:307
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:333
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Firing type"
 | 
			
		||||
msgstr "Patronenhülsenform"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/layouts/live.html.heex:43
 | 
			
		||||
#: lib/cannery_web/components/layouts/app.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Reconnecting..."
 | 
			
		||||
msgstr "Neu verbinden..."
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:116
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr "%{name} bearbeiten"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr "Editiere %{name} Tags"
 | 
			
		||||
@@ -592,9 +583,9 @@ msgstr "Editiere %{name} Tags"
 | 
			
		||||
msgid "Rounds:"
 | 
			
		||||
msgstr "Patronen:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:173
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:255
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No cost information"
 | 
			
		||||
@@ -657,11 +648,12 @@ msgstr "Passwort zurücksetzen"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:77
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Copies"
 | 
			
		||||
msgstr "Kopien"
 | 
			
		||||
@@ -763,7 +755,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 ""
 | 
			
		||||
@@ -774,13 +766,13 @@ msgid "Container:"
 | 
			
		||||
msgstr "Behälter"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:214
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
@@ -957,7 +949,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -997,13 +989,13 @@ msgstr ""
 | 
			
		||||
msgid "Last used on:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:194
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:199
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:50
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Purchased on"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1024,17 +1016,17 @@ msgstr "Munitionstyp bearbeiten"
 | 
			
		||||
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 ""
 | 
			
		||||
@@ -1143,38 +1135,38 @@ msgid "Email"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:24
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:20
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:24
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:264
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:288
 | 
			
		||||
#, 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:78
 | 
			
		||||
#, 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:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "5.56x46mm NATO"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:303
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:329
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Boxer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:311
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:338
 | 
			
		||||
#, 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,19 +1204,19 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:35
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:316
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:343
 | 
			
		||||
#, 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:93
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Brass height"
 | 
			
		||||
msgstr "Messing"
 | 
			
		||||
@@ -1235,7 +1227,7 @@ msgid "Brass height:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:57
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:103
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Chamber size"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1245,13 +1237,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:49
 | 
			
		||||
#, 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:269
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:293
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Dram equivalent"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1262,7 +1254,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:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Gauge"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1273,7 +1265,7 @@ msgid "Gauge:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:210
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:231
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Load grains"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1295,41 +1287,41 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: 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/index.html.heex:38
 | 
			
		||||
#: 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:236
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:258
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Powder"
 | 
			
		||||
msgstr "Pulverart"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:296
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:321
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Primer"
 | 
			
		||||
msgstr "Zündertyp"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:90
 | 
			
		||||
#: 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/index.html.heex:36
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rifle"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:72
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:218
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:239
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot charge weight"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1340,7 +1332,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:194
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:213
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot material"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1351,7 +1343,7 @@ msgid "Shot material:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:70
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:203
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:223
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Shot size"
 | 
			
		||||
msgstr "Schüsse abgegeben"
 | 
			
		||||
@@ -1362,7 +1354,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:186
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:204
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1374,21 +1366,21 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: 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/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shotgun"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:61
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:146
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:158
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Slug core"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:190
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:209
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Target, bird, buck, etc"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1399,13 +1391,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:83
 | 
			
		||||
#, 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:179
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:196
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Wadding"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1456,7 +1448,7 @@ msgid "New Type"
 | 
			
		||||
msgstr "Neuer Munitionstyp"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:8
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No Types"
 | 
			
		||||
msgstr "Art"
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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:220
 | 
			
		||||
#: lib/cannery/containers.ex:224
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr "Behälter muss vor dem Löschen leer sein"
 | 
			
		||||
@@ -158,19 +158,19 @@ 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:152
 | 
			
		||||
#, 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_web/live/pack_live/form_component.ex:142
 | 
			
		||||
#, 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:1121
 | 
			
		||||
#: lib/cannery/ammo.ex:974
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invalid multiplier"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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,10 +44,10 @@ 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"
 | 
			
		||||
@@ -73,7 +73,7 @@ msgstr ""
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:181
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -128,13 +128,13 @@ msgstr "Passwort erfolgreich geändert."
 | 
			
		||||
msgid "Please check your email to verify your account"
 | 
			
		||||
msgstr "Bitte überprüfen Sie ihre Mailbox und bestätigen Sie das Nutzerkonto"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/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:354
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:47
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:383
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Saving..."
 | 
			
		||||
msgstr "Speichere..."
 | 
			
		||||
@@ -166,7 +166,7 @@ msgstr "%{tag_name} wurde von %{container_name} entfernt"
 | 
			
		||||
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"
 | 
			
		||||
@@ -177,7 +177,7 @@ msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr "Sind sie sicher, dass Sie diese Munition demarkieren möchten?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr "Sind sie sicher, dass sie die Schießkladde löschen möchten?"
 | 
			
		||||
@@ -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:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Creating..."
 | 
			
		||||
msgstr "Erstellen..."
 | 
			
		||||
@@ -245,19 +245,19 @@ 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:118
 | 
			
		||||
#, 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:177
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Ammo added successfully"
 | 
			
		||||
msgid_plural "Ammo added successfully"
 | 
			
		||||
msgstr[0] "Munitionsgruppe erfolgreich aktualisiert"
 | 
			
		||||
msgstr[1] "Munitionsgruppe erfolgreich aktualisiert"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:29
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
 | 
			
		||||
 
 | 
			
		||||
@@ -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:327
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:354
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Blank"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:191
 | 
			
		||||
#, 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:147
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:159
 | 
			
		||||
#, 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:121
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:132
 | 
			
		||||
#, 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:70
 | 
			
		||||
#, 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:53
 | 
			
		||||
#, 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:170
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:184
 | 
			
		||||
#, 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:67
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -96,7 +96,7 @@ msgid "Containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:331
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:358
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Corrosive"
 | 
			
		||||
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:39
 | 
			
		||||
#, 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:135
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:147
 | 
			
		||||
#, 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:111
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:122
 | 
			
		||||
#, 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:323
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:350
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Incendiary"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -180,14 +180,14 @@ msgstr ""
 | 
			
		||||
msgid "Invites"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:23
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:31
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
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:336
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:339
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:363
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:366
 | 
			
		||||
#, 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 ""
 | 
			
		||||
@@ -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:58
 | 
			
		||||
#: 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,13 +289,13 @@ 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:260
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:283
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Pressure"
 | 
			
		||||
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:299
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:324
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Primer type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -343,7 +343,7 @@ msgstr ""
 | 
			
		||||
msgid "Simple:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:167
 | 
			
		||||
#, 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:319
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -386,7 +386,7 @@ 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/container_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Type"
 | 
			
		||||
@@ -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 ""
 | 
			
		||||
@@ -420,6 +420,8 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -429,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 ""
 | 
			
		||||
@@ -453,13 +455,8 @@ msgstr ""
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "New Shot Records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -471,12 +468,6 @@ msgstr ""
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot Records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
@@ -494,9 +485,9 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:176
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:150
 | 
			
		||||
@@ -504,36 +495,36 @@ msgstr ""
 | 
			
		||||
msgid "$%{amount}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:163
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:177
 | 
			
		||||
#, 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:159
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:172
 | 
			
		||||
#, 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:282
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:307
 | 
			
		||||
#, 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:247
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:270
 | 
			
		||||
#, 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:239
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:261
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Powder type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:374
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "UPC"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -557,24 +548,24 @@ msgid "New password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:83
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:307
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:333
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Firing type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/layouts/live.html.heex:43
 | 
			
		||||
#: lib/cannery_web/components/layouts/app.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Reconnecting..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:116
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -586,9 +577,9 @@ msgstr ""
 | 
			
		||||
msgid "Rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:173
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:255
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No cost information"
 | 
			
		||||
@@ -651,11 +642,12 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:77
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Copies"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -757,7 +749,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 ""
 | 
			
		||||
@@ -768,13 +760,13 @@ msgid "Container:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:214
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
@@ -951,7 +943,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -991,13 +983,13 @@ msgstr ""
 | 
			
		||||
msgid "Last used on:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:194
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:199
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:50
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Purchased on"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1018,17 +1010,17 @@ msgstr ""
 | 
			
		||||
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 ""
 | 
			
		||||
@@ -1126,38 +1118,38 @@ msgid "Email"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:24
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:20
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:24
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:264
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:288
 | 
			
		||||
#, 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:78
 | 
			
		||||
#, 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:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "5.56x46mm NATO"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:303
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:329
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Boxer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:311
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:338
 | 
			
		||||
#, 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 ""
 | 
			
		||||
@@ -1195,19 +1187,19 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:35
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:316
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:343
 | 
			
		||||
#, 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:93
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Brass height"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1218,7 +1210,7 @@ msgid "Brass height:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:57
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:103
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Chamber size"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1228,13 +1220,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:49
 | 
			
		||||
#, 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:269
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:293
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Dram equivalent"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1245,7 +1237,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:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Gauge"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1256,7 +1248,7 @@ msgid "Gauge:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:210
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:231
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Load grains"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1278,41 +1270,41 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: 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/index.html.heex:38
 | 
			
		||||
#: 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:236
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:258
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Powder"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:296
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:321
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Primer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:90
 | 
			
		||||
#: 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/index.html.heex:36
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rifle"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:72
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:218
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:239
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot charge weight"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1323,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:194
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:213
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot material"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1334,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:203
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:223
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot size"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1345,7 +1337,7 @@ msgid "Shot size:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:68
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:186
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:204
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1357,21 +1349,21 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: 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/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shotgun"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:61
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:146
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:158
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Slug core"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:190
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:209
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Target, bird, buck, etc"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1382,13 +1374,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:83
 | 
			
		||||
#, 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:179
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:196
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Wadding"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1439,7 +1431,7 @@ msgid "New Type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:8
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No Types"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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 ""
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,7 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:38
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Forgot your password?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -72,7 +72,7 @@ msgstr ""
 | 
			
		||||
#: 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
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:28
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:36
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Log in"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -98,7 +98,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
 | 
			
		||||
#: 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:35
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Register"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -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:353
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:382
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Save"
 | 
			
		||||
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:85
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Create"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -288,23 +288,24 @@ msgstr ""
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:168
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:183
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:158
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
@@ -312,29 +313,29 @@ msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:152
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:122
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit %{type_name}"
 | 
			
		||||
@@ -345,7 +346,7 @@ msgstr ""
 | 
			
		||||
msgid "New Type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:91
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "View %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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:327
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:354
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Blank"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:191
 | 
			
		||||
#, 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:147
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:159
 | 
			
		||||
#, 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:121
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:132
 | 
			
		||||
#, 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:70
 | 
			
		||||
#, 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:53
 | 
			
		||||
#, 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:170
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:184
 | 
			
		||||
#, 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:67
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -96,7 +96,7 @@ msgid "Containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:331
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:358
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Corrosive"
 | 
			
		||||
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:39
 | 
			
		||||
#, 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:135
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:147
 | 
			
		||||
#, 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:111
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:122
 | 
			
		||||
#, 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:323
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:350
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Incendiary"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -180,14 +180,14 @@ msgstr ""
 | 
			
		||||
msgid "Invites"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:23
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:31
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
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:336
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:339
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:363
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:366
 | 
			
		||||
#, 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 ""
 | 
			
		||||
@@ -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:58
 | 
			
		||||
#: 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,13 +289,13 @@ 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:260
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:283
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Pressure"
 | 
			
		||||
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:299
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:324
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Primer type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -343,7 +343,7 @@ msgstr ""
 | 
			
		||||
msgid "Simple:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:167
 | 
			
		||||
#, 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:319
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -386,7 +386,7 @@ 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/container_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Type"
 | 
			
		||||
@@ -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 ""
 | 
			
		||||
@@ -420,6 +420,8 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -429,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 ""
 | 
			
		||||
@@ -453,13 +455,8 @@ msgstr ""
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "New Shot Records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -471,12 +468,6 @@ msgstr ""
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot Records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
@@ -494,9 +485,9 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:176
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:150
 | 
			
		||||
@@ -504,36 +495,36 @@ msgstr ""
 | 
			
		||||
msgid "$%{amount}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:163
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:177
 | 
			
		||||
#, 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:159
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:172
 | 
			
		||||
#, 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:282
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:307
 | 
			
		||||
#, 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:247
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:270
 | 
			
		||||
#, 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:239
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:261
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Powder type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:374
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "UPC"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -557,24 +548,24 @@ msgid "New password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:83
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:307
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:333
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Firing type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/layouts/live.html.heex:43
 | 
			
		||||
#: lib/cannery_web/components/layouts/app.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Reconnecting..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:116
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -586,9 +577,9 @@ msgstr ""
 | 
			
		||||
msgid "Rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:173
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:255
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No cost information"
 | 
			
		||||
@@ -651,11 +642,12 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
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:77
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Copies"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -757,7 +749,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 ""
 | 
			
		||||
@@ -768,13 +760,13 @@ msgid "Container:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:214
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
@@ -951,7 +943,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -991,13 +983,13 @@ msgstr ""
 | 
			
		||||
msgid "Last used on:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:194
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:199
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:50
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Purchased on"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1018,17 +1010,17 @@ msgstr ""
 | 
			
		||||
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 ""
 | 
			
		||||
@@ -1126,38 +1118,38 @@ msgid "Email"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:24
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:20
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:24
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:264
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:288
 | 
			
		||||
#, 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:78
 | 
			
		||||
#, 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:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "5.56x46mm NATO"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:303
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:329
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Boxer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:311
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:338
 | 
			
		||||
#, 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 ""
 | 
			
		||||
@@ -1195,19 +1187,19 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:35
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:316
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:343
 | 
			
		||||
#, 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:93
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Brass height"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1218,7 +1210,7 @@ msgid "Brass height:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:57
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:103
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Chamber size"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1228,13 +1220,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:49
 | 
			
		||||
#, 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:269
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:293
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Dram equivalent"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1245,7 +1237,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:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Gauge"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1256,7 +1248,7 @@ msgid "Gauge:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:210
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:231
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Load grains"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1278,41 +1270,41 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: 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/index.html.heex:38
 | 
			
		||||
#: 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:236
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:258
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Powder"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:296
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:321
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Primer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:90
 | 
			
		||||
#: 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/index.html.heex:36
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rifle"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:72
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:218
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:239
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot charge weight"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1323,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:194
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:213
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot material"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1334,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:203
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:223
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Shot size"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1345,7 +1337,7 @@ msgid "Shot size:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:68
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:186
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:204
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1357,21 +1349,21 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: 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/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shotgun"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:61
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:146
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:158
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Slug core"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:190
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:209
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Target, bird, buck, etc"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1382,13 +1374,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:83
 | 
			
		||||
#, 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:179
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:196
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Wadding"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1439,7 +1431,7 @@ msgid "New Type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:8
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No Types"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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 ""
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Language: en\n"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/containers.ex:220
 | 
			
		||||
#: lib/cannery/containers.ex:224
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -143,17 +143,17 @@ 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:152
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Could not parse number of copies"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:149
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:142
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo.ex:1121
 | 
			
		||||
#: lib/cannery/ammo.ex:974
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invalid multiplier"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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,10 +31,10 @@ 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 ""
 | 
			
		||||
@@ -58,7 +58,7 @@ msgstr ""
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:181
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -109,13 +109,13 @@ msgstr ""
 | 
			
		||||
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:354
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:47
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:383
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Saving..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -145,7 +145,7 @@ msgstr ""
 | 
			
		||||
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 ""
 | 
			
		||||
@@ -156,7 +156,7 @@ msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
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:86
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Creating..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -224,19 +224,19 @@ 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:118
 | 
			
		||||
#, 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:177
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Ammo added successfully"
 | 
			
		||||
msgid_plural "Ammo added successfully"
 | 
			
		||||
msgstr[0] ""
 | 
			
		||||
msgstr[1] ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:29
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/containers.ex:220
 | 
			
		||||
#: lib/cannery/containers.ex:224
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -142,17 +142,17 @@ 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:152
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Could not parse number of copies"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:149
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:142
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo.ex:1121
 | 
			
		||||
#: lib/cannery/ammo.ex:974
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invalid multiplier"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ msgstr "Eliminar cuenta de Usuario"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:38
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Forgot your password?"
 | 
			
		||||
msgstr "¿Has olvidado tu contraseña?"
 | 
			
		||||
@@ -85,7 +85,7 @@ msgstr "¡Invita a alguien nuevo!"
 | 
			
		||||
#: 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
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:28
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:36
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Log in"
 | 
			
		||||
msgstr "Entrar"
 | 
			
		||||
@@ -111,7 +111,7 @@ msgstr "Nueva Etiqueta"
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
 | 
			
		||||
#: 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:35
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Register"
 | 
			
		||||
msgstr "Registrarse"
 | 
			
		||||
@@ -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:353
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:382
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Save"
 | 
			
		||||
msgstr "Guardar"
 | 
			
		||||
@@ -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:85
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Create"
 | 
			
		||||
msgstr "Crear"
 | 
			
		||||
@@ -301,23 +301,24 @@ msgstr ""
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:168
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:183
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:158
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
@@ -325,29 +326,29 @@ msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:152
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:122
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit %{type_name}"
 | 
			
		||||
@@ -358,7 +359,7 @@ msgstr ""
 | 
			
		||||
msgid "New Type"
 | 
			
		||||
msgstr "Nuevo tipo de Munición"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:91
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "View %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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:327
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:354
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Blank"
 | 
			
		||||
msgstr "Fogueo"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:191
 | 
			
		||||
#, 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:147
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:159
 | 
			
		||||
#, 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:121
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:132
 | 
			
		||||
#, 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:70
 | 
			
		||||
#, 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:53
 | 
			
		||||
#, 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:170
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:184
 | 
			
		||||
#, 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:67
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container"
 | 
			
		||||
msgstr "Contenedor"
 | 
			
		||||
@@ -100,7 +100,7 @@ msgid "Containers"
 | 
			
		||||
msgstr "Contenedores"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:331
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:358
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Corrosive"
 | 
			
		||||
msgstr "Corrosiva"
 | 
			
		||||
@@ -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:39
 | 
			
		||||
#, 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:135
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:147
 | 
			
		||||
#, 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:111
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:122
 | 
			
		||||
#, 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:323
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:350
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Incendiary"
 | 
			
		||||
msgstr "Incendiaria"
 | 
			
		||||
@@ -184,14 +184,14 @@ msgstr "Solo Invitación"
 | 
			
		||||
msgid "Invites"
 | 
			
		||||
msgstr "Invitaciones"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:23
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:31
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
msgstr "Mantener registrado durante 60 días"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/components/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:336
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:339
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:363
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:366
 | 
			
		||||
#, 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"
 | 
			
		||||
@@ -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:58
 | 
			
		||||
#: 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,13 +293,13 @@ 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:260
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:283
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Pressure"
 | 
			
		||||
msgstr "Presión"
 | 
			
		||||
@@ -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:299
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:324
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Primer type"
 | 
			
		||||
msgstr "Tipo de espoleta"
 | 
			
		||||
@@ -349,7 +349,7 @@ msgstr "Ajustes"
 | 
			
		||||
msgid "Simple:"
 | 
			
		||||
msgstr "Simple:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:167
 | 
			
		||||
#, 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:319
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr "Trazadora"
 | 
			
		||||
@@ -393,7 +393,7 @@ 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/container_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Type"
 | 
			
		||||
@@ -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"
 | 
			
		||||
@@ -427,6 +427,8 @@ msgstr "Contenedor sin etiquetas"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr "Campo de tiro"
 | 
			
		||||
@@ -436,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"
 | 
			
		||||
@@ -460,13 +462,8 @@ msgstr "No hay munición preparada"
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr "Tiros récord"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "New Shot Records"
 | 
			
		||||
msgstr "Nuevos Tiros Récord"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr "No se han grabado tiros"
 | 
			
		||||
@@ -478,12 +475,6 @@ msgstr "No se han grabado tiros"
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr "Balas disparadas"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot Records"
 | 
			
		||||
msgstr "Récords de Tiro"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
@@ -501,9 +492,9 @@ msgstr "Registro de tiros"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:176
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:150
 | 
			
		||||
@@ -511,36 +502,36 @@ msgstr "Registro de tiros"
 | 
			
		||||
msgid "$%{amount}"
 | 
			
		||||
msgstr "$%{amount}"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:163
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:177
 | 
			
		||||
#, 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:159
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:172
 | 
			
		||||
#, 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:282
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:307
 | 
			
		||||
#, 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:247
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:270
 | 
			
		||||
#, 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:239
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:261
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Powder type"
 | 
			
		||||
msgstr "Tipo de polvora"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:374
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "UPC"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -564,24 +555,24 @@ 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:307
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:333
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Firing type"
 | 
			
		||||
msgstr "Tipo de fuego"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/layouts/live.html.heex:43
 | 
			
		||||
#: lib/cannery_web/components/layouts/app.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Reconnecting..."
 | 
			
		||||
msgstr "Reconectando..."
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:116
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr "Editar %{name}"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr "Editar etiquetas de %{name}"
 | 
			
		||||
@@ -593,9 +584,9 @@ msgstr "Editar etiquetas de %{name}"
 | 
			
		||||
msgid "Rounds:"
 | 
			
		||||
msgstr "Balas:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:173
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:255
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No cost information"
 | 
			
		||||
@@ -658,11 +649,12 @@ msgstr "Reestablecer contraseña"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:77
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Copies"
 | 
			
		||||
msgstr "Copias"
 | 
			
		||||
@@ -764,7 +756,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 ""
 | 
			
		||||
@@ -776,13 +768,13 @@ msgid "Container:"
 | 
			
		||||
msgstr "Contenedor:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr "Mostrar usadas"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:214
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
@@ -959,7 +951,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr "Vacio"
 | 
			
		||||
@@ -999,13 +991,13 @@ msgstr "Usada por última vez en"
 | 
			
		||||
msgid "Last used on:"
 | 
			
		||||
msgstr "Usada por última vez en:"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:194
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:199
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:50
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Purchased on"
 | 
			
		||||
msgstr "Comprada en"
 | 
			
		||||
@@ -1026,17 +1018,17 @@ msgstr "Editar munición"
 | 
			
		||||
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 ""
 | 
			
		||||
@@ -1145,38 +1137,38 @@ msgid "Email"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:24
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:20
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:24
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:264
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:288
 | 
			
		||||
#, 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:78
 | 
			
		||||
#, 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:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "5.56x46mm NATO"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:303
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:329
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Boxer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:311
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:338
 | 
			
		||||
#, 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 ""
 | 
			
		||||
@@ -1214,19 +1206,19 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:35
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:316
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:343
 | 
			
		||||
#, 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:93
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Brass height"
 | 
			
		||||
msgstr "Latón"
 | 
			
		||||
@@ -1237,7 +1229,7 @@ msgid "Brass height:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:57
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:103
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Chamber size"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1247,13 +1239,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:49
 | 
			
		||||
#, 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:269
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:293
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Dram equivalent"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1264,7 +1256,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:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Gauge"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1275,7 +1267,7 @@ msgid "Gauge:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:210
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:231
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Load grains"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1297,41 +1289,41 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: 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/index.html.heex:38
 | 
			
		||||
#: 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:236
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:258
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Powder"
 | 
			
		||||
msgstr "Tipo de polvora"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:296
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:321
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Primer"
 | 
			
		||||
msgstr "Tipo de espoleta"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:90
 | 
			
		||||
#: 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/index.html.heex:36
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rifle"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:72
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:218
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:239
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot charge weight"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1342,7 +1334,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:194
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:213
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot material"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1353,7 +1345,7 @@ msgid "Shot material:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:70
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:203
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:223
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Shot size"
 | 
			
		||||
msgstr "Tiros disparados"
 | 
			
		||||
@@ -1364,7 +1356,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:186
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:204
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1376,21 +1368,21 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: 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/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shotgun"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:61
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:146
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:158
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Slug core"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:190
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:209
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Target, bird, buck, etc"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1401,13 +1393,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:83
 | 
			
		||||
#, 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:179
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:196
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Wadding"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1458,7 +1450,7 @@ msgid "New Type"
 | 
			
		||||
msgstr "Nuevo tipo de Munición"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:8
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No Types"
 | 
			
		||||
msgstr "Tipo"
 | 
			
		||||
 
 | 
			
		||||
@@ -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}"
 | 
			
		||||
 
 | 
			
		||||
@@ -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:220
 | 
			
		||||
#: lib/cannery/containers.ex:224
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr "El contenedor debe estar vacío antes de ser borrado"
 | 
			
		||||
@@ -158,17 +158,17 @@ 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:152
 | 
			
		||||
#, 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_web/live/pack_live/form_component.ex:142
 | 
			
		||||
#, 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:1121
 | 
			
		||||
#: lib/cannery/ammo.ex:974
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invalid multiplier"
 | 
			
		||||
msgstr "Multiplicador inválido"
 | 
			
		||||
 
 | 
			
		||||
@@ -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,10 +44,10 @@ 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"
 | 
			
		||||
@@ -73,7 +73,7 @@ msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!"
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr "Está seguro que desea eliminar %{name}?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:181
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -128,13 +128,13 @@ msgstr "Contraseña cambiada exitosamente."
 | 
			
		||||
msgid "Please check your email to verify your account"
 | 
			
		||||
msgstr "Por favor chequea el correo para verificar tu cuenta"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/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:354
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:47
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:383
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Saving..."
 | 
			
		||||
msgstr "Guardando..."
 | 
			
		||||
@@ -165,7 +165,7 @@ msgstr "se ha removido %{tag_name} de %{container_name}"
 | 
			
		||||
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"
 | 
			
		||||
@@ -176,7 +176,7 @@ msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr "Está seguro que desea desmontar esta munición?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr "¿Está segure que quiere borrar este récord de disparos?"
 | 
			
		||||
@@ -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:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Creating..."
 | 
			
		||||
msgstr "Creando..."
 | 
			
		||||
@@ -244,19 +244,19 @@ 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:118
 | 
			
		||||
#, 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:177
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo added successfully"
 | 
			
		||||
msgid_plural "Ammo added successfully"
 | 
			
		||||
msgstr[0] "Munición añadida exitosamente"
 | 
			
		||||
msgstr[1] "Municiones añadidas exitosamente"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:29
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ msgstr "Supprimer utilisateur"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:38
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Forgot your password?"
 | 
			
		||||
msgstr "Mot de passe oublié ?"
 | 
			
		||||
@@ -85,7 +85,7 @@ msgstr "Invitez une nouvelle personne !"
 | 
			
		||||
#: 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
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:28
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:36
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Log in"
 | 
			
		||||
msgstr "Se connecter"
 | 
			
		||||
@@ -111,7 +111,7 @@ msgstr "Nouveau tag"
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
 | 
			
		||||
#: 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:35
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Register"
 | 
			
		||||
msgstr "S’enregistrer"
 | 
			
		||||
@@ -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:353
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:382
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Save"
 | 
			
		||||
msgstr "Sauvegarder"
 | 
			
		||||
@@ -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:85
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Create"
 | 
			
		||||
msgstr "Créer"
 | 
			
		||||
@@ -301,23 +301,24 @@ msgstr ""
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:168
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:183
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:158
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
@@ -325,29 +326,29 @@ msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:152
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:122
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit %{type_name}"
 | 
			
		||||
@@ -358,7 +359,7 @@ msgstr ""
 | 
			
		||||
msgid "New Type"
 | 
			
		||||
msgstr "Nouveau type de munition"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:91
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "View %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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:327
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:354
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Blank"
 | 
			
		||||
msgstr "Vide"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:191
 | 
			
		||||
#, 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:147
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:159
 | 
			
		||||
#, 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:121
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:132
 | 
			
		||||
#, 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:70
 | 
			
		||||
#, 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:53
 | 
			
		||||
#, 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:170
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:184
 | 
			
		||||
#, 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:67
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container"
 | 
			
		||||
msgstr "Conteneur"
 | 
			
		||||
@@ -100,7 +100,7 @@ msgid "Containers"
 | 
			
		||||
msgstr "Conteneurs"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:331
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:358
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Corrosive"
 | 
			
		||||
msgstr "Corrosive"
 | 
			
		||||
@@ -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:39
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Description"
 | 
			
		||||
msgstr "Description"
 | 
			
		||||
@@ -145,19 +145,19 @@ msgstr "Modifier l’invitation"
 | 
			
		||||
msgid "Edit Tag"
 | 
			
		||||
msgstr "Modifier le tag"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:147
 | 
			
		||||
#, 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:111
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:122
 | 
			
		||||
#, 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:323
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:350
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Incendiary"
 | 
			
		||||
msgstr "Incendiaire"
 | 
			
		||||
@@ -184,14 +184,14 @@ msgstr "Uniquement sur invitation"
 | 
			
		||||
msgid "Invites"
 | 
			
		||||
msgstr "Invitations"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:23
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:31
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
msgstr "Me garder authentifié durant 60 jours"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/container_table_component.ex:47
 | 
			
		||||
#: lib/cannery_web/components/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:336
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:339
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:363
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:366
 | 
			
		||||
#, 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 d’animation"
 | 
			
		||||
 | 
			
		||||
#: 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"
 | 
			
		||||
@@ -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:58
 | 
			
		||||
#: 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,13 +293,13 @@ 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:260
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:283
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Pressure"
 | 
			
		||||
msgstr "Pression"
 | 
			
		||||
@@ -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:299
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:324
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Primer type"
 | 
			
		||||
msgstr "Type d’amorce"
 | 
			
		||||
@@ -349,7 +349,7 @@ msgstr "Paramètres"
 | 
			
		||||
msgid "Simple:"
 | 
			
		||||
msgstr "Simple :"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:167
 | 
			
		||||
#, 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 d’arme à feux auto-hébergé"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:84
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:319
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr "Traceuse"
 | 
			
		||||
@@ -394,7 +394,7 @@ 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/container_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "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"
 | 
			
		||||
@@ -428,6 +428,8 @@ msgstr "Aucun tag pour ce conteneur"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr "Portée"
 | 
			
		||||
@@ -437,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"
 | 
			
		||||
@@ -461,13 +463,8 @@ msgstr "Aucune munition sélectionnée"
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr "Tirs enregistrés"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "New Shot Records"
 | 
			
		||||
msgstr "Nouveaux enregistrements de tir"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr "Aucun tir enregistré"
 | 
			
		||||
@@ -479,12 +476,6 @@ msgstr "Aucun tir enregistré"
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr "Cartouches tirées"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot Records"
 | 
			
		||||
msgstr "Enregistrements de tir"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
@@ -502,9 +493,9 @@ msgstr "Évènements de tir"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:176
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:150
 | 
			
		||||
@@ -512,36 +503,36 @@ msgstr "Évènements de tir"
 | 
			
		||||
msgid "$%{amount}"
 | 
			
		||||
msgstr "%{amount} $"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:163
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:177
 | 
			
		||||
#, 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:159
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:172
 | 
			
		||||
#, 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:282
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:307
 | 
			
		||||
#, 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:247
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:270
 | 
			
		||||
#, 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:239
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:261
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Powder type"
 | 
			
		||||
msgstr "Type de poudre"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:374
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "UPC"
 | 
			
		||||
msgstr "UPC"
 | 
			
		||||
@@ -565,24 +556,24 @@ 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:307
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:333
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Firing type"
 | 
			
		||||
msgstr "Type d’allumage"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/layouts/live.html.heex:43
 | 
			
		||||
#: lib/cannery_web/components/layouts/app.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Reconnecting..."
 | 
			
		||||
msgstr "Reconnexion en cours…"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:116
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr "Éditer %{name}"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr "Éditer les tags de %{name}"
 | 
			
		||||
@@ -594,9 +585,9 @@ msgstr "Éditer les tags de %{name}"
 | 
			
		||||
msgid "Rounds:"
 | 
			
		||||
msgstr "Cartouches :"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:173
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:255
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No cost information"
 | 
			
		||||
@@ -659,11 +650,12 @@ msgstr "Réinitialiser votre mot de passe"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:77
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Copies"
 | 
			
		||||
msgstr "Exemplaires"
 | 
			
		||||
@@ -765,7 +757,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 ""
 | 
			
		||||
@@ -777,13 +769,13 @@ msgid "Container:"
 | 
			
		||||
msgstr "Conteneur"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:214
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
@@ -960,7 +952,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1000,13 +992,13 @@ msgstr ""
 | 
			
		||||
msgid "Last used on:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:194
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:199
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:50
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Purchased on"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1027,17 +1019,17 @@ msgstr "Éditer le type de munition"
 | 
			
		||||
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 ""
 | 
			
		||||
@@ -1146,38 +1138,38 @@ msgid "Email"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:24
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:20
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:24
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:264
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:288
 | 
			
		||||
#, 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:78
 | 
			
		||||
#, 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:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "5.56x46mm NATO"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:303
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:329
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Boxer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:311
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:338
 | 
			
		||||
#, 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 ""
 | 
			
		||||
@@ -1215,19 +1207,19 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:35
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:316
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:343
 | 
			
		||||
#, 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:93
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Brass height"
 | 
			
		||||
msgstr "Cuivre"
 | 
			
		||||
@@ -1238,7 +1230,7 @@ msgid "Brass height:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:57
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:103
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Chamber size"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1248,13 +1240,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:49
 | 
			
		||||
#, 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:269
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:293
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Dram equivalent"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1265,7 +1257,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:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Gauge"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1276,7 +1268,7 @@ msgid "Gauge:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:210
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:231
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Load grains"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1298,41 +1290,41 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: 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/index.html.heex:38
 | 
			
		||||
#: 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:236
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:258
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Powder"
 | 
			
		||||
msgstr "Type de poudre"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:296
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:321
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Primer"
 | 
			
		||||
msgstr "Type d’amorce"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:90
 | 
			
		||||
#: 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/index.html.heex:36
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rifle"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:72
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:218
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:239
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot charge weight"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1343,7 +1335,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:194
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:213
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot material"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1354,7 +1346,7 @@ msgid "Shot material:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:70
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:203
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:223
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Shot size"
 | 
			
		||||
msgstr "Tirs réalisés"
 | 
			
		||||
@@ -1365,7 +1357,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:186
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:204
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1377,21 +1369,21 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: 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/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shotgun"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:61
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:146
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:158
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Slug core"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:190
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:209
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Target, bird, buck, etc"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1402,13 +1394,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:83
 | 
			
		||||
#, 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:179
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:196
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Wadding"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1459,7 +1451,7 @@ msgid "New Type"
 | 
			
		||||
msgstr "Nouveau type de munition"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:8
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No Types"
 | 
			
		||||
msgstr "Type"
 | 
			
		||||
 
 | 
			
		||||
@@ -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 n’avez 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 d’arme à 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}"
 | 
			
		||||
 
 | 
			
		||||
@@ -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:220
 | 
			
		||||
#: lib/cannery/containers.ex:224
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr "Le conteneur doit être vide pour être supprimé"
 | 
			
		||||
@@ -159,17 +159,17 @@ msgstr ""
 | 
			
		||||
msgid "Tag could not be removed"
 | 
			
		||||
msgstr "Le tag n’a pas pu être retiré"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:159
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:152
 | 
			
		||||
#, 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_web/live/pack_live/form_component.ex:142
 | 
			
		||||
#, 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:1121
 | 
			
		||||
#: lib/cannery/ammo.ex:974
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invalid multiplier"
 | 
			
		||||
msgstr "Multiplicateur invalide"
 | 
			
		||||
 
 | 
			
		||||
@@ -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,10 +44,10 @@ 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"
 | 
			
		||||
@@ -74,7 +74,7 @@ msgstr ""
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr "Êtes-vous certain·e de supprimer %{name} ?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:181
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -129,13 +129,13 @@ msgstr "Mot de passe mis à jour avec succès."
 | 
			
		||||
msgid "Please check your email to verify your account"
 | 
			
		||||
msgstr "Veuillez vérifier votre mél pour confirmer votre compte"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/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:354
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:47
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:383
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Saving..."
 | 
			
		||||
msgstr "Sauvegarde en cours…"
 | 
			
		||||
@@ -167,7 +167,7 @@ msgstr "%{tag_name} a été retiré de %{container_name}"
 | 
			
		||||
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"
 | 
			
		||||
@@ -178,7 +178,7 @@ msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition ?"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir ?"
 | 
			
		||||
@@ -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:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Creating..."
 | 
			
		||||
msgstr "Création en cours…"
 | 
			
		||||
@@ -246,19 +246,19 @@ 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:118
 | 
			
		||||
#, 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:177
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Ammo added successfully"
 | 
			
		||||
msgid_plural "Ammo added successfully"
 | 
			
		||||
msgstr[0] "Groupe de munition mis à jour avec succès"
 | 
			
		||||
msgstr[1] "Groupe de munition mis à jour avec succès"
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:29
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:38
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:46
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Forgot your password?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -83,7 +83,7 @@ msgstr ""
 | 
			
		||||
#: 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
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:28
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:36
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Log in"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -109,7 +109,7 @@ msgstr ""
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:37
 | 
			
		||||
#: 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:35
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Register"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -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:353
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:382
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Save"
 | 
			
		||||
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:85
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Create"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -299,23 +299,24 @@ msgstr ""
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:168
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:183
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:158
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
@@ -323,29 +324,29 @@ msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:152
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:105
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Clone %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:122
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Delete %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Edit %{type_name}"
 | 
			
		||||
@@ -356,7 +357,7 @@ msgstr ""
 | 
			
		||||
msgid "New Type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:91
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "View %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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:327
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:354
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Blank"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:174
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:191
 | 
			
		||||
#, 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:147
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:159
 | 
			
		||||
#, 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:121
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:132
 | 
			
		||||
#, 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:70
 | 
			
		||||
#, 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:53
 | 
			
		||||
#, 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:170
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:184
 | 
			
		||||
#, 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:67
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -98,7 +98,7 @@ msgid "Containers"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:331
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:358
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Corrosive"
 | 
			
		||||
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:39
 | 
			
		||||
#, 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:135
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:147
 | 
			
		||||
#, 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:111
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:122
 | 
			
		||||
#, 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:323
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:350
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Incendiary"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -182,14 +182,14 @@ msgstr ""
 | 
			
		||||
msgid "Invites"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:23
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:31
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Keep me logged in for 60 days"
 | 
			
		||||
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:336
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:339
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:363
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:366
 | 
			
		||||
#, 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 ""
 | 
			
		||||
@@ -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:58
 | 
			
		||||
#: 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,13 +291,13 @@ 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:260
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:283
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Pressure"
 | 
			
		||||
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:299
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:324
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Primer type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -345,7 +345,7 @@ msgstr ""
 | 
			
		||||
msgid "Simple:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:154
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:167
 | 
			
		||||
#, 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:319
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tracer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -388,7 +388,7 @@ 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/container_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:22
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Type"
 | 
			
		||||
@@ -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 ""
 | 
			
		||||
@@ -422,6 +422,8 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:48
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:80
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -431,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 ""
 | 
			
		||||
@@ -455,13 +457,8 @@ msgstr ""
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "New Shot Records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:52
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:119
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:121
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No shots recorded"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -473,12 +470,6 @@ msgstr ""
 | 
			
		||||
msgid "Rounds shot"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:55
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot Records"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
@@ -496,9 +487,9 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:42
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:47
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:176
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:181
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:264
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:273
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:42
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:150
 | 
			
		||||
@@ -506,36 +497,36 @@ msgstr ""
 | 
			
		||||
msgid "$%{amount}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:163
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:177
 | 
			
		||||
#, 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:159
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:172
 | 
			
		||||
#, 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:282
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:307
 | 
			
		||||
#, 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:247
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:270
 | 
			
		||||
#, 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:239
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:261
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Powder type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:346
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:374
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "UPC"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -559,24 +550,24 @@ msgid "New password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:83
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:307
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:333
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Firing type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/layouts/live.html.heex:43
 | 
			
		||||
#: lib/cannery_web/components/layouts/app.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Reconnecting..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:28
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:116
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:118
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:63
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:117
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{name} tags"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -588,9 +579,9 @@ msgstr ""
 | 
			
		||||
msgid "Rounds:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:173
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:255
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:259
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:178
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:260
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:272
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "No cost information"
 | 
			
		||||
@@ -653,11 +644,12 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:40
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:31
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:47
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:77
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Copies"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -759,7 +751,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 ""
 | 
			
		||||
@@ -770,13 +762,13 @@ msgid "Container:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:64
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:66
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:164
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Show used"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:214
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:219
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{percentage}%"
 | 
			
		||||
@@ -953,7 +945,7 @@ msgid "Average CPR"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/pack_card.html.heex:17
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:263
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:268
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Empty"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -993,13 +985,13 @@ msgstr ""
 | 
			
		||||
msgid "Last used on:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:194
 | 
			
		||||
#: lib/cannery_web/components/pack_table_component.ex:199
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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:50
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Purchased on"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1020,17 +1012,17 @@ msgstr ""
 | 
			
		||||
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 ""
 | 
			
		||||
@@ -1137,38 +1129,38 @@ msgid "Email"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:24
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:20
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:24
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:264
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:288
 | 
			
		||||
#, 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:78
 | 
			
		||||
#, 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:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "5.56x46mm NATO"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:303
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:329
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Boxer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:311
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:338
 | 
			
		||||
#, 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 ""
 | 
			
		||||
@@ -1206,19 +1198,19 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:97
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:58
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:89
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:35
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:316
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:343
 | 
			
		||||
#, 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:93
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Brass height"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1229,7 +1221,7 @@ msgid "Brass height:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:57
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:95
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:103
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Chamber size"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1239,13 +1231,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:49
 | 
			
		||||
#, 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:269
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:293
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Dram equivalent"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1256,7 +1248,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:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Gauge"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1267,7 +1259,7 @@ msgid "Gauge:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:210
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:231
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Load grains"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1289,41 +1281,41 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:100
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:92
 | 
			
		||||
#: 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/index.html.heex:38
 | 
			
		||||
#: 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:236
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:258
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Powder"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:296
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:321
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Primer"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:108
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Projectile"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:98
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:90
 | 
			
		||||
#: 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/index.html.heex:36
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Rifle"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:72
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:218
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:239
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot charge weight"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1334,7 +1326,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:194
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:213
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot material"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1345,7 +1337,7 @@ msgid "Shot material:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:70
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:203
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:223
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "Shot size"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1356,7 +1348,7 @@ msgid "Shot size:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:68
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:186
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:204
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1368,21 +1360,21 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:60
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:91
 | 
			
		||||
#: 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/index.html.heex:37
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:39
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:52
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shotgun"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/type_table_component.ex:61
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:146
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:158
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Slug core"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:190
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:209
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Target, bird, buck, etc"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1393,13 +1385,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:83
 | 
			
		||||
#, 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:179
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:196
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Wadding"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -1450,7 +1442,7 @@ msgid "New Type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:8
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:71
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:73
 | 
			
		||||
#, elixir-autogen, elixir-format, fuzzy
 | 
			
		||||
msgid "No Types"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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:220
 | 
			
		||||
#: lib/cannery/containers.ex:224
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh"
 | 
			
		||||
@@ -158,17 +158,17 @@ 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:152
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Could not parse number of copies"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:149
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:142
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/ammo.ex:1121
 | 
			
		||||
#: lib/cannery/ammo.ex:974
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invalid multiplier"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -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,10 +42,10 @@ 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 ""
 | 
			
		||||
@@ -69,7 +69,7 @@ msgstr ""
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:181
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
@@ -120,13 +120,13 @@ msgstr ""
 | 
			
		||||
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:354
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:47
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:383
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Saving..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -156,7 +156,7 @@ msgstr ""
 | 
			
		||||
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 ""
 | 
			
		||||
@@ -167,7 +167,7 @@ msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:149
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
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:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Creating..."
 | 
			
		||||
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:118
 | 
			
		||||
#, 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:177
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo added successfully"
 | 
			
		||||
msgid_plural "Ammo added successfully"
 | 
			
		||||
@@ -250,7 +250,7 @@ msgstr[2] ""
 | 
			
		||||
msgstr[3] ""
 | 
			
		||||
msgstr[4] ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:116
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:29
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										368
									
								
								priv/gettext/it/LC_MESSAGES/actions.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										368
									
								
								priv/gettext/it/LC_MESSAGES/actions.po
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,368 @@
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2023-11-20 05:05+0000\n"
 | 
			
		||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
			
		||||
"Last-Translator: Automatically generated\n"
 | 
			
		||||
"Language-Team: none\n"
 | 
			
		||||
"Language: it\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"X-Generator: Translate Toolkit 3.10.1\n"
 | 
			
		||||
 | 
			
		||||
## This file is a PO Template file.
 | 
			
		||||
##
 | 
			
		||||
## "msgid"s here are often extracted from source code.
 | 
			
		||||
## Add new translations manually only if they're dynamic
 | 
			
		||||
## translations that can't be statically extracted.
 | 
			
		||||
##
 | 
			
		||||
## Run "mix gettext.extract" to bring this file up to
 | 
			
		||||
## date. Leave "msgstr"s empty as changing them here has no
 | 
			
		||||
## effect: edit them in PO (.po) files instead.
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:59
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:67
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:38
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Add Ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Add your first box!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Add your first container!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Add your first type!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:15
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Change email"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:57
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:97
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Change password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Create Invite"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:155
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete User"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:47
 | 
			
		||||
#: 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
 | 
			
		||||
msgid "Forgot your password?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invite someone new!"
 | 
			
		||||
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_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
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_html/new.html.heex:36
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Log in"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:15
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Make your first tag!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "New Container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "New Tag"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/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_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
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Register"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:3
 | 
			
		||||
#: lib/cannery_web/controllers/user_confirmation_html/new.html.heex:16
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Resend confirmation instructions"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:3
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:29
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Reset password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:57
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:38
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:92
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:41
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:382
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Save"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:16
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Send instructions to reset password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not add one?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:51
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Add"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Why not get some ready to shoot?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:127
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:90
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:42
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Record shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:87
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Add another container!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:123
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Select"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:38
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Copy to clipboard"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:14
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "add a container first"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:85
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Create"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:110
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Change Language"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:136
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Change language"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:52
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View in Catalog"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:77
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:138
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Move ammo"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:90
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Set Unlimited"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:82
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:38
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage for range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:81
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage from range"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:146
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Export Data as JSON"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:87
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:145
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Copy invite link for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:104
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:162
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:48
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{tag_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:63
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:77
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:135
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:52
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{tag_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:46
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit invite for %{invite_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:120
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Stage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:65
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:124
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unstage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:172
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:187
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:71
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:160
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:59
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:139
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:148
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:201
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View pack of %{pack_count} bullets"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:159
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:154
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:144
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:137
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit shot record of %{shot_record_count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:107
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Clone %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:124
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:35
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Delete %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:19
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Edit %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "New Type"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:91
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "View %{type_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:24
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "add a type first"
 | 
			
		||||
msgstr ""
 | 
			
		||||
							
								
								
									
										1459
									
								
								priv/gettext/it/LC_MESSAGES/default.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1459
									
								
								priv/gettext/it/LC_MESSAGES/default.po
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										103
									
								
								priv/gettext/it/LC_MESSAGES/emails.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								priv/gettext/it/LC_MESSAGES/emails.po
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,103 @@
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2023-11-20 05:05+0000\n"
 | 
			
		||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
			
		||||
"Last-Translator: Automatically generated\n"
 | 
			
		||||
"Language-Team: none\n"
 | 
			
		||||
"Language: it\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"X-Generator: Translate Toolkit 3.10.1\n"
 | 
			
		||||
 | 
			
		||||
## This file is a PO Template file.
 | 
			
		||||
##
 | 
			
		||||
## "msgid"s here are often extracted from source code.
 | 
			
		||||
## Add new translations manually only if they're dynamic
 | 
			
		||||
## translations that can't be statically extracted.
 | 
			
		||||
##
 | 
			
		||||
## Run "mix gettext.extract" to bring this file up to
 | 
			
		||||
## date. Leave "msgstr"s empty as changing them here has no
 | 
			
		||||
## effect: edit them in PO (.po) files instead.
 | 
			
		||||
#: lib/cannery_web/components/email_html/confirm_email.html.heex:3
 | 
			
		||||
#: lib/cannery_web/components/email_html/confirm_email.txt.eex:2
 | 
			
		||||
#: lib/cannery_web/components/email_html/reset_password.html.heex:3
 | 
			
		||||
#: lib/cannery_web/components/email_html/reset_password.txt.eex:2
 | 
			
		||||
#: lib/cannery_web/components/email_html/update_email.html.heex:3
 | 
			
		||||
#: lib/cannery_web/components/email_html/update_email.txt.eex:2
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Hi %{email},"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/email_html/confirm_email.txt.eex:10
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "If you didn't create an account at %{url}, please ignore this."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/email_html/reset_password.txt.eex:8
 | 
			
		||||
#: lib/cannery_web/components/email_html/update_email.txt.eex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "If you didn't request this change from %{url}, please ignore this."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/email_html/update_email.html.heex:8
 | 
			
		||||
#: lib/cannery_web/components/email_html/update_email.txt.eex:4
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "You can change your email by visiting the URL below:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/email_html/confirm_email.html.heex:14
 | 
			
		||||
#: lib/cannery_web/components/email_html/confirm_email.txt.eex:6
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "You can confirm your account by visiting the URL below:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/email_html/reset_password.html.heex:8
 | 
			
		||||
#: lib/cannery_web/components/email_html/reset_password.txt.eex:4
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "You can reset your password by visiting the URL below:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/email.ex:31
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Confirm your Cannery account"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/email_html/confirm_email.html.heex:22
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "If you didn't create an account at Cannery, please ignore this."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/email_html/reset_password.html.heex:16
 | 
			
		||||
#: lib/cannery_web/components/email_html/update_email.html.heex:16
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "If you didn't request this change from Cannery, please ignore this."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/email.ex:38
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Reset your Cannery password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/layouts/email_text.txt.eex:9
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "This email was sent from Cannery at %{url}, the self-hosted firearm tracker website."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/layouts/email_html.html.heex:13
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "This email was sent from Cannery, the self-hosted firearm tracker website."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/email.ex:45
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Update your Cannery email"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/email_html/confirm_email.html.heex:9
 | 
			
		||||
#: lib/cannery_web/components/email_html/confirm_email.txt.eex:4
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Welcome to Cannery"
 | 
			
		||||
msgstr ""
 | 
			
		||||
							
								
								
									
										220
									
								
								priv/gettext/it/LC_MESSAGES/errors.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										220
									
								
								priv/gettext/it/LC_MESSAGES/errors.po
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,220 @@
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2023-11-20 05:05+0000\n"
 | 
			
		||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
			
		||||
"Last-Translator: Automatically generated\n"
 | 
			
		||||
"Language-Team: none\n"
 | 
			
		||||
"Language: it\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"X-Generator: Translate Toolkit 3.10.1\n"
 | 
			
		||||
 | 
			
		||||
## This file is a PO Template file.
 | 
			
		||||
##
 | 
			
		||||
## "msgid"s here are often extracted from source code.
 | 
			
		||||
## Add new translations manually only if they're dynamic
 | 
			
		||||
## translations that can't be statically extracted.
 | 
			
		||||
##
 | 
			
		||||
## Run "mix gettext.extract" to bring this file up to
 | 
			
		||||
## date. Leave "msgstr"s empty as changing them here has no
 | 
			
		||||
## effect: edit them in PO (.po) files instead.
 | 
			
		||||
#: lib/cannery/containers.ex:224
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Container must be empty before deleting"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:86
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:67
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Could not delete %{name}: %{error}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:74
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Could not find that container"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_controller.ex:84
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Email change link is invalid or it has expired."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/error_html/error.html.heex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Error"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/error_html/error.html.heex:28
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Go back home"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_controller.ex:17
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Invalid email or password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/error_html.ex:9
 | 
			
		||||
#: lib/cannery_web/controllers/error_json.ex:7
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Not found"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_html/new.html.heex:13
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_html/edit.html.heex:13
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:22
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:64
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:18
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Oops, something went wrong! Please check the errors below."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_controller.ex:62
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
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
 | 
			
		||||
#, 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
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Sorry, this invite was not found or expired"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_controller.ex:99
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unable to delete user"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/error_html.ex:10
 | 
			
		||||
#: lib/cannery_web/controllers/error_json.ex:8
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Unauthorized"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_confirmation_controller.ex:53
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "User confirmation link is invalid or it has expired."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_auth.ex:266
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "You are not authorized to view this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/accounts/user.ex:145
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "did not change"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/accounts/user.ex:166
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "does not match password"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/accounts/user.ex:203
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "is not valid"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/accounts/user.ex:100
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "must have the @ sign and no spaces"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:45
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag not found"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/edit_tags_component.ex:46
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag could not be added"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_auth.ex:38
 | 
			
		||||
#: lib/cannery_web/controllers/user_auth.ex:250
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "You must confirm your account and log in to access this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/edit_tags_component.ex:73
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Tag could not be removed"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:152
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Could not parse number of copies"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:142
 | 
			
		||||
#, 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
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Please select a valid user and ammo pack"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/activity_log/shot_record.ex:88
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo left can be at most %{count} rounds"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/activity_log/shot_record.ex:84
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo left must be at least 0"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/activity_log/shot_record.ex:119
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Count can be at most %{count} shots"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery/activity_log/shot_record.ex:80
 | 
			
		||||
#, 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
 | 
			
		||||
msgid "Internal server error"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_auth.ex:195
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "You must log in as an administrator to access this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_auth.ex:178
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "You must log in to access this page."
 | 
			
		||||
msgstr ""
 | 
			
		||||
							
								
								
									
										294
									
								
								priv/gettext/it/LC_MESSAGES/prompts.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										294
									
								
								priv/gettext/it/LC_MESSAGES/prompts.po
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,294 @@
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2023-11-20 05:05+0000\n"
 | 
			
		||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
			
		||||
"Last-Translator: Automatically generated\n"
 | 
			
		||||
"Language-Team: none\n"
 | 
			
		||||
"Language: it\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"X-Generator: Translate Toolkit 3.10.1\n"
 | 
			
		||||
 | 
			
		||||
## This file is a PO Template file.
 | 
			
		||||
##
 | 
			
		||||
## "msgid"s here are often extracted from source code.
 | 
			
		||||
## Add new translations manually only if they're dynamic
 | 
			
		||||
## translations that can't be statically extracted.
 | 
			
		||||
##
 | 
			
		||||
## Run "mix gettext.extract" to bring this file up to
 | 
			
		||||
## date. Leave "msgstr"s empty as changing them here has no
 | 
			
		||||
## effect: edit them in PO (.po) files instead.
 | 
			
		||||
#: lib/cannery_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 ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.ex:65
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.ex:72
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.ex:26
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{name} deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.ex:79
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:60
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{name} has been deleted"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: 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
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "A link to confirm your email change has been sent to the new address."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:110
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{email}? This action is permanent!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:99
 | 
			
		||||
#: lib/cannery_web/live/container_live/index.html.heex:157
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.html.heex:45
 | 
			
		||||
#: lib/cannery_web/live/tag_live/index.html.heex:63
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:185
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.html.heex:69
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this ammo?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:153
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete your account?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/core_components/topbar.html.heex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to log out?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_controller.ex:77
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Email changed successfully."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_controller.ex:24
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "If your email is in our system, you will receive instructions to reset your password shortly."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_session_controller.ex:23
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Logged out successfully."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_reset_password_controller.ex:45
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Password reset successfully."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_controller.ex:49
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Password updated successfully."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_registration_controller.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Please check your email to verify your account"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.html.heex:59
 | 
			
		||||
#: lib/cannery_web/live/container_live/form_component.html.heex:61
 | 
			
		||||
#: lib/cannery_web/live/invite_live/form_component.html.heex:40
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:93
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.html.heex:47
 | 
			
		||||
#: lib/cannery_web/live/tag_live/form_component.html.heex:43
 | 
			
		||||
#: lib/cannery_web/live/type_live/form_component.html.heex:383
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Saving..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_controller.ex:95
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Your account has been deleted"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:16
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/edit_tags_component.ex:51
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{name} added successfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/show.ex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{tag_name} has been removed from %{container_name}"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:53
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Adding..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/add_shot_record_component.ex:62
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shots recorded successfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:34
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to unstage this ammo?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:157
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.html.heex:151
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete this shot record?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:79
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:78
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot records deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/form_component.ex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Shot records updated successfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_confirmation_controller.ex:37
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{email} confirmed successfully."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/components/move_pack_component.ex:51
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo moved to %{name} successfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:116
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Copied to clipboard"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/container_live/edit_tags_component.ex:78
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{name} removed successfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:10
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.html.heex:20
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "You'll need to"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.html.heex:86
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Creating..."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_html/edit.html.heex:138
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to change your language?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/controllers/user_settings_controller.ex:65
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Language updated successfully."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/index.ex:94
 | 
			
		||||
#: lib/cannery_web/live/pack_live/show.ex:54
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/range_live/index.ex:91
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo unstaged succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:118
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo updated successfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/pack_live/form_component.ex:177
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Ammo added successfully"
 | 
			
		||||
msgid_plural "Ammo added successfully"
 | 
			
		||||
msgstr[0] ""
 | 
			
		||||
msgstr[1] ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/type_live/index.html.heex:118
 | 
			
		||||
#: lib/cannery_web/live/type_live/show.html.heex:29
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/home_live.html.heex:63
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Register to setup Cannery"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:43
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{invite_name} deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:104
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{invite_name} disabled succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:80
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{invite_name} enabled succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{invite_name} updated succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.ex:125
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "%{user_email} deleted succesfully"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:58
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to delete the invite for %{invite_name}?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: lib/cannery_web/live/invite_live/index.html.heex:85
 | 
			
		||||
#, elixir-autogen, elixir-format
 | 
			
		||||
msgid "Are you sure you want to make %{invite_name} unlimited?"
 | 
			
		||||
msgstr ""
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user