grid-apps-cmms/js/kiri-lang.js
2020-03-16 12:11:30 -04:00

203 lines
6.6 KiB
JavaScript

/** Copyright 2014-2019 Stewart Allen -- All Rights Reserved */
"use strict";
let gs_kiri_lang = exports;
(function() {
if (!self.kiri) self.kiri = {};
if (self.kiri.lang) return;
let KIRI = self.kiri,
LANG = self.kiri.lang = {},
lset = navigator.language.toLocaleLowerCase();
LANG.set = function() {
let map, key, keys = [...arguments];
for (let i=0; i<keys.length; i++)
{
key = keys[i]
if (!(map = LANG[key])) {
continue;
}
let missing = [];
let invalid = [];
// default to EN values when missing
Object.keys(LANG.en).forEach(key => {
if (!map[key]) {
map[key] = LANG.en[key];
missing.push(key);
}
});
// update current map from chosen map
Object.keys(map).forEach(key => {
if (LANG.en[key]) {
LANG.current[key] = map[key];
} else {
invalid.push(key);
}
});
if (missing.length) {
console.log(`language map "${key}" missing keys [${missing.length}]: ${missing.join(', ')}`);
}
if (invalid.length) {
console.log(`language map "${key}" invalid keys [${invalid.length}]: ${invalid.join(', ')}`);
}
return key;
}
return undefined;
}
// english. other language maps will defer to english
// map for any missing key/value pairs
LANG['en'] =
LANG['en-us'] = {
version: "version",
// DEVICE dialog (_s = label, _l = hover help)
dv_gr_dev: "device",
dv_name_s: "name",
dv_name_l: "device name",
dv_fila_s: "filament",
dv_fila_l: "diameter in millimeters",
dv_nozl_s: "nozzle",
dv_nozl_l: "diameter in millimeters",
dv_bedw_s: "bed width",
dv_bedw_l: "millimeters",
dv_bedd_s: "bed depth",
dv_bedd_l: "millimeters",
dv_bedh_s: "max height",
dv_bedh_l: "max build height\nin millimeters",
dv_spmx_s: "max spindle rpm",
dv_spmx_l: "max spindle speed\n0 to disable",
dv_xtab_s: "extrude absolute",
dv_xtab_l: "extrusion moves absolute",
dv_orgc_s: "origin center",
dv_orgc_l: "bed origin center",
dv_orgt_s: "origin top",
dv_orgt_l: "part z origin top",
dv_bedc_s: "circular bed",
dv_bedc_l: "device bed is circular",
// DEVICE dialog gcode (_s = label, _l = hover help)
dv_gr_gco: "gcode",
dv_fanp_s: "fan power",
dv_fanp_l: "set cooling fan power",
dv_prog_s: "progress",
dv_prog_l: "output on each % progress",
dv_layr_s: "layer",
dv_layr_l: "output at each\nlayer change",
dv_tksp_s: "token spacing",
dv_tksp_l: "gcode token spacer",
dv_strc_s: "strip comments",
dv_strc_l: "strip gcode comments",
dv_fext_s: "file extension",
dv_fext_l: "file name extension",
dv_dwll_s: "dwell",
dv_dwll_l: "gcode dwell script",
dv_tool_s: "tool change",
dv_tool_l: "tool change script",
dv_sspd_s: "spindle speed",
dv_sspd_l: "set spindle speed",
dv_paus_s: "pause",
dv_paus_l: "gcode pause script",
dv_head_s: "header",
dv_head_l: "gcode header script",
dv_foot_s: "footer",
dv_foot_l: "gcode footer script",
dv_lzon_s: "laser on",
dv_lzon_l: "gcode laser on script",
dv_lzof_s: "laser off",
dv_lzof_l: "gcode laser off script",
// MODE menu
mo_menu: "mode",
mo_fdmp: "FDM Printing",
mo_lazr: "Laser Cutting",
mo_cncm: "CNC Milling",
// SETUP menu
su_menu: "setup",
su_devi: "Devices",
su_tool: "Tools",
su_locl: "Local",
su_help: "Help",
// FUNCTION menu
fn_menu: "function",
fn_impo: "Import",
fn_arra: "Arrange",
fn_slic: "Slice",
fn_prev: "Preview",
fn_expo: "Export",
// VIEW menu
vu_menu: "view",
vu_home: "home",
vu_rset: "reset",
vu_sptp: "top",
vu_spfr: "front",
vu_splt: "left",
vu_sprt: "right",
// WORKSPACE menu
ws_menu: "workspace",
ws_save: "Save",
ws_cler: "Clear",
// OPTIONS menu
op_menu: "options",
op_show_s: "show origin",
op_show_l: "show device or process origin",
op_alig_s: "align top",
op_alig_l: "align parts to the\ntallest part when\nno stock is set",
op_auto_s: "auto layout",
op_auto_l: "automatically layout platform\nwhen new items added\nor when arrange clicked\nmore than once",
op_free_s: "free layout",
op_free_l: "permit dragable layout",
op_invr_s: "invert zoom",
op_invr_l: "invert mouse wheel\nscroll zoom",
op_unit_s: "units",
op_unit_l: "workspace units affects\nspeeds and distances",
// LAYERS pop-menu
la_menu: "layers",
la_olin: "outline",
la_trce: "trace",
la_face: "facing",
la_ruff: "roughing",
la_fini: "finishing",
la_finx: "finish x",
la_finy: "finish y",
la_dlta: "delta",
la_slds: "solids",
la_fill: "solid fill",
la_sprs: "sparse",
la_sprt: "support",
la_prnt: "print",
la_move: "moves",
// SETTINGS menu
se_menu: "settings",
se_load: "load",
se_save: "save",
se_xprt: "expert",
se_bsic: "basic",
// SLICING menu
sl_menu: "slicing"
};
LANG['test'] = { bogus: "not a valid key" };
Object.keys(LANG.en).forEach(key => {
LANG.test[key] = `*${LANG.en[key]}*`;
});
LANG.current = {};
LANG.set(lset, lset.split('-')[0]);
})();