feat: multi language support (#254)

* feat: multitranslational support

* - completion of settings page
- completion of sidebar

* sidebar rerendering bug fix

* completion of the lesson navigation & materials page

* completion of the course navigation

* completion of requested languages

* - Implementation of Language Picker
- Rename Bug Fixes

* checkpoint save

* - addition of the language picker to the onboarding.
- addition of the language switcher for the lesson notes.

* merge completion

* initialization of the new branch

* add transition.svelte file

* lesson note bug fix

* feat: add translation migration

* completion of translation

* fix height issue of dropdown

* refactoring

* fix: improve code with LOCALE from db

* finally get it fully functional

* connect with AI

* backward compatibility for lesson note

* preserve old content, when generating AI content

* undo translations in upgrade modal

* fix duplicate key issue from codacy trigger

---------

Co-authored-by: Rotimi Best <[email protected]>
This commit is contained in:
Adeyemi Adetunji
2024-04-19 05:45:48 +01:00
committed by GitHub
co-authored by Rotimi Best
parent ff7d2cee35
commit d75e2f258e
153 changed files with 11264 additions and 1130 deletions
@@ -15,6 +15,7 @@
const apiKey = PUBLIC_TINYMCE_API_KEY;
let unmount = false;
let editorChangeHandlerId;
function getTinymce() {
const getSink = () => {
@@ -54,16 +55,20 @@
init_instance_callback: function (editor: any) {
editorWindowRef = editor.iframeElement?.contentWindow;
editor.on('Change', function () {
const html = editor.getContent();
if (onChange) {
onChange(html);
}
editor.on('Paste Change input Undo Redo', function () {
clearTimeout(editorChangeHandlerId);
// backup in case the data doesn't get to our backend, we should store the note to avoid data loss
if (id) {
localStorage.setItem(id, html);
}
editorChangeHandlerId = setTimeout(function () {
console.log('changed');
const html = editor.getContent();
if (onChange) {
onChange(html);
}
if (id) {
localStorage.setItem(id, html);
}
}, 1000);
});
}
};