on-codemerge
Version:
A WYSIWYG editor for on-codemerge is a user-friendly interface that allows users to edit and view their code in real time, exactly as it will appear in the final product
2 lines (1 loc) • 2.85 kB
JavaScript
;var c=Object.defineProperty;var h=(o,e,s)=>e in o?c(o,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[e]=s;var r=(o,e,s)=>h(o,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../../../_virtual/dynamic-import-helper.cjs");class j{constructor(e="en"){r(this,"currentLocale","en");r(this,"locales",{});r(this,"fallbackLocale","en");this.currentLocale=e,this.fallbackLocale=e,this.loadLocale(e)}async loadLocale(e){try{const s=await u.default(Object.assign({"./locales/ar.json":()=>Promise.resolve().then(()=>require("./locales/ar.json.cjs")),"./locales/cs.json":()=>Promise.resolve().then(()=>require("./locales/cs.json.cjs")),"./locales/de.json":()=>Promise.resolve().then(()=>require("./locales/de.json.cjs")),"./locales/en.json":()=>Promise.resolve().then(()=>require("./locales/en.json.cjs")),"./locales/es.json":()=>Promise.resolve().then(()=>require("./locales/es.json.cjs")),"./locales/fr.json":()=>Promise.resolve().then(()=>require("./locales/fr.json.cjs")),"./locales/hi.json":()=>Promise.resolve().then(()=>require("./locales/hi.json.cjs")),"./locales/id.json":()=>Promise.resolve().then(()=>require("./locales/id.json.cjs")),"./locales/it.json":()=>Promise.resolve().then(()=>require("./locales/it.json.cjs")),"./locales/ja.json":()=>Promise.resolve().then(()=>require("./locales/ja.json.cjs")),"./locales/ko.json":()=>Promise.resolve().then(()=>require("./locales/ko.json.cjs")),"./locales/nl.json":()=>Promise.resolve().then(()=>require("./locales/nl.json.cjs")),"./locales/pl.json":()=>Promise.resolve().then(()=>require("./locales/pl.json.cjs")),"./locales/pt.json":()=>Promise.resolve().then(()=>require("./locales/pt.json.cjs")),"./locales/ru.json":()=>Promise.resolve().then(()=>require("./locales/ru.json.cjs")),"./locales/th.json":()=>Promise.resolve().then(()=>require("./locales/th.json.cjs")),"./locales/tr.json":()=>Promise.resolve().then(()=>require("./locales/tr.json.cjs")),"./locales/vi.json":()=>Promise.resolve().then(()=>require("./locales/vi.json.cjs")),"./locales/zh.json":()=>Promise.resolve().then(()=>require("./locales/zh.json.cjs"))}),`./locales/${e}.json`,3);this.locales[e]=s.default}catch(s){console.error(`Error loading locale "${e}":`,s),this.locales[this.fallbackLocale]||await this.loadLocale(this.fallbackLocale)}}async setLocale(e){this.locales[e]||await this.loadLocale(e),this.locales[e]?this.currentLocale=e:console.warn(`Locale "${e}" is not loaded.`)}getCurrentLocale(){return this.currentLocale}translate(e,s={}){var l,a;const n=((l=this.locales[this.currentLocale])==null?void 0:l[e])||((a=this.locales[this.fallbackLocale])==null?void 0:a[e])||e;return Object.keys(s).reduce((i,t)=>i.replace(new RegExp(`{{${t}}}`,"g"),s[t]),n)}getLoadedLocales(){return Object.keys(this.locales)}}exports.LocaleManager=j;