pixelplanet/src/canvasesDesc.js

82 lines
2.2 KiB
JavaScript

/*
* Create canvases.json with localized translated
* descriptions.
*
*/
import assetWatcher from './core/fsWatcher';
import canvases from './core/canvases';
import ttag from './core/ttag';
/* eslint-disable max-len */
function getCanvases(t) {
/*
* add descriptions and titles of canvases here
* Use the t tag and right `backquotes`
*/
const canvasTitles = {
0: t`Earth`,
1: t`Moon`,
2: t`3D Canvas`,
3: t`Coronavirus`,
5: t`PixelZone`,
6: t`PixelCanvas`,
7: t`1bit`,
8: t`Top10`,
10: t`2bit`,
11: t`Minimap`,
};
const canvasDesc = {
0: t`Our main canvas, a huge map of the world. Place anywhere you like!`,
1: t`Moon canvas. Safe space for art. No flags or large text (unless part of art) or art larger than 1.5k x 1.5k pixels.`,
2: t`Place Voxels on a 3D canvas with others.`,
3: t`Special canvas to spread awareness of SARS-CoV2 (take the vax).`,
5: t`Mirror of PixelZone`,
6: t`Mirror of PixelCanvas`,
7: t`Black and White canvas`,
8: t`A canvas for the most active players from the the previous day. Daily ranking updates at 00:00 UTC.`,
10: t`Only four colors. Same rules as moon!`,
11: t`Conquer land on a smaller earth with protected ocean. Shares cooldown with earth canvas!`,
};
/*
* no edit below here needed when adding/removing canvas
*/
const localizedCanvases = {};
const canvasKeys = Object.keys(canvases);
for (let i = 0; i < canvasKeys.length; i += 1) {
const key = canvasKeys[i];
localizedCanvases[key] = { ...canvases[key] };
localizedCanvases[key].desc = canvasDesc[key]
|| canvases[key].desc
|| `Canvas ${key}`;
localizedCanvases[key].title = canvasTitles[key]
|| canvases[key].title
|| `Canvas ${key}`;
}
return localizedCanvases;
}
function translateCanvases() {
const parsedCanvases = {};
const langs = Object.keys(ttag);
langs.forEach((lang) => {
parsedCanvases[lang] = getCanvases(ttag[lang].t);
});
return parsedCanvases;
}
let lCanvases = translateCanvases();
// reload on asset change
assetWatcher.onChange(() => {
lCanvases = translateCanvases();
});
export default function getLocalizedCanvases(lang = 'en') {
return lCanvases[lang] || lCanvases.en;
}