Add i18n support for French and German with browser language detection
CI / test-and-package (push) Successful in 35s
CI / test-and-package (push) Successful in 35s
This commit is contained in:
@@ -12,6 +12,7 @@ from models import (
|
||||
get_all_households,
|
||||
count_household_users,
|
||||
)
|
||||
from i18n import t
|
||||
|
||||
auth_bp = Blueprint("auth", __name__)
|
||||
|
||||
@@ -23,12 +24,12 @@ def login():
|
||||
password = request.form.get("password", "")
|
||||
|
||||
if not username or not password:
|
||||
flash("Username and password are required.", "error")
|
||||
flash(t("Username and password are required."), "error")
|
||||
return render_template("login.html")
|
||||
|
||||
user = get_user_by_username(username)
|
||||
if user is None or not check_password_hash(user["password_hash"], password):
|
||||
flash("Invalid username or password.", "error")
|
||||
flash(t("Invalid username or password."), "error")
|
||||
return render_template("login.html")
|
||||
|
||||
household_id = user["household_id"]
|
||||
@@ -59,32 +60,32 @@ def register():
|
||||
|
||||
errors = []
|
||||
if not username or len(username) < 2:
|
||||
errors.append("Username must be at least 2 characters.")
|
||||
errors.append(t("Username must be at least 2 characters."))
|
||||
if not password or len(password) < 4:
|
||||
errors.append("Password must be at least 4 characters.")
|
||||
errors.append(t("Password must be at least 4 characters."))
|
||||
if password != confirm:
|
||||
errors.append("Passwords do not match.")
|
||||
errors.append(t("Passwords do not match."))
|
||||
if get_user_by_username(username):
|
||||
errors.append("Username already taken.")
|
||||
errors.append(t("Username already taken."))
|
||||
|
||||
target_household_id = None
|
||||
|
||||
if household_action == "create":
|
||||
if not new_household_name:
|
||||
errors.append("Household name is required.")
|
||||
errors.append(t("Household name is required."))
|
||||
elif get_household_by_name(new_household_name):
|
||||
errors.append("A household with that name already exists.")
|
||||
errors.append(t("A household with that name already exists."))
|
||||
else:
|
||||
household = create_household(new_household_name)
|
||||
target_household_id = household["id"]
|
||||
is_admin = True # First user in a new household is admin
|
||||
else:
|
||||
if not household_id:
|
||||
errors.append("Please select a household.")
|
||||
errors.append(t("Please select a household."))
|
||||
else:
|
||||
hh = get_household_by_id(int(household_id))
|
||||
if hh is None:
|
||||
errors.append("Selected household does not exist.")
|
||||
errors.append(t("Selected household does not exist."))
|
||||
else:
|
||||
target_household_id = hh["id"]
|
||||
is_admin = False
|
||||
@@ -104,7 +105,7 @@ def register():
|
||||
session["household_id"] = user["household_id"]
|
||||
session["household_name"] = get_household_by_id(target_household_id)["name"]
|
||||
|
||||
flash("Account created! Welcome to your household.", "success")
|
||||
flash(t("Account created! Welcome to your household."), "success")
|
||||
return redirect(url_for("meals.dashboard"))
|
||||
|
||||
return render_template("register.html", households=households)
|
||||
|
||||
Reference in New Issue
Block a user