Compare commits
16 commits
14061401ea
...
afdb5f0647
| Author | SHA1 | Date | |
|---|---|---|---|
| afdb5f0647 | |||
| a05e8641fe | |||
| 01dc20af6e | |||
| 96defae986 | |||
| c7bdd5501d | |||
|
|
a144f13af3 | ||
|
|
f55cf5618a | ||
| 5d99607c7e | |||
| d2fefbe00d | |||
| 947f4bac46 | |||
| 23cd6681b9 | |||
| 8bcfe5f129 | |||
|
|
027756f8fa | ||
| 6874fadbb9 | |||
| cf3836e6f1 | |||
| c7e740762e |
19 changed files with 412 additions and 43 deletions
|
|
@ -109,7 +109,6 @@ trigger:
|
||||||
event:
|
event:
|
||||||
- cron
|
- cron
|
||||||
- custom
|
- custom
|
||||||
- push
|
|
||||||
branch:
|
branch:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
|
|
@ -118,7 +117,7 @@ environment:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: renovate
|
- name: renovate
|
||||||
image: renovate/renovate:41.51
|
image: renovate/renovate:41.72
|
||||||
environment:
|
environment:
|
||||||
RENOVATE_CONFIG_FILE: "renovate_backend_config.js"
|
RENOVATE_CONFIG_FILE: "renovate_backend_config.js"
|
||||||
RENOVATE_TOKEN:
|
RENOVATE_TOKEN:
|
||||||
|
|
|
||||||
33
.forgejo/issue_template/bug.md
Normal file
33
.forgejo/issue_template/bug.md
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
---
|
||||||
|
name: 'Bug Tempate'
|
||||||
|
about: 'This template is for bugs!'
|
||||||
|
title: '[BUG]: '
|
||||||
|
ref: 'main'
|
||||||
|
labels:
|
||||||
|
- bug
|
||||||
|
---
|
||||||
|
|
||||||
|
<!--- Provide a general summary of the issue in the Title above -->
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
<!--- Tell us what should happen -->
|
||||||
|
|
||||||
|
## Current Behavior
|
||||||
|
<!--- Tell us what happens instead of the expected behavior -->
|
||||||
|
|
||||||
|
## Possible Solution
|
||||||
|
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
|
||||||
|
|
||||||
|
## Steps to Reproduce
|
||||||
|
<!--- reproduce this bug. Include code to reproduce, if relevant -->
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
4.
|
||||||
|
|
||||||
|
|
||||||
|
## Detailed Description
|
||||||
|
<!--- Provide a detailed description of the change or addition you are proposing -->
|
||||||
|
|
||||||
|
## Possible Implementation
|
||||||
|
<!--- Not obligatory, but suggest an idea for implementing addition or change -->
|
||||||
18
.forgejo/issue_template/feature.md
Normal file
18
.forgejo/issue_template/feature.md
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
name: 'Feature Template'
|
||||||
|
about: 'This template is for new features!'
|
||||||
|
title: '[FEATURE]: '
|
||||||
|
ref: 'main'
|
||||||
|
labels:
|
||||||
|
- feature
|
||||||
|
---
|
||||||
|
## Description
|
||||||
|
<!--- Describe the goal and desired output --->
|
||||||
|
<!--- Add the estimated effort as label --->
|
||||||
|
|
||||||
|
## Acceptance criteria
|
||||||
|
- [ ] AC 1
|
||||||
|
- [ ] AC 2
|
||||||
|
|
||||||
|
## External or internal Dependencies
|
||||||
|
<!-- List any dependencies --->
|
||||||
44
.forgejo/pull_request_template.md
Normal file
44
.forgejo/pull_request_template.md
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
---
|
||||||
|
name: 'New Pull-Request'
|
||||||
|
about: 'This is the template for a new Pull Request'
|
||||||
|
title: 'WIP: '
|
||||||
|
ref: 'main'
|
||||||
|
labels:
|
||||||
|
---
|
||||||
|
|
||||||
|
## Description of the implemented changes
|
||||||
|
The changes were:
|
||||||
|
- [ ] Bugfixing
|
||||||
|
- [ ] New Feature
|
||||||
|
- [ ] Breaking Change
|
||||||
|
- [ ] Refactoring
|
||||||
|
|
||||||
|
<!--- Describe the goal of the PR in a few words -->
|
||||||
|
|
||||||
|
|
||||||
|
## What has been changed?
|
||||||
|
<!--- List the things you changed -->
|
||||||
|
|
||||||
|
## Definition of Done
|
||||||
|
### Code Quality
|
||||||
|
- [ ] No new technical depths
|
||||||
|
- [ ] Linting passed
|
||||||
|
- [ ] Documentation is added were needed
|
||||||
|
|
||||||
|
### Accessibility
|
||||||
|
- [ ] New elements are properly defined with html-tags
|
||||||
|
- [ ] Colour contrast follows WCAG criteria
|
||||||
|
- [ ] Aria labels are added when needed
|
||||||
|
- [ ] Everything is accessible by keyboard
|
||||||
|
- [ ] Tab-Order is comprehensible
|
||||||
|
- [ ] All interactive elements have a visible focus
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
- [ ] Tests for new code are written
|
||||||
|
- [ ] All tests pass
|
||||||
|
- [ ] axe-core dev tools show no critical or major issues
|
||||||
|
|
||||||
|
|
||||||
|
## Additional Notes
|
||||||
|
<!--- Add any additional information for the reviewers here -->
|
||||||
|
|
||||||
8
Justfile
8
Justfile
|
|
@ -23,7 +23,7 @@ ci-dev: lint audit test
|
||||||
|
|
||||||
gettext:
|
gettext:
|
||||||
mix gettext.extract
|
mix gettext.extract
|
||||||
mix gettext.merge priv/gettext
|
mix gettext.merge priv/gettext --on-obsolete=mark_as_obsolete
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
mix format --check-formatted
|
mix format --check-formatted
|
||||||
|
|
@ -78,3 +78,9 @@ regen-migrations migration_name commit_hash='':
|
||||||
|
|
||||||
# Generate a fresh migration
|
# Generate a fresh migration
|
||||||
mix ash.codegen --name "{{migration_name}}"
|
mix ash.codegen --name "{{migration_name}}"
|
||||||
|
|
||||||
|
# Remove all build artifacts
|
||||||
|
clean:
|
||||||
|
mix clean
|
||||||
|
rm -rf .elixir_ls
|
||||||
|
rm -rf _build
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/* See the Tailwind configuration guide for advanced usage
|
/* See the Tailwind configuration guide for advanced usage
|
||||||
https://tailwindcss.com/docs/configuration */
|
https://tailwindcss.com/docs/configuration */
|
||||||
|
|
||||||
@import "tailwindcss" source(none);
|
@import "tailwindcss";
|
||||||
@source "../css";
|
@source "../css";
|
||||||
@source "../js";
|
@source "../js";
|
||||||
@source "../../lib/mv_web";
|
@source "../../lib/mv_web";
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ services:
|
||||||
|
|
||||||
rauthy:
|
rauthy:
|
||||||
container_name: rauthy-dev
|
container_name: rauthy-dev
|
||||||
image: ghcr.io/sebadob/rauthy:0.31.3
|
image: ghcr.io/sebadob/rauthy:0.32.0
|
||||||
environment:
|
environment:
|
||||||
- LOCAL_TEST=true
|
- LOCAL_TEST=true
|
||||||
- SMTP_URL=mailcrab
|
- SMTP_URL=mailcrab
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
defmodule MvWeb.AuthOverrides do
|
defmodule MvWeb.AuthOverrides do
|
||||||
use AshAuthentication.Phoenix.Overrides
|
use AshAuthentication.Phoenix.Overrides
|
||||||
|
use Gettext, backend: MvWeb.Gettext
|
||||||
|
|
||||||
# configure your UI overrides here
|
# configure your UI overrides here
|
||||||
|
|
||||||
|
|
@ -14,7 +15,22 @@ defmodule MvWeb.AuthOverrides do
|
||||||
# set :text_class, "bg-red-500"
|
# set :text_class, "bg-red-500"
|
||||||
# end
|
# end
|
||||||
|
|
||||||
# override AshAuthentication.Phoenix.Components.SignIn do
|
# Avoid full-width for the Sign In Form
|
||||||
# set :show_banner, false
|
override AshAuthentication.Phoenix.Components.SignIn do
|
||||||
# end
|
set :root_class, "md:min-w-md"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Replace banner logo with text
|
||||||
|
override AshAuthentication.Phoenix.Components.Banner do
|
||||||
|
set :text, "Mitgliederverwaltung"
|
||||||
|
set :image_url, nil
|
||||||
|
end
|
||||||
|
|
||||||
|
# Translate the or in the horizontal rule to German
|
||||||
|
override AshAuthentication.Phoenix.Components.HorizontalRule do
|
||||||
|
set :text,
|
||||||
|
Gettext.with_locale(MvWeb.Gettext, "de", fn ->
|
||||||
|
Gettext.gettext(MvWeb.Gettext, "or")
|
||||||
|
end)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang={Gettext.get_locale()}>
|
||||||
<head>
|
<head>
|
||||||
{Application.get_env(:live_debugger, :live_debugger_tags)}
|
{Application.get_env(:live_debugger, :live_debugger_tags)}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
defmodule MvWeb.LiveHelpers do
|
defmodule MvWeb.LiveHelpers do
|
||||||
def on_mount(:default, _params, session, socket) do
|
def on_mount(:default, _params, session, socket) do
|
||||||
locale = session["locale"] || "en"
|
locale = session["locale"] || "de"
|
||||||
Gettext.put_locale(locale)
|
Gettext.put_locale(locale)
|
||||||
{:cont, socket}
|
{:cont, socket}
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,12 @@ defmodule MvWeb.LiveUserAuth do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def on_mount(:live_no_user, _params, _session, socket) do
|
def on_mount(:live_no_user, _params, session, socket) do
|
||||||
|
# Set the locale for not logged in user to set the language
|
||||||
|
locale = session["locale"] || "en"
|
||||||
|
Gettext.put_locale(MvWeb.Gettext, locale)
|
||||||
|
{:cont, assign(socket, :locale, locale)}
|
||||||
|
|
||||||
if socket.assigns[:current_user] do
|
if socket.assigns[:current_user] do
|
||||||
{:halt, Phoenix.LiveView.redirect(socket, to: ~p"/")}
|
{:halt, Phoenix.LiveView.redirect(socket, to: ~p"/")}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ defmodule MvWeb.Router do
|
||||||
"""
|
"""
|
||||||
ash_authentication_live_session :authentication_required,
|
ash_authentication_live_session :authentication_required,
|
||||||
on_mount: {MvWeb.LiveUserAuth, :live_user_required} do
|
on_mount: {MvWeb.LiveUserAuth, :live_user_required} do
|
||||||
get "/", PageController, :home
|
live "/", MemberLive.Index, :index
|
||||||
|
|
||||||
live "/members", MemberLive.Index, :index
|
live "/members", MemberLive.Index, :index
|
||||||
live "/members/new", MemberLive.Form, :new
|
live "/members/new", MemberLive.Form, :new
|
||||||
|
|
@ -85,19 +85,19 @@ defmodule MvWeb.Router do
|
||||||
reset_path: "/reset",
|
reset_path: "/reset",
|
||||||
auth_routes_prefix: "/auth",
|
auth_routes_prefix: "/auth",
|
||||||
on_mount: [{MvWeb.LiveUserAuth, :live_no_user}],
|
on_mount: [{MvWeb.LiveUserAuth, :live_no_user}],
|
||||||
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default],
|
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.DaisyUI],
|
||||||
gettext_backend: {MvWeb.Gettext, "default"}
|
gettext_backend: {MvWeb.Gettext, "auth"}
|
||||||
|
|
||||||
# Remove this if you do not want to use the reset password feature
|
# Remove this if you do not want to use the reset password feature
|
||||||
reset_route auth_routes_prefix: "/auth",
|
reset_route auth_routes_prefix: "/auth",
|
||||||
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default],
|
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.DaisyUI],
|
||||||
gettext_backend: {MvWeb.Gettext, "default"}
|
gettext_backend: {MvWeb.Gettext, "auth"}
|
||||||
|
|
||||||
# Remove this if you do not use the confirmation strategy
|
# Remove this if you do not use the confirmation strategy
|
||||||
confirm_route Mv.Accounts.User, :confirm_new_user,
|
confirm_route Mv.Accounts.User, :confirm_new_user,
|
||||||
auth_routes_prefix: "/auth",
|
auth_routes_prefix: "/auth",
|
||||||
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default],
|
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.DaisyUI],
|
||||||
gettext_backend: {MvWeb.Gettext, "default"}
|
gettext_backend: {MvWeb.Gettext, "auth"}
|
||||||
|
|
||||||
# Remove this if you do not use the magic link strategy.
|
# Remove this if you do not use the magic link strategy.
|
||||||
# magic_sign_in_route(Mv.Accounts.User, :magic_link,
|
# magic_sign_in_route(Mv.Accounts.User, :magic_link,
|
||||||
|
|
@ -139,8 +139,47 @@ defmodule MvWeb.Router do
|
||||||
end
|
end
|
||||||
|
|
||||||
defp set_locale(conn, _opts) do
|
defp set_locale(conn, _opts) do
|
||||||
locale = get_session(conn, :locale) || "en"
|
locale =
|
||||||
|
get_session(conn, :locale) ||
|
||||||
|
extract_locale_from_headers(conn.req_headers)
|
||||||
|
|
||||||
Gettext.put_locale(MvWeb.Gettext, locale)
|
Gettext.put_locale(MvWeb.Gettext, locale)
|
||||||
|
|
||||||
conn
|
conn
|
||||||
|
|> put_session(:locale, locale)
|
||||||
|
|> assign(:locale, locale)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Get locale from user
|
||||||
|
defp extract_locale_from_headers(headers) do
|
||||||
|
headers
|
||||||
|
|> Enum.find_value(fn
|
||||||
|
{"accept-language", value} -> value
|
||||||
|
_ -> nil
|
||||||
|
end)
|
||||||
|
|> parse_accept_language()
|
||||||
|
|> Enum.find(&supported_locale?/1)
|
||||||
|
|> fallback_locale()
|
||||||
|
end
|
||||||
|
|
||||||
|
defp parse_accept_language(nil), do: []
|
||||||
|
|
||||||
|
defp parse_accept_language(header) do
|
||||||
|
header
|
||||||
|
|> String.split(",")
|
||||||
|
|> Enum.map(&String.trim/1)
|
||||||
|
|> Enum.map(fn lang ->
|
||||||
|
lang
|
||||||
|
# we only want the first part
|
||||||
|
|> String.split(";")
|
||||||
|
|> hd()
|
||||||
|
|> String.split("-")
|
||||||
|
|> hd()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Our supported languages for now are german and english, english as fallback language
|
||||||
|
defp supported_locale?(locale), do: locale in ["en", "de"]
|
||||||
|
defp fallback_locale(nil), do: "en"
|
||||||
|
defp fallback_locale(locale), do: locale
|
||||||
end
|
end
|
||||||
|
|
|
||||||
64
priv/gettext/auth.pot
Normal file
64
priv/gettext/auth.pot
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
## This file is a PO Template file.
|
||||||
|
##
|
||||||
|
## "msgid"s here are often extracted from source code.
|
||||||
|
## Add new messages manually only if they're dynamic
|
||||||
|
## messages that can't be statically extracted.
|
||||||
|
##
|
||||||
|
## Leave "msgstr"s empty as changing them here has no
|
||||||
|
## effect: edit them in PO (.po) files instead.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Language: en\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
msgid "Already have an account?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Email or password was incorrect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Forgot your password?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "If this user exists in our database you will contacted with a sign-in link shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "If this user exists in our system, you will be contacted with reset instructions shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Need an account?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Password Confirmation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Request magic link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Request password reset token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Requesting ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Reset password with token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Signing in ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your password has successfully been reset"
|
||||||
|
msgstr ""
|
||||||
66
priv/gettext/de/LC_MESSAGES/auth.po
Normal file
66
priv/gettext/de/LC_MESSAGES/auth.po
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
## "msgid"s in this file come from POT (.pot) files.
|
||||||
|
###
|
||||||
|
### Do not add, change, or remove "msgid"s manually here as
|
||||||
|
### they're tied to the ones in the corresponding POT file
|
||||||
|
### (with the same domain).
|
||||||
|
###
|
||||||
|
### Use "mix gettext.extract --merge" or "mix gettext.merge"
|
||||||
|
### to merge POT files into PO files.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Language: de\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
msgid "Already have an account?"
|
||||||
|
msgstr "Bereit zum Anmelden?"
|
||||||
|
|
||||||
|
msgid "Email or password was incorrect"
|
||||||
|
msgstr "Email oder Passwort nicht korrekt"
|
||||||
|
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "Email"
|
||||||
|
|
||||||
|
msgid "Forgot your password?"
|
||||||
|
msgstr "Passwort vergessen?"
|
||||||
|
|
||||||
|
msgid "If this user exists in our database you will contacted with a sign-in link shortly."
|
||||||
|
msgstr "Falls dieser Benutzer bekannt ist, wird jetzt eine Email mit Anmelde-Link versendet."
|
||||||
|
|
||||||
|
msgid "If this user exists in our system, you will be contacted with reset instructions shortly."
|
||||||
|
msgstr "Falls dieser Benutzer bekannt ist, wird jetzt eine Email mit einer Anleitung zum Zurücksetzen versendet."
|
||||||
|
|
||||||
|
msgid "Need an account?"
|
||||||
|
msgstr "Konto anlegen?"
|
||||||
|
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Passwort"
|
||||||
|
|
||||||
|
msgid "Password Confirmation"
|
||||||
|
msgstr "Passwort Wiederholung"
|
||||||
|
|
||||||
|
msgid "Request magic link"
|
||||||
|
msgstr "Magischen Link anfordern"
|
||||||
|
|
||||||
|
msgid "Request password reset token"
|
||||||
|
msgstr "Passwort zurücksetzen"
|
||||||
|
|
||||||
|
msgid "Requesting ..."
|
||||||
|
msgstr "Anfrage låuft..."
|
||||||
|
|
||||||
|
msgid "Reset password with token"
|
||||||
|
msgstr "Neues Passwort setzen"
|
||||||
|
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr "Anmelden"
|
||||||
|
|
||||||
|
msgid "Signing in ..."
|
||||||
|
msgstr "Anmelden..."
|
||||||
|
|
||||||
|
msgid "Your password has successfully been reset"
|
||||||
|
msgstr "Das Passwort wurde erfolgreich zurückgesetzt"
|
||||||
|
|
||||||
|
msgid "Sign in with Rauthy"
|
||||||
|
msgstr "Anmelden mit der Vereinscloud"
|
||||||
|
|
@ -16,7 +16,7 @@ msgid "Actions"
|
||||||
msgstr "Aktionen"
|
msgstr "Aktionen"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:77
|
#: lib/mv_web/live/member_live/index.html.heex:77
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:69
|
#: lib/mv_web/live/user_live/index.html.heex:65
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure?"
|
msgid "Are you sure?"
|
||||||
msgstr "Bist du sicher?"
|
msgstr "Bist du sicher?"
|
||||||
|
|
@ -35,14 +35,14 @@ msgid "City"
|
||||||
msgstr "Stadt"
|
msgstr "Stadt"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:79
|
#: lib/mv_web/live/member_live/index.html.heex:79
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:71
|
#: lib/mv_web/live/user_live/index.html.heex:67
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:71
|
#: lib/mv_web/live/member_live/index.html.heex:71
|
||||||
#: lib/mv_web/live/user_live/form.ex:109
|
#: lib/mv_web/live/user_live/form.ex:109
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:63
|
#: lib/mv_web/live/user_live/index.html.heex:59
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Bearbeite"
|
msgstr "Bearbeite"
|
||||||
|
|
@ -57,7 +57,7 @@ msgstr "Mitglied bearbeiten"
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:58
|
#: lib/mv_web/live/member_live/index.html.heex:58
|
||||||
#: lib/mv_web/live/member_live/show.ex:27
|
#: lib/mv_web/live/member_live/show.ex:27
|
||||||
#: lib/mv_web/live/user_live/form.ex:14
|
#: lib/mv_web/live/user_live/form.ex:14
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:48
|
#: lib/mv_web/live/user_live/index.html.heex:44
|
||||||
#: lib/mv_web/live/user_live/show.ex:24
|
#: lib/mv_web/live/user_live/show.ex:24
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
|
|
@ -88,7 +88,7 @@ msgid "New Member"
|
||||||
msgstr "Neues Mitglied"
|
msgstr "Neues Mitglied"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:68
|
#: lib/mv_web/live/member_live/index.html.heex:68
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:60
|
#: lib/mv_web/live/user_live/index.html.heex:56
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Show"
|
msgid "Show"
|
||||||
msgstr "Anzeigen"
|
msgstr "Anzeigen"
|
||||||
|
|
@ -351,7 +351,7 @@ msgstr "Nicht gesetzt"
|
||||||
msgid "Note"
|
msgid "Note"
|
||||||
msgstr "Hinweis"
|
msgstr "Hinweis"
|
||||||
|
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:56
|
#: lib/mv_web/live/user_live/index.html.heex:52
|
||||||
#: lib/mv_web/live/user_live/show.ex:25
|
#: lib/mv_web/live/user_live/show.ex:25
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "OIDC ID"
|
msgid "OIDC ID"
|
||||||
|
|
@ -533,12 +533,12 @@ msgstr "Passwort"
|
||||||
msgid "Password requirements"
|
msgid "Password requirements"
|
||||||
msgstr "Passwort-Anforderungen"
|
msgstr "Passwort-Anforderungen"
|
||||||
|
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:25
|
#: lib/mv_web/live/user_live/index.html.heex:21
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Select all users"
|
msgid "Select all users"
|
||||||
msgstr "Alle Benutzer auswählen"
|
msgstr "Alle Benutzer auswählen"
|
||||||
|
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:39
|
#: lib/mv_web/live/user_live/index.html.heex:35
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Select user"
|
msgid "Select user"
|
||||||
msgstr "Benutzer auswählen"
|
msgstr "Benutzer auswählen"
|
||||||
|
|
@ -552,3 +552,8 @@ msgstr "Passwort setzen"
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "User will be created without a password. Check 'Set Password' to add one."
|
msgid "User will be created without a password. Check 'Set Password' to add one."
|
||||||
msgstr "Benutzer wird ohne Passwort erstellt. Aktivieren Sie 'Passwort setzen', um eines hinzuzufügen."
|
msgstr "Benutzer wird ohne Passwort erstellt. Aktivieren Sie 'Passwort setzen', um eines hinzuzufügen."
|
||||||
|
|
||||||
|
#: lib/mv_web/auth_overrides.ex:30
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "or"
|
||||||
|
msgstr "oder"
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ msgid "Actions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:77
|
#: lib/mv_web/live/member_live/index.html.heex:77
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:69
|
#: lib/mv_web/live/user_live/index.html.heex:65
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure?"
|
msgid "Are you sure?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -36,14 +36,14 @@ msgid "City"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:79
|
#: lib/mv_web/live/member_live/index.html.heex:79
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:71
|
#: lib/mv_web/live/user_live/index.html.heex:67
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:71
|
#: lib/mv_web/live/member_live/index.html.heex:71
|
||||||
#: lib/mv_web/live/user_live/form.ex:109
|
#: lib/mv_web/live/user_live/form.ex:109
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:63
|
#: lib/mv_web/live/user_live/index.html.heex:59
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -58,7 +58,7 @@ msgstr ""
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:58
|
#: lib/mv_web/live/member_live/index.html.heex:58
|
||||||
#: lib/mv_web/live/member_live/show.ex:27
|
#: lib/mv_web/live/member_live/show.ex:27
|
||||||
#: lib/mv_web/live/user_live/form.ex:14
|
#: lib/mv_web/live/user_live/form.ex:14
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:48
|
#: lib/mv_web/live/user_live/index.html.heex:44
|
||||||
#: lib/mv_web/live/user_live/show.ex:24
|
#: lib/mv_web/live/user_live/show.ex:24
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
|
|
@ -89,7 +89,7 @@ msgid "New Member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:68
|
#: lib/mv_web/live/member_live/index.html.heex:68
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:60
|
#: lib/mv_web/live/user_live/index.html.heex:56
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Show"
|
msgid "Show"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -352,7 +352,7 @@ msgstr ""
|
||||||
msgid "Note"
|
msgid "Note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:56
|
#: lib/mv_web/live/user_live/index.html.heex:52
|
||||||
#: lib/mv_web/live/user_live/show.ex:25
|
#: lib/mv_web/live/user_live/show.ex:25
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "OIDC ID"
|
msgid "OIDC ID"
|
||||||
|
|
@ -534,12 +534,12 @@ msgstr ""
|
||||||
msgid "Password requirements"
|
msgid "Password requirements"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:25
|
#: lib/mv_web/live/user_live/index.html.heex:21
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Select all users"
|
msgid "Select all users"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:39
|
#: lib/mv_web/live/user_live/index.html.heex:35
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Select user"
|
msgid "Select user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -553,3 +553,8 @@ msgstr ""
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "User will be created without a password. Check 'Set Password' to add one."
|
msgid "User will be created without a password. Check 'Set Password' to add one."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/auth_overrides.ex:30
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
|
||||||
63
priv/gettext/en/LC_MESSAGES/auth.po
Normal file
63
priv/gettext/en/LC_MESSAGES/auth.po
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
## "msgid"s in this file come from POT (.pot) files.
|
||||||
|
###
|
||||||
|
### Do not add, change, or remove "msgid"s manually here as
|
||||||
|
### they're tied to the ones in the corresponding POT file
|
||||||
|
### (with the same domain).
|
||||||
|
###
|
||||||
|
### Use "mix gettext.extract --merge" or "mix gettext.merge"
|
||||||
|
### to merge POT files into PO files.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Language: en\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
msgid "Already have an account?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Email or password was incorrect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Forgot your password?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "If this user exists in our database you will contacted with a sign-in link shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "If this user exists in our system, you will be contacted with reset instructions shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Need an account?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Password Confirmation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Request magic link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Request password reset token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Requesting ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Reset password with token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Signing in ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your password has successfully been reset"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sign in with Rauthy"
|
||||||
|
msgstr "Sign in with Vereinscloud"
|
||||||
|
|
@ -17,7 +17,7 @@ msgid "Actions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:77
|
#: lib/mv_web/live/member_live/index.html.heex:77
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:69
|
#: lib/mv_web/live/user_live/index.html.heex:65
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Are you sure?"
|
msgid "Are you sure?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -36,14 +36,14 @@ msgid "City"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:79
|
#: lib/mv_web/live/member_live/index.html.heex:79
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:71
|
#: lib/mv_web/live/user_live/index.html.heex:67
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:71
|
#: lib/mv_web/live/member_live/index.html.heex:71
|
||||||
#: lib/mv_web/live/user_live/form.ex:109
|
#: lib/mv_web/live/user_live/form.ex:109
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:63
|
#: lib/mv_web/live/user_live/index.html.heex:59
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -58,7 +58,7 @@ msgstr ""
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:58
|
#: lib/mv_web/live/member_live/index.html.heex:58
|
||||||
#: lib/mv_web/live/member_live/show.ex:27
|
#: lib/mv_web/live/member_live/show.ex:27
|
||||||
#: lib/mv_web/live/user_live/form.ex:14
|
#: lib/mv_web/live/user_live/form.ex:14
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:48
|
#: lib/mv_web/live/user_live/index.html.heex:44
|
||||||
#: lib/mv_web/live/user_live/show.ex:24
|
#: lib/mv_web/live/user_live/show.ex:24
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
|
|
@ -89,7 +89,7 @@ msgid "New Member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:68
|
#: lib/mv_web/live/member_live/index.html.heex:68
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:60
|
#: lib/mv_web/live/user_live/index.html.heex:56
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Show"
|
msgid "Show"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -352,7 +352,7 @@ msgstr ""
|
||||||
msgid "Note"
|
msgid "Note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:56
|
#: lib/mv_web/live/user_live/index.html.heex:52
|
||||||
#: lib/mv_web/live/user_live/show.ex:25
|
#: lib/mv_web/live/user_live/show.ex:25
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "OIDC ID"
|
msgid "OIDC ID"
|
||||||
|
|
@ -534,12 +534,12 @@ msgstr "Password"
|
||||||
msgid "Password requirements"
|
msgid "Password requirements"
|
||||||
msgstr "Password requirements"
|
msgstr "Password requirements"
|
||||||
|
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:25
|
#: lib/mv_web/live/user_live/index.html.heex:21
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Select all users"
|
msgid "Select all users"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:39
|
#: lib/mv_web/live/user_live/index.html.heex:35
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Select user"
|
msgid "Select user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -553,3 +553,8 @@ msgstr "Set Password"
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "User will be created without a password. Check 'Set Password' to add one."
|
msgid "User will be created without a password. Check 'Set Password' to add one."
|
||||||
msgstr "User will be created without a password. Check 'Set Password' to add one."
|
msgstr "User will be created without a password. Check 'Set Password' to add one."
|
||||||
|
|
||||||
|
#: lib/mv_web/auth_overrides.ex:30
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
"extends": ["config:recommended"],
|
"extends": ["config:recommended"],
|
||||||
|
"schedule": ["* * 3 * *"],
|
||||||
"packageRules": [
|
"packageRules": [
|
||||||
{
|
{
|
||||||
"groupName": "Mix dependencies",
|
"groupName": "Mix dependencies",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue