update readme due release on codeberg #2
32
setup.sh
32
setup.sh
|
@ -197,15 +197,21 @@ logging.basicConfig()
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
# Load Languages
|
# Load Languages
|
||||||
|
import json
|
||||||
|
|
||||||
TRANSLATIONS = {}
|
TRANSLATIONS = {}
|
||||||
for lang in app.config['SUPPORTED_LANGUAGES'].split(','):
|
SUPPORTED_LANGUAGES = os.getenv('SUPPORTED_LANGUAGES', 'en').split(',')
|
||||||
|
|
||||||
|
for lang in SUPPORTED_LANGUAGES:
|
||||||
try:
|
try:
|
||||||
with open(f'translations/{lang}.json') as f:
|
with open(f'translations/{lang}.json', encoding='utf-8') as f:
|
||||||
TRANSLATIONS[lang] = json.load(f)
|
TRANSLATIONS[lang] = json.load(f)
|
||||||
except:
|
except Exception:
|
||||||
TRANSLATIONS[lang] = {}
|
TRANSLATIONS[lang] = {}
|
||||||
|
|
||||||
def translate(key, lang=app.config['DEFAULT_LANGUAGE'], **kwargs):
|
def translate(key, lang=None, **kwargs):
|
||||||
|
if not lang:
|
||||||
|
lang = session.get('lang', os.getenv('DEFAULT_LANGUAGE', 'en'))
|
||||||
return TRANSLATIONS.get(lang, {}).get(key, key).format(**kwargs)
|
return TRANSLATIONS.get(lang, {}).get(key, key).format(**kwargs)
|
||||||
|
|
||||||
csrf = CSRFProtect(app)
|
csrf = CSRFProtect(app)
|
||||||
|
@ -261,15 +267,13 @@ def enforce_https():
|
||||||
return redirect(url, code=301)
|
return redirect(url, code=301)
|
||||||
|
|
||||||
@app.context_processor
|
@app.context_processor
|
||||||
def inject_translations():
|
|
||||||
def _(key, **kwargs):
|
|
||||||
lang = session.get('lang', app.config['DEFAULT_LANGUAGE'])
|
|
||||||
return translate(key, lang, **kwargs)
|
|
||||||
return {'_': _}
|
|
||||||
|
|
||||||
def inject_template_vars():
|
def inject_template_vars():
|
||||||
|
def _(key, **kwargs):
|
||||||
|
lang = session.get('lang', os.getenv('DEFAULT_LANGUAGE', 'en'))
|
||||||
|
return translate(key, lang, **kwargs)
|
||||||
return dict(
|
return dict(
|
||||||
get_locale=get_locale,
|
_=_,
|
||||||
|
get_locale=lambda: session.get('lang', os.getenv('DEFAULT_LANGUAGE', 'en')),
|
||||||
theme='dark' if request.cookies.get('dark_mode') == 'true' else 'light'
|
theme='dark' if request.cookies.get('dark_mode') == 'true' else 'light'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -338,10 +342,10 @@ def index():
|
||||||
|
|
||||||
@app.route('/set-lang/<lang>')
|
@app.route('/set-lang/<lang>')
|
||||||
def set_lang(lang):
|
def set_lang(lang):
|
||||||
if lang in app.config['SUPPORTED_LANGUAGES'].split(','):
|
if lang in SUPPORTED_LANGUAGES:
|
||||||
session['lang'] = lang
|
session['lang'] = lang
|
||||||
return redirect(request.referrer)
|
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)
|
||||||
|
|
Loading…
Reference in New Issue