UNPKG

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

3 lines (2 loc) 3.87 kB
/*! on-codemerge v1.3.1 @author Pavel Kuzmin @license MIT @homepage https://s00d.github.io/on-codemerge/ @repository git+https://github.com/s00d/on-codemerge.git Copyright (c) 2026 Pavel Kuzmin - Built on 2026-07-02T13:39:17.947Z */ "use strict";var u=Object.defineProperty;var L=(r,e,o)=>e in r?u(r,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[e]=o;var s=(r,e,o)=>L(r,typeof e!="symbol"?e+"":e,o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("../../../_virtual/dynamic-import-helper.cjs");class j{constructor(e="en"){s(this,"currentLocale","en");s(this,"locales",{});s(this,"fallbackLocale","en");this.currentLocale=e,this.fallbackLocale=e}async initialize(){await this.loadLocale(this.currentLocale)}async loadLocale(e){try{const o=await d.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]=o.default,console.log(`Loaded locale "${e}" with ${Object.keys(o.default).length} translations`)}catch(o){console.error(`Error loading locale "${e}":`,o),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,o={}){var t,n;if(!this.locales[this.currentLocale])return console.warn(`Locale "${this.currentLocale}" is not loaded yet. Returning key: "${e}"`),e;const l=(t=this.locales[this.currentLocale])==null?void 0:t[e],a=(n=this.locales[this.fallbackLocale])==null?void 0:n[e];!l&&!a&&console.warn(`Translation key "${e}" not found in locale "${this.currentLocale}" and fallback locale "${this.fallbackLocale}"`);const c=l||a||e;return Object.keys(o).reduce((h,i)=>h.replace(new RegExp(`{{${i}}}`,"g"),o[i]),c)}getLoadedLocales(){return Object.keys(this.locales)}isReady(){return!!this.locales[this.currentLocale]}getAvailableLocales(){return["en","ru","de","fr","es","it","pt","pl","cs","nl","tr","ja","ko","zh","ar","hi","vi","th","id"]}static getLocaleLabel(e){return{en:"EN",ru:"RU",de:"DE",fr:"FR",es:"ES",it:"IT",pt:"PT",pl:"PL",cs:"CS",nl:"NL",tr:"TR",ja:"JA",ko:"KO",zh:"ZH",ar:"AR",hi:"HI",vi:"VI",th:"TH",id:"ID"}[e]||e.toUpperCase()}}exports.LocaleManager=j;