Skip to content

Commit d925e9e

Browse files
feat: logLevel option
1 parent 6faa3f1 commit d925e9e

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

src/i18n.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,39 @@ const CONSOLE_PREFIX = '[vue-i18n]'
99
export const injectionKey = Symbol('i18n') as InjectionKey<UseI18n>
1010

1111
export function createI18n(config: I18nConfig): I18nInstance {
12-
const { defaultLocale = 'en' } = config
12+
const {
13+
defaultLocale = 'en',
14+
logLevel = 'warn',
15+
} = config
1316
const messages = reactive(klona(config.messages ?? {}))
1417
const locale = ref(defaultLocale)
1518
const locales = config.locales ?? (Object.keys(messages).length ? Object.keys(messages) : [locale.value])
1619

1720
const t = (key: string, params?: Record<string, any>) => {
1821
if (typeof key !== 'string') {
19-
console.warn(CONSOLE_PREFIX, `Message "${key}" must be a string`)
22+
if (logLevel === 'warn')
23+
console.warn(CONSOLE_PREFIX, `Message "${key}" must be a string`)
2024
return ''
2125
}
2226

2327
try {
2428
return getLocalizedMessage(key.split('.'), messages[locale.value], params)
2529
}
2630
catch (error) {
27-
console.warn(CONSOLE_PREFIX, (error as Error).message)
31+
if (logLevel === 'warn')
32+
console.warn(CONSOLE_PREFIX, (error as Error).message)
2833
return key
2934
}
3035
}
3136

3237
const setLocale = (newLocale: string) => {
3338
if (!locales.includes(newLocale)) {
34-
console.warn(
35-
CONSOLE_PREFIX,
39+
if (logLevel === 'warn') {
40+
console.warn(
41+
CONSOLE_PREFIX,
3642
`Locale "${newLocale}" is not defined in the locales list. Available locales: ${locales.join(', ')}`,
37-
)
43+
)
44+
}
3845
return
3946
}
4047

src/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export interface I18nConfig {
66
defaultLocale?: string
77
locales?: string[]
88
messages?: LocaleMessages
9+
/** @default 'warn' */
10+
logLevel?: 'warn' | 'silent'
911
}
1012

1113
export interface I18nInstance {

0 commit comments

Comments
 (0)