Compare commits
	
		
			29 Commits
		
	
	
		
			0.9.5
			...
			202b70dc66
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | 
| @@ -17,7 +17,7 @@ steps: | |||||||
|       - .mix |       - .mix | ||||||
|  |  | ||||||
| - name: test | - name: test | ||||||
|   image: elixir:1.15.4-alpine |   image: elixir:1.17.0-otp-27-alpine | ||||||
|   environment: |   environment: | ||||||
|     TEST_DATABASE_URL: ecto://postgres:postgres@database/cannery_test |     TEST_DATABASE_URL: ecto://postgres:postgres@database/cannery_test | ||||||
|     HOST: testing.example.tld |     HOST: testing.example.tld | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| elixir 1.15.4-otp-26 | elixir 1.17.0-otp-27 | ||||||
| erlang 26.0.2 | erlang 27.0 | ||||||
| nodejs 20.6.0 | nodejs 22.3.0 | ||||||
|   | |||||||
							
								
								
									
										21
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -1,3 +1,24 @@ | |||||||
|  | # 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 | # v0.9.5 | ||||||
| - Update dependencies | - Update dependencies | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| FROM elixir:1.15.4-alpine AS build | FROM elixir:1.17.0-otp-27-alpine AS build | ||||||
|  |  | ||||||
| # install build dependencies | # install build dependencies | ||||||
| RUN apk add --no-cache build-base npm git python3 | RUN apk add --no-cache build-base npm git python3 | ||||||
| @@ -37,7 +37,7 @@ RUN mix do compile, release | |||||||
| FROM alpine:latest AS app | FROM alpine:latest AS app | ||||||
|  |  | ||||||
| RUN apk upgrade --no-cache && \ | 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 | 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' | import 'chartjs-adapter-date-fns' | ||||||
| Chart.register(Title, Tooltip, Legend, LineController, LineElement, PointElement, TimeScale, LinearScale) |  | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|   initalizeChart (el) { |   initalizeChart (el) { | ||||||
|     const data = JSON.parse(el.dataset.chartData) |     const data = JSON.parse(el.dataset.chartData) | ||||||
|  |  | ||||||
|     this.el.chart = new Chart(el, { |     this.el.chart = new Chart(el, { | ||||||
|       type: 'line', |       type: 'bar', | ||||||
|       data: { |       data: { | ||||||
|         datasets: [{ |         datasets: [{ | ||||||
|           label: el.dataset.label, |           label: el.dataset.label, | ||||||
| @@ -51,13 +50,17 @@ export default { | |||||||
|             stacked: true, |             stacked: true, | ||||||
|             grace: '15%', |             grace: '15%', | ||||||
|             ticks: { |             ticks: { | ||||||
|               padding: 15 |               padding: 15, | ||||||
|  |               precision: 0 | ||||||
|             } |             } | ||||||
|           }, |           }, | ||||||
|           x: { |           x: { | ||||||
|             type: 'time', |             type: 'timeseries', | ||||||
|             time: { |             time: { | ||||||
|               unit: 'day' |               unit: 'day' | ||||||
|  |             }, | ||||||
|  |             ticks: { | ||||||
|  |               source: 'data' | ||||||
|             } |             } | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|   | |||||||
							
								
								
									
										4109
									
								
								assets/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4109
									
								
								assets/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -3,8 +3,8 @@ | |||||||
|   "description": " ", |   "description": " ", | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "engines": { |   "engines": { | ||||||
|     "node": "v20.6.0", |     "node": "v22.3.0", | ||||||
|     "npm": "9.8.1" |     "npm": "10.8.1" | ||||||
|   }, |   }, | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "deploy": "NODE_ENV=production webpack --mode production", |     "deploy": "NODE_ENV=production webpack --mode production", | ||||||
| @@ -13,37 +13,37 @@ | |||||||
|     "test": "standard" |     "test": "standard" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@fortawesome/fontawesome-free": "^6.4.2", |     "@fortawesome/fontawesome-free": "^6.5.2", | ||||||
|     "chart.js": "^4.4.0", |     "chart.js": "^4.4.3", | ||||||
|     "chartjs-adapter-date-fns": "^3.0.0", |     "chartjs-adapter-date-fns": "^3.0.0", | ||||||
|     "date-fns": "^2.30.0", |     "date-fns": "^3.6.0", | ||||||
|     "phoenix": "file:../deps/phoenix", |     "phoenix": "file:../deps/phoenix", | ||||||
|     "phoenix_html": "file:../deps/phoenix_html", |     "phoenix_html": "file:../deps/phoenix_html", | ||||||
|     "phoenix_live_view": "file:../deps/phoenix_live_view", |     "phoenix_live_view": "file:../deps/phoenix_live_view", | ||||||
|     "topbar": "^2.0.1" |     "topbar": "^3.0.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@babel/core": "^7.22.15", |     "@babel/core": "^7.24.7", | ||||||
|     "@babel/preset-env": "^7.22.15", |     "@babel/preset-env": "^7.24.7", | ||||||
|     "autoprefixer": "^10.4.15", |     "autoprefixer": "^10.4.19", | ||||||
|     "babel-loader": "^9.1.3", |     "babel-loader": "^9.1.3", | ||||||
|     "copy-webpack-plugin": "^11.0.0", |     "copy-webpack-plugin": "^12.0.2", | ||||||
|     "css-loader": "^6.8.1", |     "css-loader": "^7.1.2", | ||||||
|     "css-minimizer-webpack-plugin": "^5.0.1", |     "css-minimizer-webpack-plugin": "^7.0.0", | ||||||
|     "file-loader": "^6.2.0", |     "file-loader": "^6.2.0", | ||||||
|     "mini-css-extract-plugin": "^2.7.6", |     "mini-css-extract-plugin": "^2.9.0", | ||||||
|     "npm-check-updates": "^16.13.3", |     "npm-check-updates": "^16.14.20", | ||||||
|     "postcss": "^8.4.29", |     "postcss": "^8.4.38", | ||||||
|     "postcss-import": "^15.1.0", |     "postcss-import": "^16.1.0", | ||||||
|     "postcss-loader": "^7.3.3", |     "postcss-loader": "^8.1.1", | ||||||
|     "postcss-preset-env": "^9.1.3", |     "postcss-preset-env": "^9.5.14", | ||||||
|     "sass": "^1.66.1", |     "sass": "^1.77.5", | ||||||
|     "sass-loader": "^13.3.2", |     "sass-loader": "^14.2.1", | ||||||
|     "standard": "^17.1.0", |     "standard": "^17.1.0", | ||||||
|     "tailwindcss": "^3.3.3", |     "tailwindcss": "^3.4.4", | ||||||
|     "terser-webpack-plugin": "^5.3.9", |     "terser-webpack-plugin": "^5.3.10", | ||||||
|     "webpack": "^5.88.2", |     "webpack": "^5.92.0", | ||||||
|     "webpack-cli": "^5.1.4", |     "webpack-cli": "^5.1.4", | ||||||
|     "webpack-dev-server": "^4.15.1" |     "webpack-dev-server": "^5.0.4" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ config :cannery, Cannery.Mailer, adapter: Swoosh.Adapters.Test | |||||||
| config :cannery, Cannery.Accounts, registration: "public" | config :cannery, Cannery.Accounts, registration: "public" | ||||||
|  |  | ||||||
| # Print only warnings and errors during test | # Print only warnings and errors during test | ||||||
| config :logger, level: :warn | config :logger, level: :warning | ||||||
|  |  | ||||||
| # Initialize plugs at runtime for faster test compilation | # Initialize plugs at runtime for faster test compilation | ||||||
| config :phoenix, :plug_init_mode, :runtime | config :phoenix, :plug_init_mode, :runtime | ||||||
|   | |||||||
| @@ -404,15 +404,15 @@ defmodule Cannery.Accounts do | |||||||
|  |  | ||||||
|   ## Examples |   ## Examples | ||||||
|  |  | ||||||
|       iex> is_admin?(%User{role: :admin}) |       iex> admin?(%User{role: :admin}) | ||||||
|       true |       true | ||||||
|  |  | ||||||
|       iex> is_admin?(%User{}) |       iex> admin?(%User{}) | ||||||
|       false |       false | ||||||
|  |  | ||||||
|   """ |   """ | ||||||
|   @spec is_admin?(User.t()) :: boolean() |   @spec admin?(User.t()) :: boolean() | ||||||
|   def is_admin?(%User{id: user_id}) do |   def admin?(%User{id: user_id}) do | ||||||
|     Repo.exists?(from u in User, where: u.id == ^user_id, where: u.role == :admin) |     Repo.exists?(from u in User, where: u.id == ^user_id, where: u.role == :admin) | ||||||
|   end |   end | ||||||
|  |  | ||||||
| @@ -421,16 +421,16 @@ defmodule Cannery.Accounts do | |||||||
|  |  | ||||||
|   ## Examples |   ## Examples | ||||||
|  |  | ||||||
|       iex> is_already_admin?(%User{role: :admin}) |       iex> already_admin?(%User{role: :admin}) | ||||||
|       true |       true | ||||||
|  |  | ||||||
|       iex> is_already_admin?(%User{}) |       iex> already_admin?(%User{}) | ||||||
|       false |       false | ||||||
|  |  | ||||||
|   """ |   """ | ||||||
|   @spec is_already_admin?(User.t() | nil) :: boolean() |   @spec already_admin?(User.t() | nil) :: boolean() | ||||||
|   def is_already_admin?(%User{role: :admin}), do: true |   def already_admin?(%User{role: :admin}), do: true | ||||||
|   def is_already_admin?(_invalid_user), do: false |   def already_admin?(_invalid_user), do: false | ||||||
|  |  | ||||||
|   ## Confirmation |   ## Confirmation | ||||||
|  |  | ||||||
|   | |||||||
| @@ -26,21 +26,21 @@ defmodule Cannery.Email do | |||||||
|   end |   end | ||||||
|  |  | ||||||
|   @spec generate_email(key :: String.t(), User.t(), attrs :: map()) :: t() |   @spec generate_email(key :: String.t(), User.t(), attrs :: map()) :: t() | ||||||
|   def generate_email("welcome", user, %{"url" => url}) do |   def generate_email("welcome", user, %{url: url}) do | ||||||
|     user |     user | ||||||
|     |> base_email(dgettext("emails", "Confirm your Cannery account")) |     |> base_email(dgettext("emails", "Confirm your Cannery account")) | ||||||
|     |> html_email(:confirm_email_html, %{user: user, url: url}) |     |> html_email(:confirm_email_html, %{user: user, url: url}) | ||||||
|     |> text_email(:confirm_email_text, %{user: user, url: url}) |     |> text_email(:confirm_email_text, %{user: user, url: url}) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def generate_email("reset_password", user, %{"url" => url}) do |   def generate_email("reset_password", user, %{url: url}) do | ||||||
|     user |     user | ||||||
|     |> base_email(dgettext("emails", "Reset your Cannery password")) |     |> base_email(dgettext("emails", "Reset your Cannery password")) | ||||||
|     |> html_email(:reset_password_html, %{user: user, url: url}) |     |> html_email(:reset_password_html, %{user: user, url: url}) | ||||||
|     |> text_email(:reset_password_text, %{user: user, url: url}) |     |> text_email(:reset_password_text, %{user: user, url: url}) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def generate_email("update_email", user, %{"url" => url}) do |   def generate_email("update_email", user, %{url: url}) do | ||||||
|     user |     user | ||||||
|     |> base_email(dgettext("emails", "Update your Cannery email")) |     |> base_email(dgettext("emails", "Update your Cannery email")) | ||||||
|     |> html_email(:update_email_html, %{user: user, url: url}) |     |> html_email(:update_email_html, %{user: user, url: url}) | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ defmodule Cannery.EmailWorker do | |||||||
|   alias Cannery.{Accounts, Email, Mailer} |   alias Cannery.{Accounts, Email, Mailer} | ||||||
|  |  | ||||||
|   @impl Oban.Worker |   @impl Oban.Worker | ||||||
|   def perform(%Oban.Job{args: %{"email" => email, "user_id" => user_id, "attrs" => attrs}}) do |   def perform(%Oban.Job{args: %{email: email, user_id: user_id, attrs: attrs}}) do | ||||||
|     Email.generate_email(email, user_id |> Accounts.get_user!(), attrs) |> Mailer.deliver() |     Email.generate_email(email, user_id |> Accounts.get_user!(), attrs) |> Mailer.deliver() | ||||||
|   end |   end | ||||||
| end | end | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ defmodule Cannery.Logger do | |||||||
|       |> Map.put(:stacktrace, Exception.format_stacktrace(stacktrace)) |       |> Map.put(:stacktrace, Exception.format_stacktrace(stacktrace)) | ||||||
|       |> pretty_encode() |       |> pretty_encode() | ||||||
|  |  | ||||||
|     Logger.error("#{meta.reason}: #{data}") |     Logger.error("Oban exception: #{data}") | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def handle_event([:oban, :job, :start], measure, meta, _config) do |   def handle_event([:oban, :job, :start], measure, meta, _config) do | ||||||
|   | |||||||
| @@ -69,6 +69,7 @@ defmodule CanneryWeb do | |||||||
|  |  | ||||||
|   def html do |   def html do | ||||||
|     quote do |     quote do | ||||||
|  |       # credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse | ||||||
|       use Phoenix.Component |       use Phoenix.Component | ||||||
|  |  | ||||||
|       # Import convenience functions from controllers |       # Import convenience functions from controllers | ||||||
| @@ -82,11 +83,8 @@ defmodule CanneryWeb do | |||||||
|  |  | ||||||
|   defp html_helpers do |   defp html_helpers do | ||||||
|     quote do |     quote do | ||||||
|       # credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse |       use PhoenixHTMLHelpers | ||||||
|       use Phoenix.HTML |       import Phoenix.{Component, HTML, HTML.Form} | ||||||
|  |  | ||||||
|       # credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse |  | ||||||
|       import Phoenix.Component |  | ||||||
|       import CanneryWeb.{ErrorHelpers, Gettext, CoreComponents, HTMLHelpers} |       import CanneryWeb.{ErrorHelpers, Gettext, CoreComponents, HTMLHelpers} | ||||||
|  |  | ||||||
|       # Shortcut for generating JS commands |       # Shortcut for generating JS commands | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ | |||||||
|     phx-submit="save" |     phx-submit="save" | ||||||
|   > |   > | ||||||
|     <div |     <div | ||||||
|       :if={@changeset.action && not @changeset.valid?()} |       :if={@changeset.action && not @changeset.valid?} | ||||||
|       class="invalid-feedback col-span-3 text-center" |       class="invalid-feedback col-span-3 text-center" | ||||||
|     > |     > | ||||||
|       <%= changeset_errors(@changeset) %> |       <%= changeset_errors(@changeset) %> | ||||||
|   | |||||||
| @@ -48,7 +48,7 @@ | |||||||
|             <%= gettext("Range") %> |             <%= gettext("Range") %> | ||||||
|           </.link> |           </.link> | ||||||
|         </li> |         </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"> |           <.link navigate={~p"/invites"} class="text-white hover:underline"> | ||||||
|             <%= gettext("Invites") %> |             <%= gettext("Invites") %> | ||||||
|           </.link> |           </.link> | ||||||
| @@ -70,7 +70,7 @@ | |||||||
|         </li> |         </li> | ||||||
|         <li |         <li | ||||||
|           :if={ |           :if={ | ||||||
|             @current_user |> Accounts.is_already_admin?() and |             @current_user |> Accounts.already_admin?() and | ||||||
|               function_exported?(Routes, :live_dashboard_path, 2) |               function_exported?(Routes, :live_dashboard_path, 2) | ||||||
|           } |           } | ||||||
|           class="mx-2 my-1" |           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> |   <header> | ||||||
|     <.topbar current_user={assigns[:current_user]} /> |     <.topbar current_user={assigns[:current_user]} /> | ||||||
|  |  | ||||||
|     <div class="mx-8 my-2 flex flex-col space-y-4 text-center"> |     <div class="mx-8 my-2 flex flex-col space-y-4 text-center"> | ||||||
|       <p :if={@flash["info"]} class="alert alert-info" role="alert"> |       <p | ||||||
|         <%= @flash["info"] %> |         :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> | ||||||
|       <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" | ||||||
|  |       > | ||||||
|  |         <%= live_flash(@flash, "error") %> | ||||||
|       </p> |       </p> | ||||||
|     </div> |     </div> | ||||||
|   </header> |   </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 %> |     <%= @inner_content %> | ||||||
|   </div> |   </div> | ||||||
| </main> | </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> |  | ||||||
| @@ -9,7 +9,7 @@ | |||||||
|     action={~p"/users/register"} |     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" |     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.") %> |       <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> | ||||||
|     </p> |     </p> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
|     action={~p"/users/reset_password/#{@token}"} |     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" |     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.") %> |       <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> | ||||||
|     </p> |     </p> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -15,10 +15,18 @@ | |||||||
|     </p> |     </p> | ||||||
|  |  | ||||||
|     <%= label(f, :email, gettext("Email"), class: "title text-lg text-primary-600") %> |     <%= 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") %> |     <%= 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"), |     <%= label(f, :remember_me, gettext("Keep me logged in for 60 days"), | ||||||
|       class: "title text-lg text-primary-600" |       class: "title text-lg text-primary-600" | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ | |||||||
|     </h3> |     </h3> | ||||||
|  |  | ||||||
|     <div |     <div | ||||||
|       :if={@email_changeset.action && not @email_changeset.valid?()} |       :if={@email_changeset.action && not @email_changeset.valid?} | ||||||
|       class="alert alert-danger col-span-3" |       class="alert alert-danger col-span-3" | ||||||
|     > |     > | ||||||
|       <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> |       <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> | ||||||
| @@ -58,7 +58,7 @@ | |||||||
|     </h3> |     </h3> | ||||||
|  |  | ||||||
|     <div |     <div | ||||||
|       :if={@password_changeset.action && not @password_changeset.valid?()} |       :if={@password_changeset.action && not @password_changeset.valid?} | ||||||
|       class="alert alert-danger col-span-3" |       class="alert alert-danger col-span-3" | ||||||
|     > |     > | ||||||
|       <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> |       <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> | ||||||
| @@ -112,7 +112,7 @@ | |||||||
|     ) %> |     ) %> | ||||||
|  |  | ||||||
|     <div |     <div | ||||||
|       :if={@locale_changeset.action && not @locale_changeset.valid?()} |       :if={@locale_changeset.action && not @locale_changeset.valid?} | ||||||
|       class="alert alert-danger col-span-3" |       class="alert alert-danger col-span-3" | ||||||
|     > |     > | ||||||
|       <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> |       <%= 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. |   Conveniences for translating and building error messages. | ||||||
|   """ |   """ | ||||||
|  |  | ||||||
|   use Phoenix.HTML |   use PhoenixHTMLHelpers | ||||||
|   import Phoenix.Component |   import Phoenix.{Component, HTML.Form} | ||||||
|   alias Ecto.Changeset |   alias Ecto.Changeset | ||||||
|   alias Phoenix.{HTML.Form, LiveView.Rendered} |   alias Phoenix.{HTML.Form, LiveView.Rendered} | ||||||
|  |  | ||||||
| @@ -65,7 +65,7 @@ defmodule CanneryWeb.ErrorHelpers do | |||||||
|     changeset |     changeset | ||||||
|     |> changeset_error_map() |     |> changeset_error_map() | ||||||
|     |> Enum.map_join(". ", fn {key, errors} -> |     |> Enum.map_join(". ", fn {key, errors} -> | ||||||
|       "#{key |> humanize()}: #{errors |> Enum.join(", ")}" |       "#{key |> Phoenix.Naming.humanize()}: #{errors |> Enum.join(", ")}" | ||||||
|     end) |     end) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ | |||||||
|     phx-submit="save" |     phx-submit="save" | ||||||
|   > |   > | ||||||
|     <div |     <div | ||||||
|       :if={@changeset.action && not @changeset.valid?()} |       :if={@changeset.action && not @changeset.valid?} | ||||||
|       class="invalid-feedback col-span-3 text-center" |       class="invalid-feedback col-span-3 text-center" | ||||||
|     > |     > | ||||||
|       <%= changeset_errors(@changeset) %> |       <%= changeset_errors(@changeset) %> | ||||||
|   | |||||||
| @@ -130,6 +130,21 @@ | |||||||
|               <%= type_name %> |               <%= type_name %> | ||||||
|             </.link> |             </.link> | ||||||
|           </:type> |           </: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> |         </.live_component> | ||||||
|       <% else %> |       <% else %> | ||||||
|         <div class="flex flex-wrap justify-center items-stretch"> |         <div class="flex flex-wrap justify-center items-stretch"> | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ | |||||||
|     phx-submit="save" |     phx-submit="save" | ||||||
|   > |   > | ||||||
|     <div |     <div | ||||||
|       :if={@changeset.action && not @changeset.valid?()} |       :if={@changeset.action && not @changeset.valid?} | ||||||
|       class="invalid-feedback col-span-3 text-center" |       class="invalid-feedback col-span-3 text-center" | ||||||
|     > |     > | ||||||
|       <%= changeset_errors(@changeset) %> |       <%= changeset_errors(@changeset) %> | ||||||
|   | |||||||
| @@ -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" |     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 |     <div | ||||||
|       :if={@changeset.action && not @changeset.valid?()} |       :if={@changeset.action && not @changeset.valid?} | ||||||
|       class="invalid-feedback col-span-3 text-center" |       class="invalid-feedback col-span-3 text-center" | ||||||
|     > |     > | ||||||
|       <%= changeset_errors(@changeset) %> |       <%= changeset_errors(@changeset) %> | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ | |||||||
|     phx-submit="save" |     phx-submit="save" | ||||||
|   > |   > | ||||||
|     <div |     <div | ||||||
|       :if={@changeset.action && not @changeset.valid?()} |       :if={@changeset.action && not @changeset.valid?} | ||||||
|       class="invalid-feedback col-span-3 text-center" |       class="invalid-feedback col-span-3 text-center" | ||||||
|     > |     > | ||||||
|       <%= changeset_errors(@changeset) %> |       <%= changeset_errors(@changeset) %> | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ | |||||||
|     phx-submit="save" |     phx-submit="save" | ||||||
|   > |   > | ||||||
|     <div |     <div | ||||||
|       :if={@changeset.action && not @changeset.valid?()} |       :if={@changeset.action && not @changeset.valid?} | ||||||
|       class="invalid-feedback col-span-3 text-center" |       class="invalid-feedback col-span-3 text-center" | ||||||
|     > |     > | ||||||
|       <%= changeset_errors(@changeset) %> |       <%= changeset_errors(@changeset) %> | ||||||
|   | |||||||
| @@ -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" |     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 |     <div | ||||||
|       :if={@changeset.action && not @changeset.valid?()} |       :if={@changeset.action && not @changeset.valid?} | ||||||
|       class="invalid-feedback col-span-3 text-center" |       class="invalid-feedback col-span-3 text-center" | ||||||
|     > |     > | ||||||
|       <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> |       <%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %> | ||||||
|   | |||||||
							
								
								
									
										39
									
								
								mix.exs
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								mix.exs
									
									
									
									
									
								
							| @@ -4,8 +4,8 @@ defmodule Cannery.MixProject do | |||||||
|   def project do |   def project do | ||||||
|     [ |     [ | ||||||
|       app: :cannery, |       app: :cannery, | ||||||
|       version: "0.9.5", |       version: "0.9.10", | ||||||
|       elixir: "1.15.4", |       elixir: "1.17.0", | ||||||
|       elixirc_paths: elixirc_paths(Mix.env()), |       elixirc_paths: elixirc_paths(Mix.env()), | ||||||
|       start_permanent: Mix.env() == :prod, |       start_permanent: Mix.env() == :prod, | ||||||
|       aliases: aliases(), |       aliases: aliases(), | ||||||
| @@ -47,29 +47,30 @@ defmodule Cannery.MixProject do | |||||||
|   defp deps do |   defp deps do | ||||||
|     [ |     [ | ||||||
|       {:bcrypt_elixir, "~> 3.0"}, |       {:bcrypt_elixir, "~> 3.0"}, | ||||||
|       {:phoenix, "~> 1.7.0"}, |       {:credo, "~> 1.5", only: [:dev, :test], runtime: false}, | ||||||
|       {:phoenix_ecto, "~> 4.4"}, |       {:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false}, | ||||||
|       {:phoenix_html, "~> 3.0"}, |       {:ecto_psql_extras, "~> 0.6"}, | ||||||
|       {:phoenix_live_reload, "~> 1.2", only: :dev}, |  | ||||||
|       {:phoenix_live_view, "~> 0.19.0"}, |  | ||||||
|       {:phoenix_live_dashboard, "~> 0.8"}, |  | ||||||
|       {:ecto_sql, "~> 3.6"}, |       {:ecto_sql, "~> 3.6"}, | ||||||
|       {:postgrex, ">= 0.0.0"}, |       {:eqrcode, "~> 0.1.10"}, | ||||||
|       {:floki, ">= 0.30.0", only: :test}, |  | ||||||
|       # {:esbuild, "~> 0.3", runtime: Mix.env() == :dev}, |       # {:esbuild, "~> 0.3", runtime: Mix.env() == :dev}, | ||||||
|       {:ex_doc, "~> 0.27", only: :dev, runtime: false}, |       {:ex_doc, "~> 0.27", only: :dev, runtime: false}, | ||||||
|       {:swoosh, "~> 1.6"}, |       {:floki, ">= 0.30.0", only: :test}, | ||||||
|       {:gen_smtp, "~> 1.0"}, |       {:gen_smtp, "~> 1.0"}, | ||||||
|       {:oban, "~> 2.10"}, |  | ||||||
|       {:telemetry_metrics, "~> 0.6"}, |  | ||||||
|       {:telemetry_poller, "~> 1.0"}, |  | ||||||
|       {:gettext, "~> 0.18"}, |       {:gettext, "~> 0.18"}, | ||||||
|       {:jason, "~> 1.2"}, |       {:jason, "~> 1.2"}, | ||||||
|       {:plug_cowboy, "~> 2.5"}, |       {:oban, "~> 2.10"}, | ||||||
|       {:ecto_psql_extras, "~> 0.6"}, |       {:phoenix_ecto, "~> 4.4"}, | ||||||
|       {:eqrcode, "~> 0.1.10"}, |       {:phoenix_html_helpers, "~> 1.0"}, | ||||||
|       {:credo, "~> 1.5", only: [:dev, :test], runtime: false}, |       {:phoenix_html, "~> 4.0"}, | ||||||
|       {:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false} |       {: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 |   end | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										78
									
								
								mix.lock
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								mix.lock
									
									
									
									
									
								
							| @@ -1,54 +1,54 @@ | |||||||
| %{ | %{ | ||||||
|   "bcrypt_elixir": {:hex, :bcrypt_elixir, "3.1.0", "0b110a9a6c619b19a7f73fa3004aa11d6e719a67e672d1633dc36b6b2290a0f7", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "2ad2acb5a8bc049e8d5aa267802631912bb80d5f4110a178ae7999e69dca1bf7"}, |   "bcrypt_elixir": {:hex, :bcrypt_elixir, "3.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, "0.2.1", "e2d4792f7bc0ced7583ab54922808919518d0e57ee162901a16a1b6664ef3b14", [:mix], [], "hexpm", "a330bfb4245239787b15005e66ae6845c9cd524a288f0d141c148b02603777a5"}, |   "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, | ||||||
|   "castore": {:hex, :castore, "1.0.3", "7130ba6d24c8424014194676d608cb989f62ef8039efd50ff4b3f33286d06db8", [:mix], [], "hexpm", "680ab01ef5d15b161ed6a95449fac5c6b8f60055677a8e79acf01b27baa4390b"}, |   "castore": {:hex, :castore, "1.0.7", "b651241514e5f6956028147fe6637f7ac13802537e895a724f90bf3e36ddd1dd", [:mix], [], "hexpm", "da7785a4b0d2a021cd1292a60875a784b6caef71e76bf4917bdee1f390455cf5"}, | ||||||
|   "comeonin": {:hex, :comeonin, "5.4.0", "246a56ca3f41d404380fc6465650ddaa532c7f98be4bda1b4656b3a37cc13abe", [:mix], [], "hexpm", "796393a9e50d01999d56b7b8420ab0481a7538d0caf80919da493b4a6e51faf1"}, |   "comeonin": {:hex, :comeonin, "5.4.0", "246a56ca3f41d404380fc6465650ddaa532c7f98be4bda1b4656b3a37cc13abe", [:mix], [], "hexpm", "796393a9e50d01999d56b7b8420ab0481a7538d0caf80919da493b4a6e51faf1"}, | ||||||
|   "connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"}, |   "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": {:hex, :cowboy, "2.10.0", "ff9ffeff91dae4ae270dd975642997afe2a1179d94b1887863e43f681a203e26", [:make, :rebar3], [{:cowlib, "2.12.1", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "3afdccb7183cc6f143cb14d3cf51fa00e53db9ec80cdcd525482f5e99bc41d6b"}, |  | ||||||
|   "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"}, |   "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.12.1", "a9fa9a625f1d2025fe6b462cb865881329b5caff8f1854d1cbc9f9533f00e1e1", [:make, :rebar3], [], "hexpm", "163b73f6367a7341b33c794c4e88e7dbfe6498ac42dcd69ef44c5bc5507c8db0"}, |   "cowlib": {:hex, :cowlib, "2.13.0", "db8f7505d8332d98ef50a3ef34b34c1afddec7506e4ee4dd4a3a266285d282ca", [:make, :rebar3], [], "hexpm", "e1e1284dc3fc030a64b1ad0d8382ae7e99da46c3246b815318a4b848873800a4"}, | ||||||
|   "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"}, |   "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.5.0", "bb6d4f30d35ded97b29fe80d8bd6f928a1912ca1ff110831edcd238a1973652c", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c92d5ba26cd69ead1ff7582dbb860adeedfff39774105a4f1c92cbb654b55aa2"}, |   "db_connection": {:hex, :db_connection, "2.6.0", "77d835c472b5b67fc4f29556dee74bf511bbafecdcaf98c27d27fa5918152086", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c2f992d15725e721ec7fbc1189d4ecdb8afef76648c746a8e1cad35e3b8a35f3"}, | ||||||
|   "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"}, |   "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"}, | ||||||
|   "dialyxir": {:hex, :dialyxir, "1.4.1", "a22ed1e7bd3a3e3f197b68d806ef66acb61ee8f57b3ac85fc5d57354c5482a93", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "84b795d6d7796297cca5a3118444b80c7d94f7ce247d49886e7c291e1ae49801"}, |   "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.33", "3c3fd9673bb5dcc9edc28dd90f50c87ce506d1f71b70e3de69aa8154bc695d44", [:mix], [], "hexpm", "2d526833729b59b9fdb85785078697c72ac5e5066350663e5be6a1182da61b8f"}, |   "earmark_parser": {:hex, :earmark_parser, "1.4.39", "424642f8335b05bb9eb611aa1564c148a8ee35c9c8a8bba6e129d51a3e3c6769", [:mix], [], "hexpm", "06553a88d1f1846da9ef066b87b57c6f605552cfbe40d20bd8d59cc6bde41944"}, | ||||||
|   "ecto": {:hex, :ecto, "3.10.3", "eb2ae2eecd210b4eb8bece1217b297ad4ff824b4384c0e3fdd28aaf96edd6135", [: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", "44bec74e2364d491d70f7e42cd0d690922659d329f6465e89feb8a34e8cd3433"}, |   "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.7.13", "9947637f82b92dcec93d44ad09ba24d1990bd7ca69e1c68981fb3b6f8bd18829", [:mix], [{:ecto_sql, "~> 3.7", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16.0 or ~> 0.17.0", [hex: :postgrex, repo: "hexpm", optional: false]}, {:table_rex, "~> 3.1.1", [hex: :table_rex, repo: "hexpm", optional: false]}], "hexpm", "0f2288e6163f6aacd7e59545a56adc8df7d2079d18be7d3d6159d10f4dffc396"}, |   "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.10.2", "6b98b46534b5c2f8b8b5f03f126e75e2a73c64f3c071149d32987a5378b0fdbd", [: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", "68c018debca57cb9235e3889affdaec7a10616a4e3a80c99fa1d01fdafaa9007"}, |   "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.7.7", "7128c60c2476019ed978210c245badf08b03dbec4f24d05790ef791da11aa17c", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5bc19fff950fad52bbe5f211b12db9ec82c6b34a9647da0c2224b8b8464c7e6c"}, |   "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"}, |   "eqrcode": {:hex, :eqrcode, "0.1.10", "6294fece9d68ad64eef1c3c92cf111cfd6469f4fbf230a2d4cc905a682178f3f", [:mix], [], "hexpm", "da30e373c36a0fd37ab6f58664b16029919896d6c45a68a95cc4d713e81076f1"}, | ||||||
|   "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, |   "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, | ||||||
|   "ex_doc": {:hex, :ex_doc, "0.30.6", "5f8b54854b240a2b55c9734c4b1d0dd7bdd41f71a095d42a70445c03cf05a281", [: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", "bd48f2ddacf4e482c727f9293d9498e0881597eae6ddc3d9562bd7923375109f"}, |   "ex_doc": {:hex, :ex_doc, "0.34.0", "ab95e0775db3df71d30cf8d78728dd9261c355c81382bcd4cefdc74610bef13e", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "60734fb4c1353f270c3286df4a0d51e65a2c1d9fba66af3940847cc65a8066d7"}, | ||||||
|   "expo": {:hex, :expo, "0.4.1", "1c61d18a5df197dfda38861673d392e642649a9cef7694d2f97a587b2cfb319b", [:mix], [], "hexpm", "2ff7ba7a798c8c543c12550fa0e2cbc81b95d4974c65855d8d15ba7b37a1ce47"}, |   "expo": {:hex, :expo, "0.5.2", "beba786aab8e3c5431813d7a44b828e7b922bfa431d6bfbada0904535342efe2", [:mix], [], "hexpm", "8c9bfa06ca017c9cb4020fabe980bc7fdb1aaec059fd004c2ab3bff03b1c599c"}, | ||||||
|   "file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"}, |   "file_system": {:hex, :file_system, "1.0.0", "b689cc7dcee665f774de94b5a832e578bd7963c8e637ef940cd44327db7de2cd", [:mix], [], "hexpm", "6752092d66aec5a10e662aefeed8ddb9531d79db0bc145bb8c40325ca1d8536d"}, | ||||||
|   "floki": {:hex, :floki, "0.34.3", "5e2dcaec5d7c228ce5b1d3501502e308b2d79eb655e4191751a1fe491c37feac", [:mix], [], "hexpm", "9577440eea5b97924b4bf3c7ea55f7b8b6dce589f9b28b096cc294a8dc342341"}, |   "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"}, |   "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.23.1", "821e619a240e6000db2fc16a574ef68b3bd7fe0167ccc264a81563cc93e67a31", [:mix], [{:expo, "~> 0.4.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "19d744a36b809d810d610b57c27b934425859d158ebd56561bc41f7eeb8795db"}, |   "gettext": {:hex, :gettext, "0.24.0", "6f4d90ac5f3111673cbefc4ebee96fe5f37a114861ab8c7b7d5b30a1108ce6d8", [:mix], [{:expo, "~> 0.5.1", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "bdf75cdfcbe9e4622dd18e034b227d77dd17f0f133853a1c73b97b3d6c770e8b"}, | ||||||
|   "jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"}, |   "jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"}, | ||||||
|   "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": {: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.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_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, "0.1.2", "ad87296a092a46e03b7e9b0be7631ddcf64c790fa68a9ef5323b6cbb36affc72", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f3f5a1ca93ce6e092d92b6d9c049bcda58a3b617a8d888f8e7231c85630e8108"}, |   "makeup_erlang": {:hex, :makeup_erlang, "1.0.0", "6f0eff9c9c489f26b69b61440bf1b238d95badae49adac77973cbacae87e3c2e", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "ea7a9307de9d1548d2a72d299058d1fd2339e3d398560a0e46c27dab4891e4d2"}, | ||||||
|   "mime": {:hex, :mime, "2.0.5", "dc34c8efd439abe6ae0343edbb8556f4d63f178594894720607772a041b04b02", [:mix], [], "hexpm", "da0d64a365c45bc9935cc5c8a7fc5e49a0e0f9932a761c55d6c52b142780a05c"}, |   "mime": {:hex, :mime, "2.0.5", "dc34c8efd439abe6ae0343edbb8556f4d63f178594894720607772a041b04b02", [:mix], [], "hexpm", "da0d64a365c45bc9935cc5c8a7fc5e49a0e0f9932a761c55d6c52b142780a05c"}, | ||||||
|   "nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"}, |   "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, | ||||||
|   "oban": {:hex, :oban, "2.15.4", "d49ab4ffb7153010e32f80fe9e56f592706238149ec579eb50f8a4e41d218856", [: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", "5fce611fdfffb13e9148df883116e5201adf1e731eb302cc88cde0588510079c"}, |   "oban": {:hex, :oban, "2.17.10", "c3e5bd739b5c3fdc38eba1d43ab270a8c6ca4463bb779b7705c69400b0d87678", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4afd027b8e2bc3c399b54318b4f46ee8c40251fb55a285cb4e38b5363f0ee7c4"}, | ||||||
|   "phoenix": {:hex, :phoenix, "1.7.7", "4cc501d4d823015007ba3cdd9c41ecaaf2ffb619d6fb283199fa8ddba89191e0", [: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.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "8966e15c395e5e37591b6ed0bd2ae7f48e961f0f60ac4c733f9566b519453085"}, |   "phoenix": {:hex, :phoenix, "1.7.12", "1cc589e0eab99f593a8aa38ec45f15d25297dd6187ee801c8de8947090b5a9d3", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "d646192fbade9f485b01bc9920c139bfdd19d0f8df3d73fd8eaf2dfbe0d2837c"}, | ||||||
|   "phoenix_ecto": {:hex, :phoenix_ecto, "4.4.2", "b21bd01fdeffcfe2fab49e4942aa938b6d3e89e93a480d4aee58085560a0bc0d", [:mix], [{:ecto, "~> 3.5", [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", "70242edd4601d50b69273b057ecf7b684644c19ee750989fd555625ae4ce8f5d"}, |   "phoenix_ecto": {:hex, :phoenix_ecto, "4.6.1", "96798325fab2fed5a824ca204e877b81f9afd2e480f581e81f7b4b64a5a477f2", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.17", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "0ae544ff99f3c482b0807c5cec2c8289e810ecacabc04959d82c3337f4703391"}, | ||||||
|   "phoenix_html": {:hex, :phoenix_html, "3.3.2", "d6ce982c6d8247d2fc0defe625255c721fb8d5f1942c5ac051f6177bffa5973f", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "44adaf8e667c1c20fb9d284b6b0fa8dc7946ce29e81ce621860aa7e96de9a11d"}, |   "phoenix_html": {:hex, :phoenix_html, "4.1.1", "4c064fd3873d12ebb1388425a8f2a19348cef56e7289e1998e2d2fa758aa982e", [:mix], [], "hexpm", "f2f2df5a72bc9a2f510b21497fd7d2b86d932ec0598f0210fed4114adc546c6f"}, | ||||||
|   "phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.8.1", "c4f2a2d3b26e6ca684d162ccf18aaeed8bed2181896e0393d0a2959789482e51", [: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.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "1ca0f954274ce1916f771f86b3d49a91d3447e7c32d171660676095c5f30abe9"}, |   "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_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_dashboard": {:hex, :phoenix_live_dashboard, "0.8.3", "7ff51c9b6609470f681fbea20578dede0e548302b0c8bdf338b5a753a4f045bf", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:ecto_sqlite3_extras, "~> 1.1.7 or ~> 1.2.0", [hex: :ecto_sqlite3_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.19 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "f9470a0a8bae4f56430a23d42f977b5a6205fdba6559d76f932b876bfaec652d"}, | ||||||
|   "phoenix_live_view": {:hex, :phoenix_live_view, "0.19.5", "6e730595e8e9b8c5da230a814e557768828fd8dfeeb90377d2d8dbb52d4ec00a", [: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", "b2eaa0dd3cfb9bd7fb949b88217df9f25aed915e986a28ad5c8a0d054e7ca9d3"}, |   "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.5.3", "f2161c207fda0e4fb55165f650f7f8db23f02b29e3bff00ff7ef161d6ac1f09d", [:mix], [{:file_system, "~> 0.3 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "b4ec9cd73cb01ff1bd1cac92e045d13e7030330b74164297d1aee3907b54803c"}, | ||||||
|  |   "phoenix_live_view": {:hex, :phoenix_live_view, "0.20.14", "70fa101aa0539e81bed4238777498f6215e9dda3461bdaa067cad6908110c364", [:mix], [{:floki, "~> 0.36", [hex: :floki, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "82f6d006c5264f979ed5eb75593d808bbe39020f20df2e78426f4f2d570e2402"}, | ||||||
|   "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"}, |   "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"}, | ||||||
|   "phoenix_template": {:hex, :phoenix_template, "1.0.3", "32de561eefcefa951aead30a1f94f1b5f0379bc9e340bb5c667f65f1edfa4326", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "16f4b6588a4152f3cc057b9d0c0ba7e82ee23afa65543da535313ad8d25d8e2c"}, |   "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.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": {:hex, :plug, "1.16.0", "1d07d50cb9bb05097fdf187b31cf087c7297aafc3fed8299aac79c128a707e47", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "cbf53aa1f5c4d758a7559c0bd6d59e286c2be0c6a1fac8cc3eee2f638243b93e"}, | ||||||
|   "plug_cowboy": {:hex, :plug_cowboy, "2.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_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, "1.2.5", "918772575e48e81e455818229bf719d4ab4181fcbf7f85b68a35620f78d89ced", [:mix], [], "hexpm", "26549a1d6345e2172eb1c233866756ae44a9609bd33ee6f99147ab3fd87fd842"}, |   "plug_crypto": {:hex, :plug_crypto, "2.1.0", "f44309c2b06d249c27c8d3f65cfe08158ade08418cf540fd4f72d4d6863abb7b", [:mix], [], "hexpm", "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"}, | ||||||
|   "postgrex": {:hex, :postgrex, "0.17.3", "c92cda8de2033a7585dae8c61b1d420a1a1322421df84da9a82a6764580c503d", [: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", "946cf46935a4fdca7a81448be76ba3503cff082df42c6ec1ff16a4bdfbfb098d"}, |   "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"}, |   "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"}, | ||||||
|   "swoosh": {:hex, :swoosh, "1.11.5", "429dccde78e2f60c6339e96917efecebca9d1f254d2878a150f580d2f782260b", [: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", "21ee57dcd68d2f56d3bbe11e76d56d142b221bb12b6018c551cc68442b800040"}, |   "swoosh": {:hex, :swoosh, "1.16.9", "20c6a32ea49136a4c19f538e27739bb5070558c0fa76b8a95f4d5d5ca7d319a1", [:mix], [{:bandit, ">= 1.0.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mua, "~> 0.2.0", [hex: :mua, repo: "hexpm", optional: true]}, {:multipart, "~> 0.4", [hex: :multipart, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:req, "~> 0.5 or ~> 1.0", [hex: :req, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "878b1a7a6c10ebbf725a3349363f48f79c5e3d792eb621643b0d276a38acc0a6"}, | ||||||
|   "table_rex": {:hex, :table_rex, "3.1.1", "0c67164d1714b5e806d5067c1e96ff098ba7ae79413cc075973e17c38a587caa", [:mix], [], "hexpm", "678a23aba4d670419c23c17790f9dcd635a4a89022040df7d5d772cb21012490"}, |   "table_rex": {:hex, :table_rex, "4.0.0", "3c613a68ebdc6d4d1e731bc973c233500974ec3993c99fcdabb210407b90959b", [:mix], [], "hexpm", "c35c4d5612ca49ebb0344ea10387da4d2afe278387d4019e4d8111e815df8f55"}, | ||||||
|   "telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"}, |   "telemetry": {:hex, :telemetry, "1.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_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.0.0", "db91bb424e07f2bb6e73926fcafbfcbcb295f0193e0a00e825e589a0a47e8453", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b3a24eafd66c3f42da30fc3ca7dda1e9d546c12250a2d60d7b81d264fbec4f6e"}, |   "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": {:hex, :websock, "0.5.3", "2f69a6ebe810328555b6fe5c831a851f485e303a7c8ce6c5f675abeb20ebdadc", [:mix], [], "hexpm", "6105453d7fac22c712ad66fab1d45abdf049868f253cf719b625151460b8b453"}, | ||||||
|   "websock_adapter": {:hex, :websock_adapter, "0.5.4", "7af8408e7ed9d56578539594d1ee7d8461e2dd5c3f57b0f2a5352d610ddde757", [: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", "d2c238c79c52cbe223fcdae22ca0bb5007a735b9e933870e241fce66afb4f4ab"}, |   "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_registration_html/new.html.heex:47 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Forgot your password?" | msgid "Forgot your password?" | ||||||
| msgstr "" | 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/edit.html.heex:41 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28 | #: 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: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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Log in" | msgid "Log in" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -98,7 +98,7 @@ msgstr "" | |||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:37 | #: 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/edit.html.heex:38 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Register" | msgid "Register" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -305,6 +305,7 @@ msgstr "" | |||||||
| msgid "Edit pack of %{pack_count} bullets" | msgid "Edit pack of %{pack_count} bullets" | ||||||
| msgstr "" | 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/pack_live/index.html.heex:148 | ||||||
| #: lib/cannery_web/live/type_live/show.html.heex:201 | #: lib/cannery_web/live/type_live/show.html.heex:201 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
|   | |||||||
| @@ -69,7 +69,7 @@ msgstr "Benutzer löschen" | |||||||
|  |  | ||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:47 | #: lib/cannery_web/controllers/user_registration_html/new.html.heex:47 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Forgot your password?" | msgid "Forgot your password?" | ||||||
| msgstr "Passwort vergessen?" | 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/edit.html.heex:41 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28 | #: 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: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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Log in" | msgid "Log in" | ||||||
| msgstr "Einloggen" | 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_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/edit.html.heex:38 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Register" | msgid "Register" | ||||||
| msgstr "Registrieren" | msgstr "Registrieren" | ||||||
| @@ -318,6 +318,7 @@ msgstr "" | |||||||
| msgid "Edit pack of %{pack_count} bullets" | msgid "Edit pack of %{pack_count} bullets" | ||||||
| msgstr "" | 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/pack_live/index.html.heex:148 | ||||||
| #: lib/cannery_web/live/type_live/show.html.heex:201 | #: lib/cannery_web/live/type_live/show.html.heex:201 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
|   | |||||||
| @@ -184,7 +184,7 @@ msgstr "Nur mit Einladung" | |||||||
| msgid "Invites" | msgid "Invites" | ||||||
| msgstr "Einladungen" | 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Keep me logged in for 60 days" | msgid "Keep me logged in for 60 days" | ||||||
| msgstr "Für 60 Tage eingeloggt bleiben" | msgstr "Für 60 Tage eingeloggt bleiben" | ||||||
| @@ -559,7 +559,7 @@ msgstr "Neues Passwort" | |||||||
| msgid "Firing type" | msgid "Firing type" | ||||||
| msgstr "Patronenhülsenform" | 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Reconnecting..." | msgid "Reconnecting..." | ||||||
| msgstr "Neu verbinden..." | msgstr "Neu verbinden..." | ||||||
| @@ -1135,7 +1135,7 @@ msgid "Email" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:24 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Password" | msgid "Password" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -180,7 +180,7 @@ msgstr "" | |||||||
| msgid "Invites" | msgid "Invites" | ||||||
| msgstr "" | 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Keep me logged in for 60 days" | msgid "Keep me logged in for 60 days" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -553,7 +553,7 @@ msgstr "" | |||||||
| msgid "Firing type" | msgid "Firing type" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/layouts/live.html.heex:43 | #: lib/cannery_web/components/layouts/app.html.heex:43 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Reconnecting..." | msgid "Reconnecting..." | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -1118,7 +1118,7 @@ msgid "Email" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:24 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Password" | msgid "Password" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -56,7 +56,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:47 | #: 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_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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Forgot your password?" | msgid "Forgot your password?" | ||||||
| msgstr "" | 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/edit.html.heex:41 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28 | #: 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: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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Log in" | msgid "Log in" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -98,7 +98,7 @@ msgstr "" | |||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:37 | #: 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/edit.html.heex:38 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Register" | msgid "Register" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -305,6 +305,7 @@ msgstr "" | |||||||
| msgid "Edit pack of %{pack_count} bullets" | msgid "Edit pack of %{pack_count} bullets" | ||||||
| msgstr "" | 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/pack_live/index.html.heex:148 | ||||||
| #: lib/cannery_web/live/type_live/show.html.heex:201 | #: lib/cannery_web/live/type_live/show.html.heex:201 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
|   | |||||||
| @@ -180,7 +180,7 @@ msgstr "" | |||||||
| msgid "Invites" | msgid "Invites" | ||||||
| msgstr "" | 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Keep me logged in for 60 days" | msgid "Keep me logged in for 60 days" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -553,7 +553,7 @@ msgstr "" | |||||||
| msgid "Firing type" | msgid "Firing type" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/layouts/live.html.heex:43 | #: lib/cannery_web/components/layouts/app.html.heex:43 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Reconnecting..." | msgid "Reconnecting..." | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -1118,7 +1118,7 @@ msgid "Email" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:24 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Password" | msgid "Password" | ||||||
| msgstr "" | 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_registration_html/new.html.heex:47 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:3 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Forgot your password?" | msgid "Forgot your password?" | ||||||
| msgstr "¿Has olvidado tu contraseña?" | 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/edit.html.heex:41 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28 | #: 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: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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Log in" | msgid "Log in" | ||||||
| msgstr "Entrar" | 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_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/edit.html.heex:38 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Register" | msgid "Register" | ||||||
| msgstr "Registrarse" | msgstr "Registrarse" | ||||||
| @@ -318,6 +318,7 @@ msgstr "" | |||||||
| msgid "Edit pack of %{pack_count} bullets" | msgid "Edit pack of %{pack_count} bullets" | ||||||
| msgstr "" | 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/pack_live/index.html.heex:148 | ||||||
| #: lib/cannery_web/live/type_live/show.html.heex:201 | #: lib/cannery_web/live/type_live/show.html.heex:201 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
|   | |||||||
| @@ -184,7 +184,7 @@ msgstr "Solo Invitación" | |||||||
| msgid "Invites" | msgid "Invites" | ||||||
| msgstr "Invitaciones" | 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Keep me logged in for 60 days" | msgid "Keep me logged in for 60 days" | ||||||
| msgstr "Mantener registrado durante 60 días" | msgstr "Mantener registrado durante 60 días" | ||||||
| @@ -560,7 +560,7 @@ msgstr "Nueva contraseña" | |||||||
| msgid "Firing type" | msgid "Firing type" | ||||||
| msgstr "Tipo de fuego" | 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Reconnecting..." | msgid "Reconnecting..." | ||||||
| msgstr "Reconectando..." | msgstr "Reconectando..." | ||||||
| @@ -1137,7 +1137,7 @@ msgid "Email" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:24 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Password" | msgid "Password" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -69,7 +69,7 @@ msgstr "Supprimer utilisateur" | |||||||
|  |  | ||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:47 | #: 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_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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Forgot your password?" | msgid "Forgot your password?" | ||||||
| msgstr "Mot de passe oublié ?" | 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/edit.html.heex:41 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28 | #: 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: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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Log in" | msgid "Log in" | ||||||
| msgstr "Se connecter" | 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_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/edit.html.heex:38 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Register" | msgid "Register" | ||||||
| msgstr "S’enregistrer" | msgstr "S’enregistrer" | ||||||
| @@ -318,6 +318,7 @@ msgstr "" | |||||||
| msgid "Edit pack of %{pack_count} bullets" | msgid "Edit pack of %{pack_count} bullets" | ||||||
| msgstr "" | 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/pack_live/index.html.heex:148 | ||||||
| #: lib/cannery_web/live/type_live/show.html.heex:201 | #: lib/cannery_web/live/type_live/show.html.heex:201 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
|   | |||||||
| @@ -184,7 +184,7 @@ msgstr "Uniquement sur invitation" | |||||||
| msgid "Invites" | msgid "Invites" | ||||||
| msgstr "Invitations" | 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Keep me logged in for 60 days" | msgid "Keep me logged in for 60 days" | ||||||
| msgstr "Me garder authentifié durant 60 jours" | msgstr "Me garder authentifié durant 60 jours" | ||||||
| @@ -561,7 +561,7 @@ msgstr "Nouveau mot de passe" | |||||||
| msgid "Firing type" | msgid "Firing type" | ||||||
| msgstr "Type d’allumage" | 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Reconnecting..." | msgid "Reconnecting..." | ||||||
| msgstr "Reconnexion en cours…" | msgstr "Reconnexion en cours…" | ||||||
| @@ -1138,7 +1138,7 @@ msgid "Email" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:24 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Password" | msgid "Password" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -67,7 +67,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:47 | #: 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_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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Forgot your password?" | msgid "Forgot your password?" | ||||||
| msgstr "" | 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/edit.html.heex:41 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:28 | #: 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: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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Log in" | msgid "Log in" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -109,7 +109,7 @@ msgstr "" | |||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:37 | #: 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/edit.html.heex:38 | ||||||
| #: lib/cannery_web/controllers/user_reset_password_html/new.html.heex:25 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Register" | msgid "Register" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -316,6 +316,7 @@ msgstr "" | |||||||
| msgid "Edit pack of %{pack_count} bullets" | msgid "Edit pack of %{pack_count} bullets" | ||||||
| msgstr "" | 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/pack_live/index.html.heex:148 | ||||||
| #: lib/cannery_web/live/type_live/show.html.heex:201 | #: lib/cannery_web/live/type_live/show.html.heex:201 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
|   | |||||||
| @@ -182,7 +182,7 @@ msgstr "" | |||||||
| msgid "Invites" | msgid "Invites" | ||||||
| msgstr "" | 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Keep me logged in for 60 days" | msgid "Keep me logged in for 60 days" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -555,7 +555,7 @@ msgstr "" | |||||||
| msgid "Firing type" | msgid "Firing type" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/layouts/live.html.heex:43 | #: lib/cannery_web/components/layouts/app.html.heex:43 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Reconnecting..." | msgid "Reconnecting..." | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -1129,7 +1129,7 @@ msgid "Email" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/controllers/user_registration_html/new.html.heex:24 | #: 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 | #, elixir-autogen, elixir-format | ||||||
| msgid "Password" | msgid "Password" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
							
								
								
									
										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:56 | ||||||
|  | #: lib/cannery_web/live/container_live/form_component.html.heex:55 | ||||||
|  | #: lib/cannery_web/live/invite_live/form_component.html.heex:35 | ||||||
|  | #: lib/cannery_web/live/pack_live/form_component.html.heex:90 | ||||||
|  | #: lib/cannery_web/live/range_live/form_component.html.heex:44 | ||||||
|  | #: lib/cannery_web/live/tag_live/form_component.html.heex:37 | ||||||
|  | #: lib/cannery_web/live/type_live/form_component.html.heex:359 | ||||||
|  | #, 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:83 | ||||||
|  | #, 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/accounts/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/accounts/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/accounts/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:159 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Could not parse number of copies" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/cannery_web/live/pack_live/form_component.ex:149 | ||||||
|  | #, 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: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 | ||||||
|  | #, 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: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 | ||||||
|  | #, 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:58 | ||||||
|  | #: lib/cannery_web/live/container_live/form_component.html.heex:57 | ||||||
|  | #: lib/cannery_web/live/invite_live/form_component.html.heex:37 | ||||||
|  | #: lib/cannery_web/live/pack_live/form_component.html.heex:91 | ||||||
|  | #: lib/cannery_web/live/range_live/form_component.html.heex:46 | ||||||
|  | #: lib/cannery_web/live/tag_live/form_component.html.heex:39 | ||||||
|  | #: lib/cannery_web/live/type_live/form_component.html.heex:360 | ||||||
|  | #, 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:60 | ||||||
|  | #, 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:84 | ||||||
|  | #, 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:125 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Ammo updated successfully" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/cannery_web/live/pack_live/form_component.ex:184 | ||||||
|  | #, 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 "" | ||||||
							
								
								
									
										10
									
								
								priv/i18n/it.tbx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								priv/i18n/it.tbx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | <?xml version="1.0"?> | ||||||
|  | <!DOCTYPE martif PUBLIC "ISO 12200:1999A//DTD MARTIF core (DXFcdV04)//EN" "TBXcdv04.dtd"> | ||||||
|  | <martif type="TBX"> | ||||||
|  | <martifHeader> | ||||||
|  | <fileDesc> | ||||||
|  | <sourceDesc><p>Translate Toolkit</p></sourceDesc> | ||||||
|  | </fileDesc> | ||||||
|  | </martifHeader> | ||||||
|  | <text><body></body></text> | ||||||
|  | </martif> | ||||||
| @@ -48,9 +48,6 @@ defmodule Cannery.Fixtures do | |||||||
|   def extract_user_token(fun) do |   def extract_user_token(fun) do | ||||||
|     %{args: %{attrs: attrs, email: email_key, user_id: user_id}} = fun.(&"[TOKEN]#{&1}[TOKEN]") |     %{args: %{attrs: attrs, email: email_key, user_id: user_id}} = fun.(&"[TOKEN]#{&1}[TOKEN]") | ||||||
|  |  | ||||||
|     # convert atoms to string keys |  | ||||||
|     attrs = attrs |> Map.new(fn {atom_key, value} -> {atom_key |> Atom.to_string(), value} end) |  | ||||||
|  |  | ||||||
|     email = |     email = | ||||||
|       email_key |       email_key | ||||||
|       |> Atom.to_string() |       |> Atom.to_string() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user