cncjs
1import endsWith from 'lodash/endsWith';2import mapKeys from 'lodash/mapKeys';3import sha1 from 'sha1';4import log from 'app/lib/log';5import pkg from '../../package.json';6
7const webroot = '/';8
9const settings = {10error: {11// The flag is set to true if the workspace settings have become corrupted or invalid.12// @see store/index.js13corruptedWorkspaceSettings: false14},15name: pkg.name,16productName: pkg.productName,17version: pkg.version,18webroot: webroot,19log: {20level: 'warn' // trace, debug, info, warn, error21},22analytics: {23trackingId: process.env.TRACKING_ID24},25i18next: {26lowerCaseLng: true,27
28// logs out more info (console)29debug: false,30
31// language to lookup key if not found on set language32fallbackLng: 'en',33
34// string or array of namespaces35ns: [36'controller', // Grbl|Smoothie|TinyG37'gcode', // G-code38'resource' // default39],40// default namespace used if not passed to translation function41defaultNS: 'resource',42
43// @see webpack.webconfig.xxx.js44whitelist: process.env.LANGUAGES,45
46// array of languages to preload47preload: [],48
49// language codes to lookup, given set language is 'en-US':50// 'all' --> ['en-US', 'en', 'dev']51// 'currentOnly' --> 'en-US'52// 'languageOnly' --> 'en'53load: 'currentOnly',54
55// char to separate keys56keySeparator: '.',57
58// char to split namespace from key59nsSeparator: ':',60
61interpolation: {62prefix: '{{',63suffix: '}}'64},65
66// options for language detection67// https://github.com/i18next/i18next-browser-languageDetector68detection: {69// order and from where user language should be detected70order: ['querystring', 'cookie', 'localStorage'],71
72// keys or params to lookup language from73lookupQuerystring: 'lang',74lookupCookie: 'lang',75lookupLocalStorage: 'lang',76
77// cache user language on78caches: ['localStorage', 'cookie']79},80// options for backend81// https://github.com/i18next/i18next-xhr-backend82backend: {83// path where resources get loaded from84loadPath: webroot + 'i18n/{{lng}}/{{ns}}.json',85
86// path to post missing resources87addPath: 'api/i18n/sendMissing/{{lng}}/{{ns}}',88
89// your backend server supports multiloading90// /locales/resources.json?lng=de+en&ns=ns1+ns291allowMultiLoading: false,92
93// parse data after it has been fetched94parse: function(data, url) {95log.debug(`Loading resource: url="${url}"`);96
97// gcode.json98// resource.json99if (endsWith(url, '/gcode.json') || endsWith(url, '/resource.json')) {100return mapKeys(JSON.parse(data), (value, key) => sha1(key));101}102
103return JSON.parse(data);104},105
106// allow cross domain requests107crossDomain: false108}109}110};111
112export default settings;113