pixelplanet/src/canvasesDesc.js

82 lines
2.2 KiB
JavaScript
Raw Normal View History

/*
* 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) {
/*
2021-01-30 21:36:53 +00:00
* add descriptions and titles of canvases here
* Use the t tag and right `backquotes`
*/
2021-01-30 21:36:53 +00:00
const canvasTitles = {
0: t`Earth`,
1: t`Moon`,
2: t`3D Canvas`,
3: t`Coronavirus`,
5: t`PixelZone`,
6: t`PixelCanvas`,
7: t`1bit`,
2022-01-05 19:40:09 +00:00
8: t`Top10`,
2024-01-07 18:17:34 +00:00
10: t`2bit`,
11: t`Minimap`,
2021-01-30 21:36:53 +00:00
};
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`,
2022-01-05 19:40:09 +00:00
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
*/
2023-03-13 00:05:46 +00:00
const localizedCanvases = {};
const canvasKeys = Object.keys(canvases);
for (let i = 0; i < canvasKeys.length; i += 1) {
const key = canvasKeys[i];
2023-03-13 00:05:46 +00:00
localizedCanvases[key] = { ...canvases[key] };
localizedCanvases[key].desc = canvasDesc[key]
2022-01-05 19:40:09 +00:00
|| canvases[key].desc
|| `Canvas ${key}`;
2023-03-13 00:05:46 +00:00
localizedCanvases[key].title = canvasTitles[key]
2022-01-05 19:40:09 +00:00
|| canvases[key].title
|| `Canvas ${key}`;
}
2021-01-30 12:32:46 +00:00
2023-03-13 00:05:46 +00:00
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;
}