mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
Fix post language detection
- In case no language is detected set default.
This commit is contained in:
parent
a47600f7bf
commit
b5ae101931
@ -131,4 +131,25 @@ describe('languagesMiddleware', () => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('detects no language', () => {
|
||||||
|
it('has default language', async () => {
|
||||||
|
variables = {
|
||||||
|
...variables,
|
||||||
|
content: '',
|
||||||
|
}
|
||||||
|
await expect(
|
||||||
|
mutate({
|
||||||
|
mutation: createPostMutation,
|
||||||
|
variables,
|
||||||
|
}),
|
||||||
|
).resolves.toMatchObject({
|
||||||
|
data: {
|
||||||
|
CreatePost: {
|
||||||
|
language: 'en',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,20 +1,24 @@
|
|||||||
import LanguageDetect from 'languagedetect'
|
import LanguageDetect from 'languagedetect'
|
||||||
import { removeHtmlTags } from '../helpers/cleanHtml'
|
import { removeHtmlTags } from '../helpers/cleanHtml'
|
||||||
|
|
||||||
const setPostLanguage = (text) => {
|
const setPostLanguage = (text, defaultLanguage) => {
|
||||||
const lngDetector = new LanguageDetect()
|
const lngDetector = new LanguageDetect()
|
||||||
lngDetector.setLanguageType('iso2')
|
lngDetector.setLanguageType('iso2')
|
||||||
return lngDetector.detect(removeHtmlTags(text), 1)[0][0]
|
let languages = lngDetector.detect(removeHtmlTags(text), 1)
|
||||||
|
if (!(Array.isArray(languages) && languages.length > 0)) {
|
||||||
|
languages = [[defaultLanguage, 1.0]]
|
||||||
|
}
|
||||||
|
return languages[0][0]
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
Mutation: {
|
Mutation: {
|
||||||
CreatePost: async (resolve, root, args, context, info) => {
|
CreatePost: async (resolve, root, args, context, info) => {
|
||||||
args.language = await setPostLanguage(args.content)
|
args.language = await setPostLanguage(args.content, context.user.locale)
|
||||||
return resolve(root, args, context, info)
|
return resolve(root, args, context, info)
|
||||||
},
|
},
|
||||||
UpdatePost: async (resolve, root, args, context, info) => {
|
UpdatePost: async (resolve, root, args, context, info) => {
|
||||||
args.language = await setPostLanguage(args.content)
|
args.language = await setPostLanguage(args.content, context.user.locale)
|
||||||
return resolve(root, args, context, info)
|
return resolve(root, args, context, info)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user