Skip to content

Commit ee5ef6e

Browse files
authored
fix: key-value style messages broken after merging (#1717) (#1718)
* fix: key-value style messages broken after merging (#1717) * test: missing test for pull request #1718 (issue #1717)
1 parent ac619a9 commit ee5ef6e

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

packages/vue-i18n-core/src/composer.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2435,9 +2435,11 @@ export function createComposer(options: any = {}, VueI18nLegacy?: any): any {
24352435
__legacy && __legacy.mergeLocaleMessage(locale, message)
24362436
}
24372437
const _message = { [locale]: message }
2438-
for (const key in _message) {
2439-
if (hasOwn(_message, key)) {
2440-
handleFlatJson(_message[key])
2438+
if (flatJson) {
2439+
for (const key in _message) {
2440+
if (hasOwn(_message, key)) {
2441+
handleFlatJson(_message[key])
2442+
}
24412443
}
24422444
}
24432445
message = _message[locale]

packages/vue-i18n-core/test/issues.test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,3 +1273,19 @@ test('issue #1615', async () => {
12731273
`false (...but this should be false)`
12741274
)
12751275
})
1276+
1277+
test('issue #1717', async () => {
1278+
const en = {
1279+
'a.b.c': 'Hello, Vue I18n'
1280+
}
1281+
const i18n = createI18n({
1282+
locale: 'en',
1283+
messages: {
1284+
en: {}
1285+
}
1286+
})
1287+
i18n.global.mergeLocaleMessage('en', en)
1288+
expect(i18n.global.getLocaleMessage('en')).toEqual({
1289+
'a.b.c': 'Hello, Vue I18n' // should not be transformed to nested object like in issue
1290+
})
1291+
})

0 commit comments

Comments
 (0)