update readme due release on codeberg #2

Open
nocci wants to merge 26 commits from dev into main
1 changed files with 13 additions and 11 deletions
Showing only changes of commit e2c218102e - Show all commits

View File

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