github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/client/src/app/core/lang.js (about) 1 import {app} from "electron"; 2 import path from "path"; 3 const fs = require('fs'); 4 5 import {DEBUG} from '../utils/consts'; 6 import {logInfo} from "../utils/log"; 7 import {LangHelper} from '../utils/lang'; 8 9 const langHelper = new LangHelper(); 10 11 export const initLang = () => { 12 let langName = app.getLocale() 13 logInfo(`langName=${langName}`) 14 15 langName = langName.toLowerCase() 16 if (langName.startsWith('zh-')) { 17 langName = 'zh-cn'; 18 } else { 19 langName = 'en'; 20 } 21 22 loadLanguage(langName) 23 }; 24 25 export const loadLanguage = (langName) => { 26 if (!langName) { 27 return 28 } 29 30 if (langName !== langHelper.name) { 31 const langData = loadLangData(langName) 32 langHelper.change(langName, langData); 33 } 34 }; 35 36 const loadLangData = (langName) => { 37 let pth = `lang/${langName}.json` 38 if (!DEBUG) { 39 pth = path.join(process.resourcesPath, pth) 40 } 41 42 logInfo(`load language res from ${pth}`) 43 44 const buf = fs.readFileSync(pth) 45 return JSON.parse(buf.toString()) 46 } 47 48 if (DEBUG) { 49 global.$lang = langHelper; 50 } 51 52 export default langHelper;