1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-17 16:53:34 +00:00

[EC-772] Add i18n key typechecking in web (#4023)

This commit is contained in:
Thomas Rittson
2022-12-21 14:27:00 +10:00
committed by GitHub
parent b331f5b329
commit 5a1940f3f4
50 changed files with 176 additions and 109 deletions

View File

@@ -17,7 +17,7 @@ import { ContainerService } from "@bitwarden/common/services/container.service";
import { EventUploadService } from "@bitwarden/common/services/event/event-upload.service";
import { VaultTimeoutService } from "@bitwarden/common/services/vaultTimeout/vaultTimeout.service";
import { I18nService } from "../../services/i18n.service";
import { DesktopI18nServiceImplementation } from "../../services/desktop-i18n.service.implementation";
import { NativeMessagingService } from "../../services/native-messaging.service";
@Injectable()
@@ -47,7 +47,7 @@ export class InitService {
this.syncService.fullSync(true);
(this.vaultTimeoutService as VaultTimeoutService).init(true);
const locale = await this.stateService.getLocale();
await (this.i18nService as I18nService).init(locale);
await (this.i18nService as DesktopI18nServiceImplementation).init(locale);
(this.eventUploadService as EventUploadService).init(true);
this.twoFactorService.init();
setTimeout(() => this.notificationsService.init(), 3000);

View File

@@ -41,6 +41,7 @@ import { MemoryStorageService } from "@bitwarden/common/services/memoryStorage.s
import { SystemService } from "@bitwarden/common/services/system.service";
import { Account } from "../../models/account";
import { DesktopI18nServiceImplementation } from "../../services/desktop-i18n.service.implementation";
import { ElectronCryptoService } from "../../services/electron-crypto.service";
import { ElectronLogService } from "../../services/electron-log.service";
import { ElectronPlatformUtilsService } from "../../services/electron-platform-utils.service";
@@ -48,7 +49,6 @@ import { ElectronRendererMessagingService } from "../../services/electron-render
import { ElectronRendererSecureStorageService } from "../../services/electron-renderer-secure-storage.service";
import { ElectronRendererStorageService } from "../../services/electron-renderer-storage.service";
import { EncryptedMessageHandlerService } from "../../services/encrypted-message-handler.service";
import { I18nService } from "../../services/i18n.service";
import { NativeMessageHandlerService } from "../../services/native-message-handler.service";
import { NativeMessagingService } from "../../services/native-messaging.service";
import { PasswordRepromptService } from "../../services/password-reprompt.service";
@@ -101,7 +101,7 @@ const RELOAD_CALLBACK = new InjectionToken<() => any>("RELOAD_CALLBACK");
},
{
provide: I18nServiceAbstraction,
useClass: I18nService,
useClass: DesktopI18nServiceImplementation,
deps: [SYSTEM_LANGUAGE, LOCALES_DIRECTORY],
},
{

View File

@@ -17,14 +17,14 @@ import { TrayMain } from "./main/tray.main";
import { UpdaterMain } from "./main/updater.main";
import { WindowMain } from "./main/window.main";
import { Account } from "./models/account";
import { DesktopI18nServiceImplementation } from "./services/desktop-i18n.service.implementation";
import { ElectronLogService } from "./services/electron-log.service";
import { ElectronMainMessagingService } from "./services/electron-main-messaging.service";
import { ElectronStorageService } from "./services/electron-storage.service";
import { I18nService } from "./services/i18n.service";
export class Main {
logService: ElectronLogService;
i18nService: I18nService;
i18nService: DesktopI18nServiceImplementation;
storageService: ElectronStorageService;
memoryStorageService: MemoryStorageService;
messagingService: ElectronMainMessagingService;
@@ -73,7 +73,7 @@ export class Main {
}
this.logService = new ElectronLogService(null, app.getPath("userData"));
this.i18nService = new I18nService("en", "./locales/");
this.i18nService = new DesktopI18nServiceImplementation("en", "./locales/");
const storageDefaults: any = {};
// Default vault timeout to "on restart", and action to "lock"

View File

@@ -1,9 +1,9 @@
import * as fs from "fs";
import * as path from "path";
import { I18nService as BaseI18nService } from "@bitwarden/common/services/i18n.service";
import { I18nServiceImplementation } from "@bitwarden/common/services/i18n.service.implementation";
export class I18nService extends BaseI18nService {
export class DesktopI18nServiceImplementation extends I18nServiceImplementation {
constructor(systemLanguage: string, localesDirectory: string) {
super(systemLanguage, localesDirectory, (formattedLocale: string) => {
const filePath = path.join(