diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lg.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lg.test.tsx index 8d2f221ae7..34b42bf1d0 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lg.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lg.test.tsx @@ -40,6 +40,9 @@ const lgFiles = [ { id: 'common.en-us', content: `\r\n# Hello\r\n-hi`, + templates: [{ name: 'Hello', body: '-hi', parameters: [] }], + diagnostics: [], + allTemplates: [{ name: 'Hello', body: '-hi', parameters: [] }], }, ] as LgFile[]; diff --git a/Composer/packages/client/src/recoilModel/dispatchers/lg.ts b/Composer/packages/client/src/recoilModel/dispatchers/lg.ts index cc77bf45a5..dd4d866f25 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/lg.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/lg.ts @@ -187,6 +187,13 @@ export const lgDispatcher = () => { if (!lgFile) return lgFiles; const sameIdOtherLocaleFiles = lgFiles.filter((file) => getBaseName(file.id) === getBaseName(id)); + // create need sync to multi locale file. + const originTemplate = lgFile.templates.find(({ name }) => name === templateName); + if (!originTemplate) { + await createLgTemplate({ id, template, projectId }); + return; + } + try { if (template.name !== templateName) { // name change, need update cross multi locale file. diff --git a/Composer/packages/client/src/recoilModel/dispatchers/lu.ts b/Composer/packages/client/src/recoilModel/dispatchers/lu.ts index 665bcb97e1..249f6cf38f 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/lu.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/lu.ts @@ -153,6 +153,14 @@ export const luDispatcher = () => { const luFiles = await snapshot.getPromise(luFilesState(projectId)); const luFile = luFiles.find((temp) => temp.id === id); if (!luFile) return luFiles; + + // create need sync to multi locale file. + const originIntent = luFile.intents.find(({ Name }) => Name === intentName); + if (!originIntent) { + await createLuIntent({ id, intent, projectId }); + return; + } + try { const sameIdOtherLocaleFiles = luFiles.filter((file) => getBaseName(file.id) === getBaseName(id));