From 72d0c7d860fbb9accc3a8e9c578e122f05522d07 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 14 Aug 2019 16:54:40 -0400 Subject: [PATCH] local locale json from safari app --- src/background/main.background.ts | 3 +-- src/services/i18n.service.ts | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/background/main.background.ts b/src/background/main.background.ts index 500918b478..7cd18c21f6 100644 --- a/src/background/main.background.ts +++ b/src/background/main.background.ts @@ -136,8 +136,7 @@ export default class MainBackground { }); this.storageService = new BrowserStorageService(this.platformUtilsService); this.secureStorageService = new BrowserStorageService(this.platformUtilsService); - this.i18nService = new I18nService(BrowserApi.getUILanguage(window), - BrowserApi.isSafariApi ? './_locales/' : null); + this.i18nService = new I18nService(BrowserApi.getUILanguage(window)); const cryptoFunctionService = new WebCryptoFunctionService(window, this.platformUtilsService); this.cryptoService = new CryptoService(this.storageService, this.secureStorageService, cryptoFunctionService); this.tokenService = new TokenService(this.storageService); diff --git a/src/services/i18n.service.ts b/src/services/i18n.service.ts index 20fa89d05e..5d820fbd68 100644 --- a/src/services/i18n.service.ts +++ b/src/services/i18n.service.ts @@ -1,10 +1,19 @@ import { I18nService as BaseI18nService } from 'jslib/services/i18n.service'; +import { BrowserApi } from '../browser/browserApi'; +import { SafariApp } from '../browser/safariApp'; + export default class I18nService extends BaseI18nService { - constructor(systemLanguage: string, localesDirectory: string) { - super(systemLanguage, localesDirectory, async (formattedLocale: string) => { - const file = await fetch(localesDirectory + formattedLocale + '/messages.json'); - return await file.json(); + constructor(systemLanguage: string) { + super(systemLanguage, BrowserApi.isSafariApi ? 'safari' : null, async (formattedLocale: string) => { + if (BrowserApi.isSafariApi) { + const localeJson = await SafariApp.sendMessageToApp('getLocaleStrings', formattedLocale); + return JSON.parse(localeJson); + } else { + // Deprecated + const file = await fetch(this.localesDirectory + formattedLocale + '/messages.json'); + return await file.json(); + } }); this.supportedTranslationLocales = [