From efbe793a0f3656b27d050886d85e06e9327ea681 Mon Sep 17 00:00:00 2001 From: Christian Kaisermann Date: Thu, 28 Nov 2019 14:59:52 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20warnOnMissingMessa?= =?UTF-8?q?ges?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/configs.ts | 30 ++++++++++++++---------------- src/client/stores/format.ts | 22 +++++++++++++--------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/client/configs.ts b/src/client/configs.ts index fdab4ba..d15a0d8 100644 --- a/src/client/configs.ts +++ b/src/client/configs.ts @@ -13,6 +13,7 @@ interface Options { initialLocale: string formats: Formats loadingDelay: number + warnOnMissingMessages: boolean } export const defaultFormats: Formats = { @@ -51,6 +52,7 @@ export const defaultOptions: Options = { initialLocale: null, loadingDelay: 200, formats: defaultFormats, + warnOnMissingMessages: true, } const options: Options = defaultOptions @@ -60,30 +62,26 @@ export function getOptions() { } export function init(opts: ConfigureOptions) { - const fallbackLocale = (options.fallbackLocale = opts.fallbackLocale) - + const { formats, ...rest } = opts const initialLocale = opts.initialLocale ? typeof opts.initialLocale === 'string' ? opts.initialLocale - : getClientLocale(opts.initialLocale) || fallbackLocale - : fallbackLocale + : getClientLocale(opts.initialLocale) || opts.fallbackLocale + : opts.fallbackLocale - $locale.set(initialLocale) - options.initialLocale = initialLocale + Object.assign(options, rest, { initialLocale }) - if (opts.formats) { - if ('number' in opts.formats) { - Object.assign(options.formats.number, opts.formats.number) + if (formats) { + if ('number' in formats) { + Object.assign(options.formats.number, formats.number) } - if ('date' in opts.formats) { - Object.assign(options.formats.date, opts.formats.date) + if ('date' in formats) { + Object.assign(options.formats.date, formats.date) } - if ('time' in opts.formats) { - Object.assign(options.formats.time, opts.formats.time) + if ('time' in formats) { + Object.assign(options.formats.time, formats.time) } } - if (opts.loadingDelay != null) { - options.loadingDelay = opts.loadingDelay - } + return $locale.set(initialLocale) } diff --git a/src/client/stores/format.ts b/src/client/stores/format.ts index f85ee70..9628a1b 100644 --- a/src/client/stores/format.ts +++ b/src/client/stores/format.ts @@ -10,6 +10,7 @@ import { getDateFormatter, getNumberFormatter, } from '../includes/formatters' +import { getOptions } from '../configs' import { $dictionary } from './dictionary' import { getCurrentLocale, getRelatedLocalesOf, $locale } from './locale' @@ -31,15 +32,18 @@ const formatMessage: Formatter = (id, options = {}) => { const message = lookupMessage(id, locale) if (!message) { - console.warn( - `[svelte-i18n] The message "${id}" was not found in "${getRelatedLocalesOf( - locale - ).join('", "')}". ${ - hasLocaleQueue(getCurrentLocale()) - ? `\n\nNote: there are at least one loader still registered to this locale that wasn't executed.` - : '' - }` - ) + if (getOptions().warnOnMissingMessages) { + // istanbul ignore next + console.warn( + `[svelte-i18n] The message "${id}" was not found in "${getRelatedLocalesOf( + locale + ).join('", "')}".${ + hasLocaleQueue(getCurrentLocale()) + ? `\n\nNote: there are at least one loader still registered to this locale that wasn't executed.` + : '' + }` + ) + } return defaultValue || id }