mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 21:45:31 +09:00
16 lines
613 B
TypeScript
16 lines
613 B
TypeScript
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
import {Locales} from '@fluxer/constants/src/Locales';
|
|
import {parseAcceptLanguage} from '@pkgs/locale/src/LocaleService';
|
|
import {createMiddleware} from 'hono/factory';
|
|
import type {HonoEnv} from '../types/HonoEnv';
|
|
|
|
export const LocaleMiddleware = createMiddleware<HonoEnv>(async (ctx, next) => {
|
|
const acceptLanguage = ctx.req.header('accept-language');
|
|
const headerLocale = parseAcceptLanguage(acceptLanguage);
|
|
const user = ctx.get('user');
|
|
const locale = user?.locale ?? headerLocale ?? Locales.EN_US;
|
|
ctx.set('requestLocale', locale);
|
|
return next();
|
|
});
|