Main functions

This commit is contained in:
2025-10-26 14:44:10 +09:00
parent 6ff35e26f4
commit 291fc63a4c
901 changed files with 79783 additions and 201383 deletions

View File

@@ -26,19 +26,6 @@ i18n.configure({
// i18n middleware
app.use(i18n.init);
// Middleware для передачи переменных в шаблоны
app.use((req, res, next) => {
const currentLang = req.session?.language || req.getLocale() || 'ru';
req.setLocale(currentLang);
res.locals.locale = currentLang;
res.locals.__ = res.__;
res.locals.theme = req.session?.theme || 'light';
res.locals.currentLanguage = currentLang;
res.locals.currentPage = req.path.split('/')[1] || 'home';
next();
});
// Security middleware
app.use(helmet({
contentSecurityPolicy: {
@@ -106,6 +93,36 @@ app.use(session({
}
}));
// Middleware для передачи переменных в шаблоны
app.use((req, res, next) => {
const currentLang = req.session?.language || req.getLocale() || 'ru';
req.setLocale(currentLang);
res.locals.locale = currentLang;
res.locals.__ = res.__;
res.locals.theme = req.session?.theme || 'light';
res.locals.currentLanguage = currentLang;
res.locals.currentPage = req.path.split('/')[1] || 'home';
// Debug logging for theme
if (req.url !== '/sw.js' && !req.url.startsWith('/css/') && !req.url.startsWith('/js/') && !req.url.startsWith('/images/')) {
console.log(`Request URL: ${req.url}, Theme from session: ${req.session?.theme}, Setting theme to: ${res.locals.theme}`);
}
// Устанавливаем заголовки для предотвращения кеширования языкового контента
if (!req.url.startsWith('/css/') && !req.url.startsWith('/js/') && !req.url.startsWith('/images/')) {
res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
res.setHeader('Pragma', 'no-cache');
res.setHeader('Expires', '0');
res.setHeader('Vary', 'Accept-Language');
}
// Отладочная информация
console.log(`Request URL: ${req.url}, Current Language: ${currentLang}, Session Language: ${req.session?.language}, Locale: ${req.getLocale()}`);
next();
});
// Routes
app.use('/', require('./routes/index'));
app.use('/api/auth', require('./routes/auth'));
@@ -125,6 +142,7 @@ app.get('/lang/:language', (req, res) => {
if (supportedLanguages.includes(language)) {
req.setLocale(language);
req.session.language = language;
console.log(`Language switched to: ${language}, session language: ${req.session.language}`);
}
const referer = req.get('Referer') || '/';