yt-dlp
This commit is contained in:
@@ -7,12 +7,36 @@ import settings
|
||||
import traceback
|
||||
import re
|
||||
from sys import exc_info
|
||||
from flask_babel import Babel
|
||||
|
||||
yt_app = flask.Flask(__name__)
|
||||
yt_app.config['TEMPLATES_AUTO_RELOAD'] = True
|
||||
yt_app.url_map.strict_slashes = False
|
||||
# yt_app.jinja_env.trim_blocks = True
|
||||
# yt_app.jinja_env.lstrip_blocks = True
|
||||
|
||||
# Configure Babel for i18n
|
||||
import os
|
||||
yt_app.config['BABEL_DEFAULT_LOCALE'] = 'en'
|
||||
# Use absolute path for translations directory to avoid issues with package structure changes
|
||||
_app_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
yt_app.config['BABEL_TRANSLATION_DIRECTORIES'] = os.path.join(_app_root, 'translations')
|
||||
|
||||
def get_locale():
|
||||
"""Determine the best locale based on user preference or browser settings"""
|
||||
# Check if user has a language preference in settings
|
||||
if hasattr(settings, 'language') and settings.language:
|
||||
locale = settings.language
|
||||
print(f'[i18n] Using user preference: {locale}')
|
||||
return locale
|
||||
# Otherwise, use browser's Accept-Language header
|
||||
# Only match languages with available translations
|
||||
locale = request.accept_languages.best_match(['en', 'es'])
|
||||
print(f'[i18n] Using browser language: {locale}')
|
||||
return locale or 'en'
|
||||
|
||||
babel = Babel(yt_app, locale_selector=get_locale)
|
||||
|
||||
|
||||
yt_app.add_url_rule('/settings', 'settings_page', settings.settings_page, methods=['POST', 'GET'])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user