langloader, index, preloader: Fix lang() not accessible on ejs

This commit is contained in:
busybox11 2024-09-15 04:19:40 +02:00
parent b23c9d0317
commit 3334a49a3e
No known key found for this signature in database
3 changed files with 20 additions and 8 deletions

View File

@ -1,10 +1,13 @@
const fs = require('fs-extra')
const path = require('path')
const toml = require('toml')
const merge = require('lodash.merge')
let lang
exports.loadLanguage = function(id){
lang = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'lang', `${id}.json`))) || {}
try { lang = merge(lang || {}, toml.parse(fs.readFileSync(path.join(__dirname, '..', 'lang', `${id}.toml`))) || {}) } catch (err) { console.log(err) }
try { lang = merge(lang || {}, JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'lang', `${id}.json`))) || {}) } catch (err) { console.log(err) }
}
exports.query = function(id){
@ -28,8 +31,8 @@ exports.setupLanguage = function(){
// Load Language Files
exports.loadLanguage('en_US')
// Uncomment this when translations are ready
// exports.loadLanguage('fr_FR')
exports.loadLanguage('fr_FR')
// Load Custom Language File for Launcher Customizer
exports.loadLanguage('_custom')
// exports.loadLanguage('_custom')
}

View File

@ -11,6 +11,10 @@ const path = require('path')
const semver = require('semver')
const { pathToFileURL } = require('url')
const { AZURE_CLIENT_ID, MSFT_OPCODE, MSFT_REPLY_TYPE, MSFT_ERROR, SHELL_OPCODE } = require('./app/assets/js/ipcconstants')
const LangLoader = require('./app/assets/js/langloader')
// Setup Lang
LangLoader.setupLanguage()
// Setup auto updater.
function initAutoUpdater(event, data) {
@ -236,7 +240,12 @@ function createWindow() {
})
remoteMain.enable(win.webContents)
ejse.data('bkid', Math.floor((Math.random() * fs.readdirSync(path.join(__dirname, 'app', 'assets', 'images', 'backgrounds')).length)))
const data = {
bkid: Math.floor((Math.random() * fs.readdirSync(path.join(__dirname, 'app', 'assets', 'images', 'backgrounds')).length)),
lang: (str, placeHolders) => LangLoader.queryEJS(str, placeHolders)
}
Object.entries(data).forEach(([key, val]) => ejse.data(key, val))
win.loadURL(pathToFileURL(path.join(__dirname, 'app', 'app.ejs')).toString())