mirror of
https://github.com/bitwarden/browser
synced 2026-02-11 22:13:32 +00:00
27 lines
822 B
TypeScript
27 lines
822 B
TypeScript
import { Subscription } from "rxjs";
|
|
|
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
|
|
|
/**
|
|
* A service for managing the setting of the `lang="<locale>" attribute on the
|
|
* main document for the application.
|
|
*/
|
|
export class DocumentLangSetter {
|
|
constructor(
|
|
private readonly document: Document,
|
|
private readonly i18nService: I18nService,
|
|
) {}
|
|
|
|
/**
|
|
* Starts listening to an upstream source for the best locale for the user
|
|
* and applies it to the application document.
|
|
* @returns A subscription that can be unsubscribed if you wish to stop
|
|
* applying lang attribute updates to the application document.
|
|
*/
|
|
start(): Subscription {
|
|
return this.i18nService.locale$.subscribe((locale) => {
|
|
this.document.documentElement.lang = locale;
|
|
});
|
|
}
|
|
}
|