better handling of translations
This commit is contained in:
parent
4d83464963
commit
e2c218102e
24
setup.sh
24
setup.sh
|
@ -213,11 +213,14 @@ for lang in SUPPORTED_LANGUAGES:
|
|||
def translate(key, lang=None, **kwargs):
|
||||
if not lang:
|
||||
lang = session.get('lang', 'en')
|
||||
|
||||
value = TRANSLATIONS.get(lang, {}).get(key)
|
||||
|
||||
if value is None and lang != 'en':
|
||||
value = TRANSLATIONS.get('en', {}).get(key, key)
|
||||
else:
|
||||
value = value or key
|
||||
value = TRANSLATIONS.get('en', {}).get(key)
|
||||
|
||||
value = value or key
|
||||
|
||||
return value.format(**kwargs) if kwargs and isinstance(value, str) else value
|
||||
|
||||
## DEBUG Translations
|
||||
|
@ -352,12 +355,12 @@ def index():
|
|||
def set_lang(lang):
|
||||
if lang in SUPPORTED_LANGUAGES:
|
||||
session['lang'] = lang
|
||||
session.permanent = True
|
||||
return redirect(request.referrer or url_for('index'))
|
||||
|
||||
@app.route('/set-theme/<theme>')
|
||||
def set_theme(theme):
|
||||
resp = make_response('', 204)
|
||||
# Von 'dark_mode' zu 'theme' ändern
|
||||
resp.set_cookie('theme', theme, max_age=60*60*24*365)
|
||||
return resp
|
||||
|
||||
|
@ -372,7 +375,7 @@ def login():
|
|||
login_user(user)
|
||||
return redirect(url_for('index'))
|
||||
|
||||
flash(_('Invalid credentials'), 'danger')
|
||||
flash(translate('Invalid credentials', session.get('lang', 'en')), 'danger')
|
||||
return render_template('login.html')
|
||||
|
||||
@app.route('/register', methods=['GET', 'POST'])
|
||||
|
@ -386,7 +389,7 @@ def register():
|
|||
password = generate_password_hash(request.form['password'])
|
||||
|
||||
if User.query.filter_by(username=username).first():
|
||||
flash(_('Username already exists'), 'danger')
|
||||
flash(translate('Username already exists', session.get('lang', 'en')), 'danger')
|
||||
return redirect(url_for('register'))
|
||||
|
||||
new_user = User(username=username, password=password)
|
||||
|
@ -421,7 +424,7 @@ def change_password():
|
|||
|
||||
current_user.password = generate_password_hash(new_password)
|
||||
db.session.commit()
|
||||
flash(_('Password changed successfully'), 'success')
|
||||
flash(translate('Password changed successfully', session.get('lang', 'en')), 'success')
|
||||
return redirect(url_for('index'))
|
||||
|
||||
return render_template('change_password.html')
|
||||
|
@ -459,7 +462,8 @@ def add_game():
|
|||
flash(_('Steam Key already exists!'), 'danger')
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
flash(_('Error: ') + str(e), 'danger')
|
||||
lang = session.get('lang', 'en')
|
||||
flash(f"{translate('Error:', lang)} {str(e)}", 'danger')
|
||||
|
||||
return render_template('add_game.html')
|
||||
|
||||
|
@ -690,7 +694,7 @@ def import_games():
|
|||
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
flash(_('Import error: %(error)s', error=str(e)), 'danger')
|
||||
flash(translate('Import error: %(error)s', session.get('lang', 'en'), error=str(e)), 'danger')
|
||||
|
||||
return redirect(url_for('index'))
|
||||
|
||||
|
@ -781,7 +785,6 @@ def check_expiring_keys():
|
|||
now = datetime.utcnow()
|
||||
expiry_threshold = now + timedelta(hours=48)
|
||||
|
||||
# Moderner Select-Aufruf
|
||||
stmt = select(Game).where(
|
||||
Game.status != 'eingelöst',
|
||||
Game.redeem_date <= expiry_threshold,
|
||||
|
@ -1057,7 +1060,6 @@ cat <<HTML_END > templates/base.html
|
|||
<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"></noscript>
|
||||
<!-- Eigene Styles -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
|
||||
{# LCP-Optimierung: Preload für das erste Cover-Bild, falls vorhanden #}
|
||||
{% if games and games[0].steam_appid %}
|
||||
<link rel="preload"
|
||||
as="image"
|
||||
|
|
Loading…
Reference in New Issue