Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 1x 1x 1x 6x 6x 6x 3x 3x 3x | import { I18nResolver } from '../index';
import { Injectable, ExecutionContext } from '@nestjs/common';
import { I18nService } from '../services/i18n.service';
import { pick } from 'accept-language-parser';
@Injectable()
export class AcceptLanguageResolver implements I18nResolver {
constructor() {}
async resolve(
context: ExecutionContext,
): Promise<string | string[] | undefined> {
const req = context.switchToHttp().getRequest();
const lang: string = req.raw
? req.raw.headers['accept-language']
: req.headers['accept-language'];
if (lang) {
const service: I18nService = req.i18nService;
return pick(await service.getSupportedLanguages(), lang);
}
return lang;
}
}
|