9d80d3b1d5
* First step to use Language .json file in ejs * i18n for landing.ejs * i18n for login.ejs * i18n for loginOptions.ejs * i18n for overlay.ejs * i18n for settings.ejs * i18n for waiting.ejs * i18n for welcome.ejs * langloader.js placeholder support * i18n for landing.js * i18n for login.js * i18n for overlay.js * i18n for settings.js * i18n for uibinder.js * i18n for uicore.js * remove html language replacement * use toml for i18n * Fix mojang/microsoft status icon is undefined * cascadable langloader * separate lang file for customization * move some placeholder text to _placeholder.toml * Update * Reduce package lock diff. * Remove another placeholder. * Checkbox does not require translation. * Icons don't need translation. * Leave placeholders inline. * Fix translation for news pages. * Remove more unneeded translations. --------- Co-authored-by: Daniel Scalzi <d_scalzi@yahoo.com>
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
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 = merge(lang || {}, toml.parse(fs.readFileSync(path.join(__dirname, '..', 'lang', `${id}.toml`))) || {})
|
|
}
|
|
|
|
exports.query = function(id, placeHolders){
|
|
let query = id.split('.')
|
|
let res = lang
|
|
for(let q of query){
|
|
res = res[q]
|
|
}
|
|
let text = res === lang ? '' : res
|
|
if (placeHolders) {
|
|
Object.entries(placeHolders).forEach(([key, value]) => {
|
|
text = text.replace(`{${key}}`, value)
|
|
})
|
|
}
|
|
return text
|
|
}
|
|
|
|
exports.queryJS = function(id, placeHolders){
|
|
return exports.query(`js.${id}`, placeHolders)
|
|
}
|
|
|
|
exports.queryEJS = function(id, placeHolders){
|
|
return exports.query(`ejs.${id}`, placeHolders)
|
|
}
|
|
|
|
exports.setupLanguage = function(){
|
|
// Load Language Files
|
|
exports.loadLanguage('en_US')
|
|
// Uncomment this when translations are ready
|
|
//exports.loadLanguage('xx_XX')
|
|
|
|
// Load Custom Language File for Launcher Customizer
|
|
exports.loadLanguage('_custom')
|
|
} |