mirror of
https://git.sr.ht/~cadence/bibliogram
synced 2026-02-26 22:39:20 +00:00
Create initial language support
Create support for languages, then reformat user, home, and post pages to use it, and create en and en-us language files.
This commit is contained in:
39
src/lang/index.js
Normal file
39
src/lang/index.js
Normal file
@@ -0,0 +1,39 @@
|
||||
const base = require("./base")
|
||||
|
||||
class Lang {
|
||||
constructor() {
|
||||
/** @type {Map<string, import("./base")>} */
|
||||
this.backing = new Map()
|
||||
|
||||
this.backing.set("base", require("./base"))
|
||||
|
||||
for (const code of ["en", "en-us"]) {
|
||||
// Assign lang
|
||||
const data = require(`./${code}`)
|
||||
this.backing.set(code, data)
|
||||
// Check properties
|
||||
for (const key of Object.keys(base)) {
|
||||
if (!data[key] || data[key] === base[key]) {
|
||||
console.log(`[!] [${code}] ${key} was not replaced`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} code
|
||||
*/
|
||||
get(code) {
|
||||
if (this.backing.has(code)) {
|
||||
// console.log(`[.] Getting language code ${code}`)
|
||||
return this.backing.get(code)
|
||||
} else {
|
||||
console.log(`[!] WARNING: tried to get missing language code ${code}`)
|
||||
return this.backing.get("base")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const lang = new Lang()
|
||||
|
||||
module.exports = lang
|
||||
Reference in New Issue
Block a user