import { Injectable } from '@angular/core'; import { Request, UnaryInterceptor, UnaryResponse } from 'grpc-web'; const i18nHeader = 'Accept-Language'; @Injectable({ providedIn: 'root' }) /** * Set the navigator language as header to all grpc requests */ export class I18nInterceptor implements UnaryInterceptor { constructor() { } public async intercept(request: Request, invoker: any): Promise> { const metadata = request.getMetadata(); const navLang = navigator.language; if (navLang) { metadata[i18nHeader] = navLang; } return invoker(request).then((response: any) => { return response; }).catch((error: any) => { return Promise.reject(error); }); } }