diff --git a/build/Gruntfile.js b/build/Gruntfile.js index 4116d502f..2412ba4cc 100644 --- a/build/Gruntfile.js +++ b/build/Gruntfile.js @@ -12,52 +12,64 @@ module.exports = function(grunt) { ' * Version: <%= pkg.version %> (build:<%= pkg.build %>)\n' + ' */\n'; + let iconv_lite, encoding = process.env.SYSTEM_ENCODING || 'win1251'; + if (process.platform == 'win32') { + const cmdencoding = require('child_process').execSync('chcp'); + if ( cmdencoding.includes('866') ) { + iconv_lite = require('iconv-lite'); + } + } + + let _encode = (string) => { + return !!string && !!iconv_lite ? iconv_lite.encode(string,encoding) : string; + }; + var jsreplacements = [ { from: /\{\{SUPPORT_EMAIL\}\}/g, - to: process.env['SUPPORT_EMAIL'] || 'support@onlyoffice.com' + to: _encode(process.env.SUPPORT_EMAIL) || 'support@onlyoffice.com' },{ from: /\{\{SUPPORT_URL\}\}/g, - to: process.env['SUPPORT_URL'] || 'https://support.onlyoffice.com' + to: _encode(process.env.SUPPORT_URL) || 'https://support.onlyoffice.com' },{ from: /\{\{SALES_EMAIL\}\}/g, - to: process.env['SALES_EMAIL'] || 'sales@onlyoffice.com' + to: _encode(process.env.SALES_EMAIL) || 'sales@onlyoffice.com' },{ from: /\{\{PUBLISHER_URL\}\}/g, - to: process.env['PUBLISHER_URL'] || 'https://www.onlyoffice.com' + to: _encode(process.env.PUBLISHER_URL) || 'https://www.onlyoffice.com' },{ from: /\{\{PUBLISHER_PHONE\}\}/, to: process.env['PUBLISHER_PHONE'] || '+371 633-99867' },{ from: /\{\{PUBLISHER_NAME\}\}/g, - to: process.env['PUBLISHER_NAME'] || 'Ascensio System SIA' + to: _encode(process.env.PUBLISHER_NAME) || 'Ascensio System SIA' },{ from: /\{\{PUBLISHER_ADDRESS\}\}/, - to: process.env['PUBLISHER_ADDRESS'] || '20A-12 Ernesta Birznieka-Upisha street, Riga, Latvia, EU, LV-1050' + to: _encode(process.env.PUBLISHER_ADDRESS) || '20A-12 Ernesta Birznieka-Upisha street, Riga, Latvia, EU, LV-1050' },{ from: /\{\{API_URL_EDITING_CALLBACK\}\}/, - to: process.env['API_URL_EDITING_CALLBACK'] || 'https://api.onlyoffice.com/editors/callback' + to: _encode(process.env.API_URL_EDITING_CALLBACK) || 'https://api.onlyoffice.com/editors/callback' },{ from: /\{\{COMPANY_NAME\}\}/g, - to: process.env['COMPANY_NAME'] || 'ONLYOFFICE' + to: _encode(process.env.COMPANY_NAME) || 'ONLYOFFICE' }, { from: /\{\{APP_TITLE_TEXT\}\}/g, - to: process.env['APP_TITLE_TEXT'] || 'ONLYOFFICE' + to: _encode(process.env.APP_TITLE_TEXT) || 'ONLYOFFICE' }, { from: /\{\{HELP_URL\}\}/g, - to: process.env['HELP_URL'] || 'https://helpcenter.onlyoffice.com' + to: _encode(process.env.HELP_URL) || 'https://helpcenter.onlyoffice.com' }]; var helpreplacements = [ { from: /\{\{COEDITING_DESKTOP\}\}/g, - to: process.env['COEDITING_DESKTOP'] || 'Подключиться к облаку' + to: _encode(process.env.COEDITING_DESKTOP) || 'Подключиться к облаку' },{ from: /\{\{PLUGIN_LINK\}\}/g, - to: process.env['PLUGIN_LINK'] || 'https://api.onlyoffice.com/plugin/basic' + to: _encode(process.env.PLUGIN_LINK) || 'https://api.onlyoffice.com/plugin/basic' },{ from: /\{\{PLUGIN_LINK_MACROS\}\}/g, - to: process.env['PLUGIN_LINK_MACROS'] || 'https://api.onlyoffice.com/plugin/macros' + to: _encode(process.env.PLUGIN_LINK_MACROS) || 'https://api.onlyoffice.com/plugin/macros' }]; let path = require('path'); diff --git a/build/package.json b/build/package.json index 2bedad73d..9bc5783e0 100644 --- a/build/package.json +++ b/build/package.json @@ -22,6 +22,7 @@ "grunt-svgmin": "^6.0.0", "grunt-text-replace": "0.3.11", "iconsprite": "file:sprites", + "iconv": "^2.3.5", "less-plugin-clean-css": "1.5.0", "lodash": "^4.0.0", "mocha": "^6.2.2",